一、概述

Fish Speech是开源的语言合成模型 Fish Audio 情绪控制是其 TTS(文本转语音)模型的核心差异化能力,通过文本行内标记语法实现对合成语音的情感、语气、韵律及副语言特征的精准控制,无需复杂的 SSML 配置。不同代际的模型采用了完全不同的控制机制:新一代 S2-Pro 支持无限制的自然语言描述,而经典 S1 模型提供了标准化的固定标签集,可满足从简单播报到沉浸式有声书等各类场景的情感表达需求。

Fish Audio插图

二、模型情绪控制能力对比

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,你太搞笑了!"
"唉,今天又加班了。"

六、使用最佳实践

  1. 标签组合使用:可以将多个标签组合在一起,创造出更丰富的表达效果。例如:(nervous laughing)[softly, with a smile]
  2. 避免过度使用:不要在短文本中插入过多标签,否则会导致语音表达不自然。通常每句话使用 1-2 个标签即可。
  3. 位置优化:对于 S2-Pro,将标签放在需要改变情绪的词语之前;对于 S1,建议将标签放在句首以获得最佳效果。
  4. 多轮测试:不同的标签组合可能会产生不同的效果,建议多尝试几种表达方式,找到最符合你需求的那一种。
  5. 语言匹配:在多语言场景中,使用与文本内容相同语言的情绪标签,可以提高模型识别的准确率。

七、注意事项

  1. 语法严格性:S2-Pro 必须使用英文方括号 [],S1 必须使用英文圆括号 (),中文括号将被视为普通文本。
  2. 模型兼容性:不要在 S2-Pro 中使用 () 语法,也不要在 S1 中使用 [] 语法,否则控制指令将不会生效。
  3. 语言支持:S1 模型仅支持文档中列出的 13 种语言,在其他语言上使用情绪标签可能会导致不可预测的结果。
  4. 开源特性:S2-Pro 是完全开源的模型,你可以在本地部署并根据自己的需求进一步微调其情绪控制能力。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。