Punjabi Gurmukhi input appears to mishandle addak and nasalization markers

Author: selsieCreated Aug 10, 2026Updated Sep 8, 2026
Labelsbug

Self Checks

Cloud or Self Hosted

Self Hosted (Source)

Environment Details

Environment

  • Fish Speech: current development/test version
  • GPU: NVIDIA GeForce RTX 5090 Laptop GPU
  • PyTorch: 2.8.0+cu128
  • CUDA: 12.8
  • Python: 3.12
  • OS: Windows 11 25H2, Build 26200.8875
  • Backend: Fish Speech API server with --compile

Steps to Reproduce

  1. Start the Fish Speech API server with --compile.
  2. Provide a Punjabi speaker reference recording.
  3. Use the following Punjabi sentence as the reference/input text:
ਅੱਜ ਮੌਸਮ ਬਹੁਤ ਵਧੀਆ ਹੈ, ਤੇ ਤੁਹਾਡੇ ਨਾਲ ਗੱਲ ਕਰਕੇ ਮੇਰਾ ਦਿਲ ਖੁਸ਼ ਹੋ ਗਿਆ।
  1. Generate speech.
  2. Generate the same sentence again using a Latin transliteration.
  3. Compare the pronunciation, particularly words containing addak () and Punjabi nasalization markers ( / ).

Comparison

Gurmukhi:

ਅੱਜ ਮੌਸਮ ਬਹੁਤ ਵਧੀਆ ਹੈ, ਤੇ ਤੁਹਾਡੇ ਨਾਲ ਗੱਲ ਕਰਕੇ ਮੇਰਾ ਦਿਲ ਖੁਸ਼ ਹੋ ਗਿਆ।

Plain Latin transliteration:

Ajj mausam bahut waddiya hai, te tuhade naal gal karke mera dil khush ho gya.

Diacritic-based Latin transliteration:

Ajj mausam bahut vadhīā hai, tē tuhāḍē nāl gall karke merā dil khuś hō giā.

The three versions produce noticeably different pronunciations.

✔️ Expected Behavior

Punjabi Gurmukhi input should preserve the pronunciation information represented by the Gurmukhi orthography.

In particular, addak () should result in the appropriate consonant gemination, and Punjabi nasalization markers should contribute appropriately to pronunciation.

The pronunciation should also remain broadly consistent when the same linguistic content is represented in Gurmukhi and an unambiguous phonetic transliteration.

❌ Actual Behavior

The Gurmukhi version produces a noticeably different pronunciation from the Latin versions.

The difference is particularly noticeable in words containing Punjabi orthographic features such as addak and nasalization markers.

For example:

ਗੱਲ

contains addak and should represent consonant gemination. However, the generated pronunciation does not consistently sound equivalent to the corresponding explicitly geminated Latin representation:

gall

Interestingly, the diacritic-based Latin transliteration:

Ajj mausam bahut vadhīā hai, tē tuhāḍē nāl gall karke merā dil khuś hō giā.

produces substantially more natural Punjabi pronunciation in listening tests.

I generated the test sentence approximately ten times with the diacritic-based transliteration, with consistently good pronunciation.

This suggests that the issue may be related to Punjabi/Gurmukhi text normalization or grapheme-to-phoneme handling rather than the acoustic generation itself.