liumaolin commited on
Commit ·
9845a3d
1
Parent(s): f622112
feat(api/tts-voice-app): add Cantonese (yue) support and improve language-specific defaults
Browse files- Extend `language` schema with `yue` option (Cantonese)
- Update default target texts for supported languages
- Dynamically select target text based on task language in `TaskService`
- Add Cantonese to language dropdown in CreateTaskDialog component
api_server/app/models/schemas/task.py
CHANGED
|
@@ -74,9 +74,9 @@ class QuickModeOptions(BaseModel):
|
|
| 74 |
default="v2",
|
| 75 |
description="模型版本"
|
| 76 |
)
|
| 77 |
-
language:
|
| 78 |
default="zh",
|
| 79 |
-
description="训练语言
|
| 80 |
)
|
| 81 |
quality: Literal["fast", "standard", "high"] = Field(
|
| 82 |
default="standard",
|
|
|
|
| 74 |
default="v2",
|
| 75 |
description="模型版本"
|
| 76 |
)
|
| 77 |
+
language: Literal["zh", "en", "ja", "ko", "yue"] = Field(
|
| 78 |
default="zh",
|
| 79 |
+
description="训练语言:zh(中文)、en(英语)、ja(日语)、ko(韩语)、yue(粤语)"
|
| 80 |
)
|
| 81 |
quality: Literal["fast", "standard", "high"] = Field(
|
| 82 |
default="standard",
|
api_server/app/services/task_service.py
CHANGED
|
@@ -40,6 +40,15 @@ QUALITY_PRESETS = {
|
|
| 40 |
},
|
| 41 |
}
|
| 42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
|
| 44 |
class TaskService:
|
| 45 |
"""
|
|
@@ -197,7 +206,9 @@ class TaskService:
|
|
| 197 |
# 使用默认值 - 空字符串表示由推理阶段从 asr_opt/slicer_opt.list 文件解析
|
| 198 |
config["ref_text"] = ""
|
| 199 |
config["ref_audio_path"] = ""
|
| 200 |
-
|
|
|
|
|
|
|
| 201 |
|
| 202 |
# 创建 Task 领域模型
|
| 203 |
task = Task(
|
|
|
|
| 40 |
},
|
| 41 |
}
|
| 42 |
|
| 43 |
+
# 各语言的默认推理测试文本
|
| 44 |
+
DEFAULT_TARGET_TEXTS = {
|
| 45 |
+
"zh": "这是一段测试语音合成的文本。请你用自然、清晰、不过度夸张的语气朗读,并在逗号和句号处做适当停顿:先慢一点,再稍微快一点,最后恢复正常语速。",
|
| 46 |
+
"en": "This is a test text for speech synthesis. Please read it naturally and clearly, without exaggeration, pausing appropriately at commas and periods: start slowly, then speed up a bit, and finally return to normal pace.",
|
| 47 |
+
"ja": "これは音声合成のテストテキストです。自然で明瞭に、大げさにならないように朗読してください。読点と句点で適切に間を置いて:最初はゆっくり、少し速く、最後は普通の速さに戻してください。",
|
| 48 |
+
"ko": "이것은 음성 합성을 위한 테스트 텍스트입니다. 자연스럽고 명확하게, 과장하지 않고 읽어주세요. 쉼표와 마침표에서 적절히 멈추며: 먼저 천천히, 그 다음 조금 빠르게, 마지막으로 보통 속도로 돌아오세요.",
|
| 49 |
+
"yue": "呢段係測試語音合成嘅文字。請你用自然、清楚、唔好太誇張嘅語氣讀出嚟,喺逗號同句號嗰度要適當噉停一停:開頭慢啲,跟住快少少,最後返返正常語速。",
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
|
| 53 |
class TaskService:
|
| 54 |
"""
|
|
|
|
| 206 |
# 使用默认值 - 空字符串表示由推理阶段从 asr_opt/slicer_opt.list 文件解析
|
| 207 |
config["ref_text"] = ""
|
| 208 |
config["ref_audio_path"] = ""
|
| 209 |
+
# 根据语言选择默认的测试文本
|
| 210 |
+
language = request.options.language
|
| 211 |
+
config["target_text"] = DEFAULT_TARGET_TEXTS.get(language, DEFAULT_TARGET_TEXTS["zh"])
|
| 212 |
|
| 213 |
# 创建 Task 领域模型
|
| 214 |
task = Task(
|
tts-voice-app/src/renderer/src/components/training/CreateTaskDialog.vue
CHANGED
|
@@ -36,6 +36,7 @@ const uploadFailed = ref(false)
|
|
| 36 |
// 语言选项
|
| 37 |
const languageOptions = [
|
| 38 |
{ label: '中文', value: 'zh' },
|
|
|
|
| 39 |
{ label: 'English', value: 'en' },
|
| 40 |
{ label: '日本語', value: 'ja' },
|
| 41 |
{ label: '한국어', value: 'ko' }
|
|
|
|
| 36 |
// 语言选项
|
| 37 |
const languageOptions = [
|
| 38 |
{ label: '中文', value: 'zh' },
|
| 39 |
+
{ label: '粤语', value: 'yue' },
|
| 40 |
{ label: 'English', value: 'en' },
|
| 41 |
{ label: '日本語', value: 'ja' },
|
| 42 |
{ label: '한국어', value: 'ko' }
|