Пример #1
0
 def test_constructor(self, asr_model):
     asr_model.train()
     # TODO: make proper config and assert correct number of weights
     # Check to/from config_dict:
     confdict = asr_model.to_config_dict()
     instance2 = EncDecCTCModel.from_config_dict(confdict)
     assert isinstance(instance2, EncDecCTCModel)
Пример #2
0
 def __init__(
     self,
     encoder_decoder: EncDecCTCModel,
     batch_size: int = 1,
     dither: float = 0.0,
     pad_to: int = 0,
     device: str = "cuda",
     **kwargs
 ) -> None:
     cfg = encoder_decoder._cfg
     OmegaConf.set_struct(cfg.preprocessor, value=False)
     cfg.preprocessor.params.dither = dither
     cfg.preprocessor.params.pad_to = pad_to
     cfg.preprocessor.params.normalize = spectrogram_normalization()
     OmegaConf.set_struct(cfg.preprocessor, value=True)
     encoder_decoder.preprocessor = encoder_decoder.from_config_dict(
         cfg.preprocessor
     )
     self.params = ASRInferenceParameters.from_omega(cfg, **kwargs)
     self.overlap_timesteps = self.params.compute_overlap_timesteps()
     self.buffer = np.zeros(self.params.buffer_size, dtype=np.float32)
     sample_rate = self.params.sample_rate
     self.audio_encoder_decoder = ASRAudioEncoderDecoder(
         encoder_decoder, sample_rate, batch_size, device=device,
     )
     self.prev_char = ""
     self.reset()
Пример #3
0
    def test_from_config_dict_without_cls(self):
        """Here we test that instantiation works for configs without cls class path in them.
        IMPORTANT: in this case, correct class type should call from_config_dict. This should work for Models."""
        preprocessor = {
            'cls':
            'nemo.collections.asr.modules.AudioToMelSpectrogramPreprocessor',
            'params': dict({})
        }
        encoder = {
            'cls': 'nemo.collections.asr.modules.ConvASREncoder',
            'params': {
                'feat_in':
                64,
                'activation':
                'relu',
                'conv_mask':
                True,
                'jasper': [{
                    'filters': 1024,
                    'repeat': 1,
                    'kernel': [1],
                    'stride': [1],
                    'dilation': [1],
                    'dropout': 0.0,
                    'residual': False,
                    'separable': True,
                    'se': True,
                    'se_context_size': -1,
                }],
            },
        }

        decoder = {
            'cls': 'nemo.collections.asr.modules.ConvASRDecoder',
            'params': {
                'feat_in':
                1024,
                'num_classes':
                28,
                'vocabulary': [
                    ' ',
                    'a',
                    'b',
                    'c',
                    'd',
                    'e',
                    'f',
                    'g',
                    'h',
                    'i',
                    'j',
                    'k',
                    'l',
                    'm',
                    'n',
                    'o',
                    'p',
                    'q',
                    'r',
                    's',
                    't',
                    'u',
                    'v',
                    'w',
                    'x',
                    'y',
                    'z',
                    "'",
                ],
            },
        }
        modelConfig = DictConfig({
            'preprocessor': DictConfig(preprocessor),
            'encoder': DictConfig(encoder),
            'decoder': DictConfig(decoder)
        })
        obj = EncDecCTCModel.from_config_dict(config=modelConfig)
        assert isinstance(obj, EncDecCTCModel)