From f6d64dd8508ab3774d650fba34644e24a9446758 Mon Sep 17 00:00:00 2001 From: snaily Date: Thu, 10 Jul 2025 01:03:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20TTS=20=E8=AF=AD?= =?UTF-8?q?=E9=9F=B3=E5=90=8D=E7=A7=B0=E5=B8=B8=E9=87=8F=E5=B9=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20TTS=20=E6=9C=8D=E5=8A=A1=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 constants.py 中新增 TTS_VOICE_NAMES 列表,包含多个语音名称。 - 更新 tts_service.py 中的语音配置逻辑,确保使用请求中的语音名称(如果有效),否则回退到默认配置。 --- app/core/constants.py | 13 ++++++++++++- app/service/tts/tts_service.py | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/core/constants.py b/app/core/constants.py index 21d72aa..cbdfb8f 100644 --- a/app/core/constants.py +++ b/app/core/constants.py @@ -76,4 +76,15 @@ DEFAULT_SAFETY_SETTINGS = [ {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "OFF"}, {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "OFF"}, {"category": "HARM_CATEGORY_CIVIC_INTEGRITY", "threshold": "BLOCK_NONE"}, - ] \ No newline at end of file + ] + +TTS_VOICE_NAMES = [ + "Zephyr", "Puck", "Charon", "Kore", + "Fenrir", "Leda", "Orus", "Aoede", + "Callirhoe", "Autonoe", "Enceladus", "Iapetus", + "Umbriel", "Algieba", "Despina", "Erinome", + "Algenib", "Rasalgethi", "Laomedeia", "Achernar", + "Alnilam", "Schedar", "Gacrux", "Pulcherrima", + "Achird", "Zubenelgenubi", "Vindemiatrix", "Sadachbia", + "Sadaltager", "Sulafat" +] \ No newline at end of file diff --git a/app/service/tts/tts_service.py b/app/service/tts/tts_service.py index 99a6074..b7c19f0 100644 --- a/app/service/tts/tts_service.py +++ b/app/service/tts/tts_service.py @@ -8,6 +8,7 @@ from typing import Optional from google import genai from app.config.config import settings +from app.core.constants import TTS_VOICE_NAMES from app.database.services import add_error_log, add_request_log from app.domain.openai_models import TTSRequest from app.log.logger import get_openai_logger @@ -47,7 +48,7 @@ class TTSService: "speech_config": { "voice_config": { "prebuilt_voice_config": { - "voice_name": settings.TTS_VOICE_NAME + "voice_name": request.voice if request.voice in TTS_VOICE_NAMES else settings.TTS_VOICE_NAME } } },