feat: add German (de) language support#317
Conversation
|
/claim #290 |
|
Status update: Voice Happy to adjust the implementation based on any feedback in the meantime. |
|
Small technical clarification after reviewing model compatibility more carefully: the German-trained assets coming out of Because of that, this PR is intentionally scoped to upstream language enablement and related plumbing:
The trained German model work continues in the external community project: If upstream wants German support wired in at the code level first, this PR keeps that change minimal and technically accurate. |
Register German as a supported language: - Add 'de': 'd' to ALIASES in pipeline.py - Add d='de' to LANG_CODES (espeak-ng section) in pipeline.py - Add 'd' (German) to CLI language choices in __main__.py - Add commented-out German voice stubs (df_anna, dm_daniel) to kokoro.js/src/voices.js German uses the existing espeak.EspeakG2P fallback path. No new files, no new dependencies.
|
Split out the stale chunking warning fix into its own PR (#318) since it's an independent bugfix that benefits all espeak-ng languages. This PR now contains only the German language registration and kokoro.js voice stubs. |
German now uses misaki.de.DEG2P which normalizes text (numbers, dates, times, currency, abbreviations) before phonemization via espeak-ng. This matches how Japanese and Chinese use dedicated G2P modules. Requires: pip install misaki[de]
|
Update: German is now wired through a dedicated This matches the architecture used for Japanese (
Upstream That PR adds German text normalization for numbers, dates, times, currency, and abbreviations before espeak-ng phonemization. |
|
@semidark I was able to find references to
I would like to test and possibly integrate the German voice path, but without a publicly downloadable Kokoro-compatible model/voicepack I cannot really validate it. Is |
Summary
Register German as a supported language in Kokoro's pipeline, CLI, and kokoro.js voice list.
Changes
'de': 'd'toALIASESandd='de'toLANG_CODESinpipeline.pyelif lang_code == 'd':branch that usesmisaki.de.DEG2P()instead of the generic espeak fallback"d"(German) to the CLI language choices in__main__.pydf_anna,dm_daniel) tokokoro.js/src/voices.jsGerman follows the same dedicated-G2P pattern as Japanese (
JAG2P) and Chinese (ZHG2P).See also:
misakiPR for German G2P: feat: add German G2P with text normalization misaki#97Usage
This PR enables
lang_code='d'/lang_code='de'in upstream Kokoro's pipeline and CLI.German synthesis depends on a compatible German-trained model family and matching voice assets.
Context: Training Recipe and German Model Work
This PR comes out of kokoro-deutsch, a community project that reverse-engineered a working Kokoro fine-tuning pipeline using a patched StyleTTS2. The repo contains:
misakiwith German text normalization (misaki.de.DEG2P)A German multi-speaker base model has been published by the community:
Important technical note: German voicepacks extracted from this work are tied to the German-trained model family, not to upstream
hexgrad/Kokoro-82M. Because of that, this PR is intentionally limited to upstream language enablement, while the trained German model assets currently live in the external community project.Timeline
misaki.de.DEG2Pand opened upstreammisakiPR Docker compose error #97Relates to #290