voice_agent: NemoSTTService's default model is misspelled ('nnvidia'), silently defaulting has_turn_taking to False
Describe the bug
NemoSTTService's default model value is misspelled, which silently defaults
has_turn_taking to False for the one model it is supposed to auto-detect.
nemo/agents/voice_agent/pipecat/services/nemo/stt.py:41 defines the only
recognized EOU model:
ASR_EOU_MODELS = ["nvidia/parakeet_realtime_eou_120m-v1"]but the constructor's default at stt.py:74 is spelled with a double "n":
model: Optional[str] = "nnvidia/parakeet_realtime_eou_120m-v1",__init__ auto-detects turn taking from membership in that list:
if has_turn_taking is None:
has_turn_taking = True if model in ASR_EOU_MODELS else FalseBecause the default string doesn't match, NemoSTTService() constructed
without an explicit model= override gets has_turn_taking=False, and
_load_model() goes on to request the nonexistent model id
"nnvidia/parakeet_realtime_eou_120m-v1". NemoStreamingASRService's own
default (streaming_asr.py:45) and the shipped
examples/voice_agent/server/server_configs/default.yaml:20 both use the
correctly spelled "nvidia/..." id, so only this one default is affected.
Steps/Code to reproduce bug
from nemo.agents.voice_agent.pipecat.services.nemo.stt import NemoSTTService, ASR_EOU_MODELS
print(ASR_EOU_MODELS)
# ['nvidia/parakeet_realtime_eou_120m-v1']
svc = NemoSTTService() # no explicit model= override
print(svc._model_name)
# 'nnvidia/parakeet_realtime_eou_120m-v1'
print(svc._model_name in ASR_EOU_MODELS)
# False
print(svc._has_turn_taking)
# False (should be True)Expected behavior
NemoSTTService()'s out-of-the-box default should resolve to the one
supported EOU model and set has_turn_taking=True, matching
NemoStreamingASRService's default and the shipped server config.
Environment overview
- Environment location: bare metal
- Method of NeMo install: from source,
pip install -e .
Environment details
- Ubuntu 24.04.4 LTS · Python 3.12.3
Source: NVIDIA-NeMo/Speech