You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
TTS TN verbalizes comma in dates as "sil" (e.g. August 15, 1947) #18
With Sparrowhawk text normalization enabled, Magpie TTS mispronounces written dates of the form Month DD, YYYY. The comma between the day and year is verbalized as the token sil instead of being treated as punctuation / dropped.
Example input:
August 15, 1947
Observed spoken form includes an extra sil (or an unnatural pause/token) around the comma, rather than something like "August fifteenth nineteen forty seven".
This is not a missing-TN-grammars issue. TN is loaded (tn=enabled) and digits/dates otherwise normalize. The failure is specific to this comma in this date format.
Repro
Serve Magpie TTS with Sparrowhawk TN (--tts.tn-model-dir pointing at the tn_configs from v0.1.0 tn_configs.tar.bz2).
Comma in August 15, 1947 is punctuation. TN should drop it or map it to a pause that Magpie does not speak as a word.
Actual
A standalone comma token is rewritten to sil, which reaches Magpie as spoken text.
Root cause
Sparrowhawk maps a standalone comma to "sil" in normalizer_utils.cc:
if (word_names[i] == ",")
word = AddWord(utt, token, "sil");
This is present in the upstream Sparrowhawk repo (not a NeMo-Speech.cpp-only fork change). Magpie then synthesizes sil as if it were a word.
Other commas (not this date pattern) do not always hit the same path, which is why it is easy to miss in QA.
Environment
nvcr.io/nvidia/nemo-speech.cpp:0.1.0
Magpie TTS multilingual GGUF + NanoCodec
TN grammars from the v0.1.0 GitHub release
Same class of failure on Magpie TTS Multilingual NIM
Request
Do not emit the verbalized sil token for a date comma (drop the comma, or keep an internal pause that does not reach the TTS tokenizer). Tracking this here so GGML and NIM stay aligned.
Activity
pskrunner14 commentedon Oct 16, 2026
This is fixed by #69