mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-25 00:23:53 +08:00
feat: 新增音频路径與音频文本欄位,提供給本地tts選取音色
https://github.com/xinnan-tech/xiaozhi-esp32-server/issues/1503#issuecomment-2954952028
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -12,8 +12,8 @@ class TTSProvider(TTSProviderBase):
|
||||
super().__init__(config, delete_audio_file)
|
||||
self.url = config.get("url")
|
||||
self.text_lang = config.get("text_lang", "zh")
|
||||
self.ref_audio_path = config.get("ref_audio_path")
|
||||
self.prompt_text = config.get("prompt_text")
|
||||
self.ref_audio_path = config.get('ref_audio') if config.get('ref_audio') else config.get("ref_audio_path")
|
||||
self.prompt_text = config.get('ref_text') if config.get('ref_text') else config.get("prompt_text")
|
||||
self.prompt_lang = config.get("prompt_lang", "zh")
|
||||
|
||||
# 处理空字符串的情况
|
||||
@@ -67,14 +67,6 @@ class TTSProvider(TTSProviderBase):
|
||||
)
|
||||
self.audio_file_type = config.get("format", "wav")
|
||||
|
||||
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.ref_audio_path = config.get('private_voice')
|
||||
self.prompt_text = config.get('voice_remark')
|
||||
|
||||
async def text_to_speak(self, text, output_file):
|
||||
request_json = {
|
||||
"text": text,
|
||||
|
||||
@@ -11,8 +11,8 @@ class TTSProvider(TTSProviderBase):
|
||||
def __init__(self, config, delete_audio_file):
|
||||
super().__init__(config, delete_audio_file)
|
||||
self.url = config.get("url")
|
||||
self.refer_wav_path = config.get("refer_wav_path")
|
||||
self.prompt_text = config.get("prompt_text")
|
||||
self.refer_wav_path = config.get('ref_audio')if config.get('ref_audio') else config.get("refer_wav_path")
|
||||
self.prompt_text = config.get('ref_text')if config.get('ref_text') else config.get("prompt_text")
|
||||
self.prompt_language = config.get("prompt_language")
|
||||
self.text_language = config.get("text_language", "audo")
|
||||
|
||||
@@ -34,14 +34,6 @@ class TTSProvider(TTSProviderBase):
|
||||
self.if_sr = str(config.get("if_sr", False)).lower() in ("true", "1", "yes")
|
||||
self.audio_file_type = config.get("format", "wav")
|
||||
|
||||
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.refer_wav_path = config.get('private_voice')
|
||||
self.prompt_text = config.get('voice_remark')
|
||||
|
||||
async def text_to_speak(self, text, output_file):
|
||||
request_params = {
|
||||
"refer_wav_path": self.refer_wav_path,
|
||||
|
||||
Reference in New Issue
Block a user