Skip to content

Add Kannada (kn-IN) G2P support for TTS#15582

Open
jasro23 wants to merge 3 commits into
NVIDIA-NeMo:mainfrom
jasro23:kannada_g2p
Open

Add Kannada (kn-IN) G2P support for TTS#15582
jasro23 wants to merge 3 commits into
NVIDIA-NeMo:mainfrom
jasro23:kannada_g2p

Conversation

@jasro23
Copy link
Copy Markdown
Contributor

@jasro23 jasro23 commented Apr 3, 2026

  • Add KannadaG2p class with hybrid dictionary + rule-based IPA conversion
  • Add Kannada grapheme and IPA character sets to ipa_lexicon.py
  • Add kn-IN locale support with punctuation handling
  • Include lexicon with 4K Kannada words
  • Add test script with assertions for validation

The G2P module handles:

  • All Kannada vowels, consonants, matras (dependent vowels)
  • Virama (halant), anusvara, visarga
  • Anusvara place assimilation based on following consonant

Important

The Update branch button must only be pressed in very rare occassions.
An outdated branch is never blocking the merge of a PR.
Please reach out to the automation team before pressing that button.

What does this PR do ?

Add Kannada (kn-IN) G2P support for TTS

Collection: [TTS]

Changelog

  • Add KannadaG2p class in nemo/collections/tts/g2p/models/kn_in_ipa.py for Kannada grapheme-to-phoneme conversion
  • Add Kannada grapheme and IPA character sets to ipa_lexicon.py
  • Add kn-IN to supported locales with Kannada-specific punctuation
  • Add pronunciation dictionary with 4264 Kannada words (kn_IN_nv260318.dict)
  • Add Kannada G2P unit tests to test_tts_tokenizers.py

Usage

  • You can potentially add a usage example below
# Add a code snippet demonstrating how to use this 

GitHub Actions CI

The Jenkins CI system has been replaced by GitHub Actions self-hosted runners.

The GitHub Actions CI will run automatically when the "Run CICD" label is added to the PR.
To re-run CI remove and add the label again.
To run CI on an untrusted fork, a NeMo user with write access must first click "Approve and run".

Before your PR is "Ready for review"

Pre checks:

  • [ *] Make sure you read and followed Contributor guidelines
  • [ *] Did you write any new necessary tests?
  • Did you add or update any necessary documentation?
  • Does the PR affect components that are optional to install? (Ex: Numba, Pynini, Apex etc)
    • Reviewer: Does the PR have correct import guards for all optional libraries?

PR Type:

  • [* ] New Feature
  • Bugfix
  • Documentation

If you haven't finished some of the above items you can still open "Draft" PR.

Who can review?

Anyone in the community is free to review the PR once the checks have passed.
Contributor guidelines contains specific people who can review PRs to various areas.

Additional Information

  • Related to # (issue)

@jasro23 jasro23 force-pushed the kannada_g2p branch 2 times, most recently from 2cb28e8 to 8ddb3c2 Compare April 3, 2026 19:59
@annagirimokshith
Copy link
Copy Markdown

@jasro23 Can you also add support for Telugu language

@jasro23
Copy link
Copy Markdown
Contributor Author

jasro23 commented Apr 9, 2026

@jasro23 Can you also add support for Telugu language

@annagirimokshith . I am not too familiar with Telugu.

Comment thread nemo/collections/tts/g2p/models/kn_in_ipa.py Fixed
Comment thread nemo/collections/tts/g2p/models/kn_in_ipa.py Fixed
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Kannada (kn-IN) grapheme-to-phoneme (G2P) support for NeMo TTS, including a new Kannada IPA G2P implementation, locale character sets/punctuation, a pronunciation dictionary, and unit tests.

Changes:

  • Introduce KannadaG2p with hybrid dictionary + rule-based IPA conversion.
  • Add kn-IN grapheme and IPA character sets plus locale punctuation handling.
  • Add a Kannada pronunciation lexicon and basic unit tests validating G2P outputs.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 6 comments.

File Description
nemo/collections/tts/g2p/models/kn_in_ipa.py New Kannada G2P implementation (dictionary + rule-based).
nemo/collections/common/tokenizers/text_to_speech/ipa_lexicon.py Adds kn-IN locale support, including grapheme/IPA sets and punctuation.
scripts/tts_dataset_files/kn_IN/kn_IN_nv260318.dict New Kannada pronunciation dictionary (~4.3K entries).
tests/collections/common/tokenizers/text_to_speech/test_tts_tokenizers.py Adds unit tests for Kannada G2P behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread nemo/collections/tts/g2p/models/kn_in_ipa.py Outdated
Comment thread nemo/collections/tts/g2p/models/kn_in_ipa.py Outdated
Comment thread nemo/collections/tts/g2p/models/kn_in_ipa.py
Comment thread nemo/collections/tts/g2p/models/kn_in_ipa.py Outdated
Comment thread nemo/collections/common/tokenizers/text_to_speech/ipa_lexicon.py
@svcnvidia-nemo-ci svcnvidia-nemo-ci added waiting-on-maintainers Waiting on maintainers to respond and removed needs-follow-up Issue needs follow-up labels Apr 21, 2026
@pzelasko pzelasko removed the Run CICD label Apr 28, 2026
- Add KannadaG2p class with hybrid dictionary + rule-based IPA conversion
- Add Kannada grapheme and IPA character sets to ipa_lexicon.py
- Add kn-IN locale support with punctuation handling
- Include lexicon with 4264 Kannada words
- Add test script with assertions for validation

The G2P module handles:
- All Kannada vowels, consonants, matras (dependent vowels)
- Virama (halant), anusvara, visarga
- Anusvara place assimilation based on following consonant

Signed-off-by: Jason Roche <jas.tech23@gmail.com>
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented May 1, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@jasro23 jasro23 marked this pull request as draft May 1, 2026 19:00
@jasro23 jasro23 force-pushed the kannada_g2p branch 5 times, most recently from 5bb1488 to d67c70b Compare May 1, 2026 20:04
Signed-off-by: Jason Roche <jas.tech23@gmail.com>
@svcnvidia-nemo-ci svcnvidia-nemo-ci removed the waiting-on-maintainers Waiting on maintainers to respond label May 1, 2026
@jasro23 jasro23 marked this pull request as ready for review May 15, 2026 00:29
@svcnvidia-nemo-ci svcnvidia-nemo-ci added the waiting-on-maintainers Waiting on maintainers to respond label May 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants