diff --git a/kokoro.js/src/voices.js b/kokoro.js/src/voices.js index 7146350b..3f630ee1 100644 --- a/kokoro.js/src/voices.js +++ b/kokoro.js/src/voices.js @@ -312,6 +312,22 @@ export const VOICES = Object.freeze({ // targetQuality: "C", // overallGrade: "D", // }, + // df_anna: { + // name: "anna", + // language: "de", + // gender: "Female", + // traits: "🚺", + // targetQuality: "C", + // overallGrade: "D", + // }, + // dm_daniel: { + // name: "daniel", + // language: "de", + // gender: "Male", + // traits: "🚹", + // targetQuality: "C", + // overallGrade: "D", + // }, // ef_dora: { // name: "dora", // language: "es", diff --git a/kokoro/__main__.py b/kokoro/__main__.py index 34ee21a3..d84fd385 100644 --- a/kokoro/__main__.py +++ b/kokoro/__main__.py @@ -23,6 +23,7 @@ languages = [ "a", # American English "b", # British English + "d", # German "h", # Hindi "e", # Spanish "f", # French diff --git a/kokoro/pipeline.py b/kokoro/pipeline.py index 33770691..b8bdf894 100644 --- a/kokoro/pipeline.py +++ b/kokoro/pipeline.py @@ -11,6 +11,7 @@ ALIASES = { 'en-us': 'a', 'en-gb': 'b', + 'de': 'd', 'es': 'e', 'fr-fr': 'f', 'hi': 'h', @@ -26,6 +27,7 @@ b='British English', # espeak-ng + d='de', e='es', f='fr-fr', h='hi', @@ -138,6 +140,13 @@ def __init__( except ImportError: logger.error("You need to `pip install misaki[zh]` to use lang_code='z'") raise + elif lang_code == 'd': + try: + from misaki import de + self.g2p = de.DEG2P() + except ImportError: + logger.error("You need to `pip install misaki[de]` to use lang_code='d'") + raise else: language = LANG_CODES[lang_code] logger.warning(f"Using EspeakG2P(language='{language}'). Chunking logic not yet implemented, so long texts may be truncated unless you split them with '\\n'.")