feat: 新增音频路径音频文本欄位,提供給本地tts選取音色

https://github.com/xinnan-tech/xiaozhi-esp32-server/issues/1503#issuecomment-2954952028
This commit is contained in:
shane0411
2025-06-09 19:18:58 +08:00
parent be6fba5963
commit 2eb5539c9b
11 changed files with 83 additions and 45 deletions
@@ -85,8 +85,12 @@ class TTSProvider(TTSProviderBase):
self.reference_id = (
None if not config.get("reference_id") else config.get("reference_id")
)
self.reference_audio = parse_string_to_list(config.get("reference_audio"))
self.reference_text = parse_string_to_list(config.get("reference_text"))
self.reference_audio = parse_string_to_list(
config.get('ref_audio')if config.get('ref_audio') else config.get("reference_audio")
)
self.reference_text = parse_string_to_list(
config.get('ref_text')if config.get('ref_text') else config.get("reference_text")
)
self.format = config.get("response_format", "wav")
self.audio_file_type = config.get("response_format", "wav")
self.api_key = config.get("api_key", "YOUR_API_KEY")
@@ -129,13 +133,6 @@ class TTSProvider(TTSProviderBase):
self.use_memory_cache = config.get("use_memory_cache", "on")
self.seed = int(config.get("seed")) if config.get("seed") else None
self.api_url = config.get("api_url", "http://127.0.0.1:8080/v1/tts")
self.get_voice_data(config)
def get_voice_data(self, config: dict):
if not config.get('private_voice', '') and not config.get('voice_remark', ''):
return
self.reference_audio = config.get('private_voice')
self.reference_text = config.get('voice_remark')
async def text_to_speak(self, text, output_file):
# Prepare reference data