一、概述
Fish Speech是开源的语言合成模型 Fish Audio 情绪控制是其 TTS(文本转语音)模型的核心差异化能力,通过文本行内标记语法实现对合成语音的情感、语气、韵律及副语言特征的精准控制,无需复杂的 SSML 配置。不同代际的模型采用了完全不同的控制机制:新一代 S2-Pro 支持无限制的自然语言描述,而经典 S1 模型提供了标准化的固定标签集,可满足从简单播报到沉浸式有声书等各类场景的情感表达需求。
二、模型情绪控制能力对比
Fish Speech 两款主流模型在情绪控制机制、灵活性和覆盖范围上有显著差异,官方推荐所有新项目使用 S2-Pro 以获得最佳体验。
| 对比维度 | S2-Pro(推荐) | S1(兼容) |
|---|---|---|
| 控制语法 | [自然语言描述] |
(固定标签) |
| 标签限制 | 无固定集合,支持任意描述 | 预定义 64+ 种标签 |
| 控制原理 | 将标签视为标准文本,通过大规模训练学习声学映射 | 专用控制令牌,严格匹配预定义标签 |
| 支持语言 | 80+ 种语言,自动语言检测 | 仅支持 13 种主流语言 |
| 标签位置 | 可嵌入文本任意位置,实现词级细粒度控制 | 通常置于句首或段落开头 |
| 组合能力 | 支持任意复杂描述的组合 | 支持多个固定标签的组合 |
三、支持语言说明
Fish Audio 不同代际的 TTS 模型在语言支持范围上存在显著差异,情绪控制能力与语言支持深度紧密相关。
S2-Pro
S2-Pro 支持 80+ 种语言,具备全自动语言检测能力,无需在请求中额外指定语言参数。只需直接输入目标语言的文本,模型即可自动识别并生成对应语言的语音,同时完整支持该语言下的行内情绪与副语言提示控制。
S1
S1 模型仅支持 13 种主流语言,并在这些语言上提供完整的情绪表达能力。支持的语言列表如下:
English, Chinese, Japanese, German,
French, Spanish, Korean, Arabic,
Russian, Dutch, Italian, Polish, Portuguese
四、S2-Pro 自然语言情绪控制(核心)
1. 工作原理
S2-Pro 采用了革命性的自然语言控制技术,它不将 [] 包裹的内容视为专用控制令牌,而是当作普通文本的一部分。通过在海量多模态数据集上的训练,模型学习到了自然语言描述与声学特征(音调、语速、音量、音色变化)之间的隐式映射关系。这意味着你可以使用任何你能想到的描述性表达,模型都会尝试理解并转化为相应的语音表现。
2. 基本语法
[任意描述性文本] 待控制的文本内容
标签可以放置在文本的任意位置,其效果将作用于标签之后的内容,直到遇到下一个标签为止。这种设计允许你在一句话中无缝切换多种情绪和语气。
3. 常用示例标签
虽然 S2-Pro 支持无限描述,但以下是经过验证的常用基础标签,可满足大多数场景需求:
[whisper] [laugh] [emphasis] [sigh] [gasp] [pause]
[angry] [excited] [sad] [surprised] [inhale] [exhale]
4. 高级用法示例
你可以使用更具体、更复杂的自然语言描述来获得更细腻的表达效果:
[whispers sweetly] 晚安,做个好梦。
[laughing nervously] 我...我不是故意的。
[with a hint of sadness] 时间过得真快啊,转眼就毕业了。
[in a low, serious voice] 这件事必须严格保密。
5. 句中嵌入示例
这是 S2-Pro 最强大的特性之一,可以在一句话的中间插入标签,实现精准的情绪转折:
"I can't believe it [gasp] you actually did it [laugh]"
"我简直不敢相信[倒吸一口气]你居然真的做到了[笑]"
五、S1 固定标签情绪控制(兼容)
S1 模型支持 64+ 种预定义的情绪和语气标签,使用 () 语法进行控制。所有标签分为四大类,覆盖了绝大多数常见的情感表达场景。
1. 基本语法
(固定标签名) 待控制的文本内容
2. 完整标签列表
基础情绪(24 种)
表达人类最核心的情感状态:
(angry) (sad) (excited) (surprised) (satisfied) (delighted)
(scared) (worried) (upset) (nervous) (frustrated) (depressed)
(empathetic) (embarrassed) (disgusted) (moved) (proud) (relaxed)
(grateful) (confident) (interested) (curious) (confused) (joyful)
高级情绪(25 种)
表达更复杂、更细腻的情感和态度:
(disdainful) (unhappy) (anxious) (hysterical) (indifferent)
(impatient) (guilty) (scornful) (panicked) (furious) (reluctant)
(keen) (disapproving) (negative) (denying) (astonished) (serious)
(sarcastic) (conciliative) (comforting) (sincere) (sneering)
(hesitating) (yielding) (painful) (awkward) (amused)
语气标记(5 种)
控制说话的整体语气和音量:
(in a hurry tone) (shouting) (screaming) (whispering) (soft tone)
音频效果(10 种)
添加真实的人声呼吸、笑声、哭声等副语言效果:
(laughing) (chuckling) (sobbing) (crying loudly) (sighing)
(panting) (groaning) (crowd laughing) (background laughter) (audience laughing)
3. 自然表达补充
除了使用标签外,你也可以直接在文本中加入自然的拟声词来增强表达效果,例如:
"Ha,ha,ha,你太搞笑了!"
"唉,今天又加班了。"
六、使用最佳实践
- 标签组合使用:可以将多个标签组合在一起,创造出更丰富的表达效果。例如:
(nervous laughing)或[softly, with a smile]。 - 避免过度使用:不要在短文本中插入过多标签,否则会导致语音表达不自然。通常每句话使用 1-2 个标签即可。
- 位置优化:对于 S2-Pro,将标签放在需要改变情绪的词语之前;对于 S1,建议将标签放在句首以获得最佳效果。
- 多轮测试:不同的标签组合可能会产生不同的效果,建议多尝试几种表达方式,找到最符合你需求的那一种。
- 语言匹配:在多语言场景中,使用与文本内容相同语言的情绪标签,可以提高模型识别的准确率。
七、注意事项
- 语法严格性:S2-Pro 必须使用英文方括号
[],S1 必须使用英文圆括号(),中文括号将被视为普通文本。 - 模型兼容性:不要在 S2-Pro 中使用
()语法,也不要在 S1 中使用[]语法,否则控制指令将不会生效。 - 语言支持:S1 模型仅支持文档中列出的 13 种语言,在其他语言上使用情绪标签可能会导致不可预测的结果。
- 开源特性:S2-Pro 是完全开源的模型,你可以在本地部署并根据自己的需求进一步微调其情绪控制能力。


评论(0)