首页 / 文档 / 语音 / 语音合成(TTS)

语音合成(TTS)

让回复开口说话:引擎选择、音色配置、情绪与语速

最小配置

json
{
  "text_to_voice": "edge",
  "tts_voice_id": "zh-CN-XiaoxiaoNeural",
  "voice_reply_voice": true
}
配置项 作用
text_to_voice 合成引擎(见下表)
tts_voice_id 音色 ID(各家命名不同,填错会静默回退到默认音色)
voice_reply_voice 收到语音消息时用语音回复
always_reply_voice 所有回复都用语音(适合陪伴/播报场景,注意成本)
text_to_voice_model 部分引擎需要(如 OpenAI 的 tts-1 / tts-1-hd)

引擎对比

引擎 是否需要 Key 适合场景
edge ❌ 免费 试水、内部演示、预算敏感
ali(阿里云 CosyVoice 等) ✅ 中文音色多、效果自然,国内推荐
minimax ✅ 音色丰富、支持情感参数,中文表现好
openai ✅ 多语种,音色自然
azure ✅ 音色库极大、可控性强(SSML 支持好)
elevenlabs ✅ 英文/克隆音色的天花板
tencent / baidu / xunfei / zhipuai ✅ 国内传统方案,稳定
pytts ❌ 完全离线,音质一般,适合内网无外网环境
custom 自建 接你自己的 TTS 服务(含私有化模型)

同一家厂商的语音 Key 通常在识别与合成间通用(如阿里云), 因此选定一家后,ASR + TTS 一起配,Key 管理最省事。

让音色"像人"的几个要点

  1. 音色要匹配人设:给"专业顾问"配活泼少年音会很出戏。音色与人格设定要一起定。
  2. 文本侧比音色更影响"AI 味":口语化的措辞、短句、语气词,比换更贵的音色更有效。
  3. 语速是角色的属性,不是每次调参的对象。定好一种语速,全站统一。
  4. 情绪(情感标签):部分引擎支持情感参数(如开心/低落/平静)。做法是让模型在正文前输出情绪标签, 后端解析后剥离标签、把情绪传给 TTS——用户听到的是有起伏的声音,而不是念稿。
注意

成本:always_reply_voice 会把每条回复都合成成音频,长回答可能几十秒/条。 计费按字符或时长,先算单价再全量开。多数场景用 voice_reply_voice(来语音才回语音)就够。

排障速查

现象 原因
有文字没声音 引擎 Key 未配 / voice_reply_voice 与 always_reply_voice 都为 false
声音是默认音色 tts_voice_id 填错,引擎静默回退(不报错,很容易漏)
只念了一半 文本里有引擎不支持的字符/表情,或超长文本被截断
通道里没语音 该通道不支持语音消息类型(如部分机器人 API),需改用链接/文件形式

与通道的关系

  • 网页控制台:可直接播放合成音频。
  • 微信 / 企业微信:以语音消息(或文件)形式发送,苹果/安卓均可播放。
  • 飞书 / 钉钉:受各自 API 限制,通常以音频文件或卡片形式呈现。

各通道的限制见通道文档。