# Iroha-TTS-V1：可控的日语情感语音合成

**Iroha-TTS-V1 让你决定一句日语台词该怎么说：选择情绪、调节力度、在句中转折、指定笑声与叹息的位置、切换耳语、标注名字的读音，并使用你提供的参考音色。**

Iroha Studios ｜ 2026 年 10 月 31 日

[HF 主页](https://huggingface.co/IrohaStudio/Iroha-TTS) · [完整试听](https://claude.ai/artifact/EnAFVuqrC4E6QA7BSVY7dg) · [演示视频](#demos) · [试听示例](#listen) · [完整技术笔记](/blog/research/zh/)

---

## 这次发布了什么

Iroha-TTS-V1 是一个面向日语角色对白的情感语音合成模型，基于 [Fish Audio S2-Pro](https://huggingface.co/fishaudio/s2-pro) 适配而来。这份版本包含**模型权重与可直接运行的推理代码**，取得仓库访问权限并下载后，可以在一张 NVIDIA 显卡上运行，不依赖我们提供推理服务。

它提供七种控制，共用同一套权重：

| | 控制 | 怎么用 |
|---|---|---|
| 01 | 整句情感 | `joy` / `anger` / `sadness` / `surprise` 四类 |
| 02 | 情感力度 | 四档预设，也接受范围内的浮点数（实验功能） |
| 03 | 句中情感转折 | `[happy]やっと会えた。[sad]でも、もうお別れだね。` 一次生成整句 |
| 04 | 音色克隆 | 一段短参考录音 + 对应转写 |
| 05 | 笑 / 叹气 / 哭 | `[laugh]` `[sigh]` `[cry]` 放在你想要的位置 |
| 06 | 耳语 | `[whisper]ここだけの話だよ。` |
| 07 | 假名读音 | `水神[みずかみ]`，人名、生僻词、多音字由你指定 |

模型权重与代码托管于 [IrohaStudio/Iroha-TTS](https://huggingface.co/IrohaStudio/Iroha-TTS)。截至 2026-10-31，模型仓库与在线 Space 的匿名访问仍受限，下载需要相应的 Hugging Face 访问权限。无需登录的[试听示例](#listen)与[全部 20 段声音演示](/blog/research/zh/#listen)已在本站提供。

---

## 我们想解决的问题

现在的日语 TTS 已经能把文字读得相当自然。但在角色对白、有声剧、语音 agent 这些场景里，真正花时间的往往不是"读对"，而是"读成想要的那样"：

同一句台词，要高兴地说、要带着一声叹息说、要在句子中间从欣喜转成失落、要在耳边轻声说、要把人物名字读成剧本里规定的那个读音。大多数时候，这些只能靠反复重采样碰运气，或者把音频切开拼接。

Iroha 的选择是：**把这些表达变成输入的一部分**。文本里写一个标签，或者在接口里传一个参数，模型就按它生成——而不是让你去手工构造每一处声学细节。

这也是我们给自己定的范围。我们没有去做一个在所有语言、所有任务上都更强的通用 TTS，而是把精力集中在"日语对白的表达可控性"这一个维度上，并把它做到可以交付的程度。

---

## 实验结果

### 客观指标

评测面板是 6 个说话人 × 20 条评测文本 × 4 种情感，共 480 条输出，每个系统的请求 ID、文本、情感和参考音频完全一致。情感命中由 EmoRuler（我们微调的情感分类器）判定，并用公开的 emotion2vec+ 做交叉核对；CER 用 Qwen3-ASR，音色相似度用 WavLM + ECAPA，UTMOS 为自动音质预测。

| 系统 | 情感命中<br>(emotion2vec+) | 情感命中<br>(EmoRuler) | CER | 音色相似度 | UTMOS |
|---|---|---|---|---|---|
| **Iroha-TTS-V1** | **82.1%** | **89.0%** | **5.6%** | 0.645 | **3.58** |
| Fish S2-Pro 原版 | 17.9% | 6.0% | 5.6% | 0.685 | 3.51 |
| Fish Audio Drama 3 | 32.1% | 21.2% | 7.0% | 0.628 | 3.26 |
| IndexTTS-2.5（情感向量 0.8） | 40.2% | 30.6% | 6.9% | 0.612 | 2.26 |
| Irodori-TTS v4-Large（文本描述） | 30.8% | 20.6% | 6.0% | 0.649 | 3.03 |

<small>该开发面板反复用于模型选择，并非独立测试集。6 个评测音色中有 4 个进入过 EmoRuler 训练，数据重叠审计仍有限。各系统保留一个选定配置；后端、接口与训练预算不同，因此这是配置之间的比较。不带情感标签时，Iroha 的 CER 为 5.0%、音色相似度 0.685、UTMOS 3.63。</small>

最能说明适配效果的是一组**严格配对**的对比：同一个推理引擎、同一批输入、同一组参考编码、同一批随机种子，只替换权重。

- 情感命中（EmoRuler）：6.04% → **89.17%**，提升 83.13 个百分点（95% 区间 79.79–86.25）
- 情感命中（公开 emotion2vec+ 判定）：17.92% → **83.54%**
- 字错率：基本不变（−0.01 个百分点）
- 自动音质 UTMOS：+0.06

换句话说，模型学会按标签表达，并没有以读错字为代价。

<h4 id="other-results">其它几项</h4>

- **日语基准**：CV3-Eval 字错率 4.80%（原版同环境重跑为 5.30%）；MiniMax 日语集字错率 3.33%、音色相似度 0.745。
- **叹息**：60 条请求中 56 条被事件识别器检出（93.3%）。
- **笑声**：外部事件判定器在 59 条可评片段中判中 44 条（74.6%）。
- **耳语**：在 60 条同条件请求上，推理引导把耳语检出从 4 条提升到 32 条。
- **假名读音**：22 个多音字 × 两种读音 × 6 个音色共 264 条输出，指定读音的正确率从 39.4% 提升到 **94.7%**；同一个词的两种读音都成功的比例从 2.3% 提升到 81.1%。

### 主观指标

我们挑了 15 组 × 5 种情感 = 75 句，每人听 75 句。

| 模型 | 自然度 ↑ | 情感匹配 ↑ | 音色相似度 ↑ | 综合分 ↑ | 胜出占比 ↑ |
|---|---|---|---|---|---|
| Ours | 3.84 | **4.20** | 3.52 | **3.85** | **31.7%** |
| Fish Audio Drama 3 | **3.97** | 3.64 | 3.45 | 3.69 | 23.2% |
| Irodori-TTS v4 large · 文字描述 | 3.61 | 3.95 | 3.32 | 3.63 | 28.1% |
| Fish S2 Pro 原版 | 3.75 | 2.93 | **3.72** | 3.47 | 12.1% |
| IndexTTS-2.5 | 2.35 | 3.49 | 2.81 | 2.88 | 4.9% |

<small>三个维度都是人工五分制打分（MOS），综合分是三项的不加权平均。胜出占比：对每个「听者-句子」组合比较五个模型，并列第一时平分。</small>

#### 两两胜率

Ours 的两两胜率，按综合评分计算，打平算半场胜：

| 对比 | Ours 胜率 ↑ |
|---|---|
| vs. Fish S2 Pro 原版 | **69.3%** |
| vs. Fish Audio Drama 3 | **58.0%** |
| vs. Irodori-TTS v4 large · 文字描述 | **58.7%** |
| vs. IndexTTS-2.5 | **82.7%** |


---

## 可以用它做什么

我们预期它在这些地方最有用：

- **角色对白与有声内容**：同一个音色，按剧本把每句台词演绎成需要的情绪，笑和叹息落在该落的位置。
- **语音 agent 与互动叙事**：同一句回复，按上下文选择语气与力度，而不是只有一种念法。
- **游戏与同人创作**：用自己的参考音色做角色试音、台词预演、临时配音。
- **表达可控性研究**：七种控制共用一套权重，可以用来研究标签遵循、情感强度、副语言事件定位这些问题；我们也在技术报告里写清了评测口径，方便对齐比较。

---

## 开始使用

**环境**：Linux · Python 3.12 · NVIDIA GPU，建议 28 GB 以上可用显存。首次运行会自动下载约 11 GB 的 Fish S2-Pro 底座。

```bash
python3.12 -m venv .venv && source .venv/bin/activate
pip install -U huggingface_hub
hf auth login  # 使用已取得模型仓库访问权限的账号
hf download IrohaStudio/Iroha-TTS --local-dir Iroha-TTS
cd Iroha-TTS && pip install -r requirements.txt

python infer.py \
  --text "やっと会えたね！ずっと待ってたんだよ。" \
  --emotion joy --intensity -0.015 --seed 7 \
  --ref my_voice.wav --ref-text "参考音声の書き起こし" \
  --out joy.wav
```

把 `my_voice.wav` 和参考文本换成你自己的录音与准确转写，输出为 44.1 kHz WAV。换一个 `--seed` 就能得到另一种演绎。

仓库里附了一份面向 coding agent 的 `AGENT_GUIDE.md`——如果你让 agent 帮你接入，把这个文件给它读，参数组合、批量调用和排错都在里面。

**关于开放范围**：本次发布的是**模型权重与推理代码**，不包含训练数据与训练流程。权重遵循 **Fish Audio Research License**（Copyright © 39 AI, INC.），研究与非商业使用须遵守该许可证条款；**商业用途需向 Fish Audio 另行取得许可**（business@fish.audio）。我们新写的推理代码（`emotts/`、`infer.py`）同时以 MIT 许可证提供。

想了解实现思路和完整评测，可以读我们的[完整技术笔记](/blog/research/zh/)。

---

## 接下来

- 支持更多情感标签与副语言标签。
- 让情感力度在所有标签场景下都能调节。
- 发布采用同一套训练方法的 Qwen3-TTS、Ming-3.0-TTS 与 OmniVoice 版本。
- 提供可以部署不同模型的 WebUI。
- 继续扩大听测规模，并公布听者评分与自动指标的一致性分析。

如果你用它做出了有意思的东西，或者遇到问题，欢迎告诉我们：**ake.speechai@gmail.com**。

---
