跳到主要内容

文本转语音

1. 什么是文本转语音任务?

文本转语音(Text-to-Speech,TTS)是大模型推理服务中的重要任务之一,旨在将输入的文本内容转换为自然、可听的语音输出。通过 TTS 能力,用户可以将文本快速转化为语音,用于播报、对话反馈和多媒体内容生成等场景。

2. 典型应用场景

  • 语音播报:将文章、公告、提示信息自动转换为语音。
  • 对话系统:为聊天机器人或智能助手提供语音回复能力。
  • 数字人 / 虚拟角色:为虚拟形象生成指定音色的语音输出。
  • 无障碍辅助:帮助视障用户通过语音获取文本内容。

3. 影响推理效果的关键因素

alt text

输入文本(Text)

  • 作为语音生成的原始内容,文本的语义、标点和结构会直接影响语音的停顿与节奏。
  • 建议合理使用标点符号(如逗号、句号)以获得更自然的朗读效果。避免过长、结构混乱的文本。

参数调整

以下参数用于控制语音生成的稳定性、多样性以及输出音色:

Temperature(随机性控制,0.0 – 1.0)

  • 控制语音生成过程中的随机性。
  • 较低值(如 0.1):语音表现更加稳定、一致,适合正式播报。
  • 较高值(如 0.8):语音变化更丰富,适合更自然或个性化的表达。
  • 应用场景:用于在稳定性与自然度之间进行平衡。

Top P(词汇采样范围,0.0 – 1.0)

  • 通过控制参与生成的词汇概率范围,影响语音表达的多样性。
  • 较低值:输出更可预测,语音风格更统一。
  • 较高值:表达更灵活,语音细节变化更多。
  • 应用场景:在保证可控性的前提下提升语音自然度。

声音类型(Reference ID)

  • 用于选择语音生成所使用的参考音色或声音模板。
  • 不同 Reference ID 对应不同的音色风格(如性别、语气、角色)。
  • 应用场景:根据需求选择合适的音色,提升语音的亲和力和个性化。

4. 代码调用示例

import requests
url = "https://xxxxxxxxxxxx.space.opencsg-stg.com/v1/tts"
headers = {
'Content-Type': 'application/json'
}
data = {"format":"wav","temperature":0.8,"top_p":0.8,"reference_id":"musk"}
response = requests.post(url=url, json=data, headers=headers, stream=True)
response.raise_for_status()
if response.status_code == 200:
for line in response.iter_lines():
if line:
try:
decoded_line = re.sub(r'^data:', '', line.decode('utf-8'))
data = json.loads(decoded_line)
if ("choices" in data) and data['choices'][0]['delta'] and ("content" in data['choices'][0]['delta']):
print(data['choices'][0]['delta'])
except json.JSONDecodeError:
pass