From 23fd50efb82b9508d5cc0bce9ea70c298d2fcdfd Mon Sep 17 00:00:00 2001 From: Enas Albasiri Date: Mon, 29 Jun 2026 21:02:35 +0000 Subject: [PATCH] configure transcribe() to use langID Signed-off-by: Enas Albasiri --- .../asr/data/audio_to_text_lhotse_prompt_index.py | 5 ++++- nemo/collections/asr/models/rnnt_bpe_models_prompt.py | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/nemo/collections/asr/data/audio_to_text_lhotse_prompt_index.py b/nemo/collections/asr/data/audio_to_text_lhotse_prompt_index.py index d836f592cad8..b43687323b90 100644 --- a/nemo/collections/asr/data/audio_to_text_lhotse_prompt_index.py +++ b/nemo/collections/asr/data/audio_to_text_lhotse_prompt_index.py @@ -83,6 +83,9 @@ def __init__(self, tokenizer: TokenizerSpec, cfg: Dict) -> None: # Index used for the language-agnostic / auto prompt self.auto_index = self.prompt_dict.get('auto', 101) + # Fallback language for cuts with no language (e.g. transcribe() temp cuts) + self.default_lang = cfg.get('default_lang', None) + logging.info( f"LhotseSpeechToTextBpeDatasetWithPromptIndex: " f"default_prompt_mode={self.default_prompt_mode}, " @@ -121,7 +124,7 @@ def _get_prompt_index_for_cut(self, cut) -> int: mode = self._get_prompt_mode(cut) if mode == 'langID': - return self._get_prompt_index(cut.supervisions[0].language) + return self._get_prompt_index(cut.supervisions[0].language or self.default_lang) elif mode == 'auto': return self.auto_index elif mode == 'unified': diff --git a/nemo/collections/asr/models/rnnt_bpe_models_prompt.py b/nemo/collections/asr/models/rnnt_bpe_models_prompt.py index 9c3ca8716d79..aee2c791f229 100644 --- a/nemo/collections/asr/models/rnnt_bpe_models_prompt.py +++ b/nemo/collections/asr/models/rnnt_bpe_models_prompt.py @@ -235,7 +235,7 @@ def _setup_transcribe_dataloader(self, config: Dict) -> 'torch.utils.data.DataLo manifest_filepath = os.path.join(config['temp_dir'], 'manifest.json') batch_size = min(config['batch_size'], len(config['paths2audio_files'])) - target_lang = config.get('target_lang', 'en-US') + target_lang = config.get('target_lang', 'auto') dl_config = { 'manifest_filepath': manifest_filepath, @@ -254,6 +254,7 @@ def _setup_transcribe_dataloader(self, config: Dict) -> 'torch.utils.data.DataLo 'num_prompts': self.cfg.model_defaults.get('num_prompts', 128), 'subsampling_factor': self.cfg.get('subsampling_factor', 8), 'default_lang': target_lang, + 'default_prompt_mode': 'langID', 'window_stride': self.cfg.preprocessor.get('window_stride', 0.01), }