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)
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()
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)