feat: expand language and accent lists to full coverage
Language: ~170 world languages with type-to-filter dropdown Accent: 50+ regional varieties grouped by area Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+73
-4
@@ -63,11 +63,80 @@ class OmniVoiceGenerate:
|
||||
"tooltip": "Transcription of ref_audio. Connect a Whisper (or other STT) node for best results.",
|
||||
}),
|
||||
"language": (
|
||||
["auto", "English", "Chinese", "Japanese", "Korean", "French",
|
||||
"Spanish", "German", "Portuguese", "Russian", "Arabic", "Hindi"],
|
||||
[
|
||||
"auto",
|
||||
# A
|
||||
"Abkhazian", "Afar", "Afrikaans", "Akan", "Albanian", "Amharic",
|
||||
"Arabic", "Aragonese", "Armenian", "Assamese", "Avaric", "Avestan",
|
||||
"Aymara", "Azerbaijani",
|
||||
# B
|
||||
"Bambara", "Bashkir", "Basque", "Belarusian", "Bengali", "Bihari",
|
||||
"Bislama", "Bosnian", "Breton", "Bulgarian", "Burmese",
|
||||
# C
|
||||
"Catalan", "Chamorro", "Chechen", "Chichewa", "Chinese (Mandarin)",
|
||||
"Chinese (Cantonese)", "Chuvash", "Cornish", "Corsican", "Cree",
|
||||
"Croatian", "Czech",
|
||||
# D
|
||||
"Danish", "Divehi", "Dutch", "Dzongkha",
|
||||
# E
|
||||
"English", "Esperanto", "Estonian", "Ewe",
|
||||
# F
|
||||
"Faroese", "Fijian", "Finnish", "French", "Fula",
|
||||
# G
|
||||
"Galician", "Georgian", "German", "Greek", "Guaraní", "Gujarati",
|
||||
# H
|
||||
"Haitian Creole", "Hausa", "Hebrew", "Herero", "Hindi", "Hiri Motu",
|
||||
"Hungarian",
|
||||
# I
|
||||
"Interlingua", "Indonesian", "Igbo", "Inuktitut", "Irish",
|
||||
"Italian",
|
||||
# J
|
||||
"Japanese", "Javanese",
|
||||
# K
|
||||
"Kannada", "Kanuri", "Kashmiri", "Kazakh", "Khmer", "Kikuyu",
|
||||
"Kinyarwanda", "Komi", "Kongo", "Korean", "Kurdish", "Kyrgyz",
|
||||
# L
|
||||
"Lao", "Latin", "Latvian", "Limburgish", "Lingala", "Lithuanian",
|
||||
"Luganda", "Luxembourgish",
|
||||
# M
|
||||
"Macedonian", "Malagasy", "Malay", "Malayalam", "Maltese", "Manx",
|
||||
"Maori", "Marathi", "Marshallese", "Mongolian",
|
||||
# N
|
||||
"Nauruan", "Navajo", "Nepali", "Northern Sami", "Norwegian",
|
||||
"Norwegian Bokmål", "Norwegian Nynorsk",
|
||||
# O
|
||||
"Occitan", "Ojibwe", "Odia", "Oromo", "Ossetian",
|
||||
# P
|
||||
"Pali", "Pashto", "Persian", "Polish", "Portuguese",
|
||||
"Punjabi",
|
||||
# Q
|
||||
"Quechua",
|
||||
# R
|
||||
"Romanian", "Romansh", "Russian",
|
||||
# S
|
||||
"Samoan", "Sango", "Sanskrit", "Serbian", "Shona", "Sindhi",
|
||||
"Sinhala", "Slovak", "Slovenian", "Somali", "Southern Sotho",
|
||||
"Spanish", "Sundanese", "Swahili", "Swati", "Swedish",
|
||||
# T
|
||||
"Tagalog", "Tahitian", "Tajik", "Tamil", "Tatar", "Telugu",
|
||||
"Thai", "Tibetan", "Tigrinya", "Tonga", "Tsonga", "Tswana",
|
||||
"Turkish", "Turkmen", "Twi",
|
||||
# U
|
||||
"Ukrainian", "Urdu", "Uyghur", "Uzbek",
|
||||
# V
|
||||
"Vietnamese", "Volapük",
|
||||
# W
|
||||
"Walloon", "Welsh", "Western Frisian", "Wolof",
|
||||
# X
|
||||
"Xhosa",
|
||||
# Y
|
||||
"Yiddish", "Yoruba",
|
||||
# Z
|
||||
"Zhuang", "Zulu",
|
||||
],
|
||||
{
|
||||
"default": "auto",
|
||||
"tooltip": "Language of the text to synthesize. 'auto' lets the model detect it.",
|
||||
"tooltip": "Language of the text. Type to filter. OmniVoice supports 600+ languages — use 'auto' when unsure.",
|
||||
},
|
||||
),
|
||||
"instruct": ("STRING", {
|
||||
@@ -124,7 +193,7 @@ class OmniVoiceGenerate:
|
||||
if seed != 0:
|
||||
torch.manual_seed(seed)
|
||||
kwargs = {"text": text, "speed": speed, "num_step": num_step, "guidance_scale": guidance_scale}
|
||||
if language != "auto":
|
||||
if language and language != "auto":
|
||||
kwargs["language"] = language
|
||||
|
||||
if mode == "voice_cloning" and ref_audio is None:
|
||||
|
||||
+47
-11
@@ -1,24 +1,60 @@
|
||||
class OmniVoiceVoiceDesign:
|
||||
"""Compose a voice design instruct string from structured dropdowns."""
|
||||
|
||||
GENDERS = ["none", "male", "female"]
|
||||
AGES = ["none", "child", "teenager", "young adult", "middle-aged", "elderly"]
|
||||
PITCHES = ["none", "very low pitch", "low pitch", "moderate pitch", "high pitch", "very high pitch", "whisper"]
|
||||
ACCENTS = [
|
||||
GENDERS = ["none", "male", "female"]
|
||||
|
||||
AGES = ["none", "child", "teenager", "young adult", "middle-aged", "elderly"]
|
||||
|
||||
PITCHES = [
|
||||
"none",
|
||||
"american accent", "british accent", "australian accent", "canadian accent",
|
||||
"indian accent", "chinese accent", "japanese accent", "korean accent",
|
||||
"portuguese accent", "russian accent",
|
||||
"very low pitch", "low pitch", "moderate pitch",
|
||||
"high pitch", "very high pitch", "whisper",
|
||||
]
|
||||
|
||||
ACCENTS = [
|
||||
"none",
|
||||
# English varieties
|
||||
"american accent", "american southern accent", "american new york accent",
|
||||
"american midwest accent", "american texas accent",
|
||||
"british accent", "british rp accent", "british cockney accent",
|
||||
"scottish accent", "welsh accent", "irish accent",
|
||||
"australian accent", "new zealand accent",
|
||||
"canadian accent", "south african accent",
|
||||
# South / Southeast Asia
|
||||
"indian accent", "pakistani accent", "bangladeshi accent",
|
||||
"sri lankan accent", "singaporean accent", "malaysian accent",
|
||||
"filipino accent", "vietnamese accent", "thai accent",
|
||||
"indonesian accent",
|
||||
# East Asia
|
||||
"chinese accent", "japanese accent", "korean accent",
|
||||
# Europe
|
||||
"french accent", "german accent", "italian accent",
|
||||
"spanish accent", "portuguese accent", "dutch accent",
|
||||
"swedish accent", "norwegian accent", "danish accent",
|
||||
"finnish accent", "polish accent", "czech accent",
|
||||
"hungarian accent", "romanian accent", "greek accent",
|
||||
"turkish accent",
|
||||
# Eastern Europe / Central Asia
|
||||
"russian accent", "ukrainian accent", "arabic accent",
|
||||
"persian accent", "kazakh accent",
|
||||
# Africa / Americas
|
||||
"nigerian accent", "ghanaian accent", "kenyan accent",
|
||||
"mexican accent", "brazilian accent", "caribbean accent",
|
||||
"argentinian accent",
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"gender": (cls.GENDERS, {"default": "female"}),
|
||||
"age": (cls.AGES, {"default": "none"}),
|
||||
"pitch": (cls.PITCHES, {"default": "none"}),
|
||||
"accent": (cls.ACCENTS, {"default": "none"}),
|
||||
"gender": (cls.GENDERS, {"default": "female",
|
||||
"tooltip": "Voice gender."}),
|
||||
"age": (cls.AGES, {"default": "none",
|
||||
"tooltip": "Approximate age of the speaker."}),
|
||||
"pitch": (cls.PITCHES, {"default": "none",
|
||||
"tooltip": "Pitch / register of the voice."}),
|
||||
"accent": (cls.ACCENTS, {"default": "none",
|
||||
"tooltip": "Regional or language accent. Type to filter the list."}),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user