# Iroha-TTS-V1：日本語の感情表現をコントロールする音声合成

**日本語のセリフを、どう話すか。感情とその強さ、途中での気持ちの変化、笑いやため息、ささやき、名前の読み方まで。用意した参照音声の声で、表現を指定できます。**

Iroha Studios · 2026年10月31日

[Hugging Face](https://huggingface.co/IrohaStudio/Iroha-TTS) · [全音声サンプル](https://claude.ai/artifact/EnAFVuqrC4E6QA7BSVY7dg) · [デモ映像](#demos) · [音声を聴く](#listen) · [技術ノート](/blog/research/ja/)

---

## このバージョンに含まれるもの

Iroha-TTS-V1 は、日本語のキャラクター対話に向けた感情音声合成モデルです。[Fish Audio S2-Pro](https://huggingface.co/fishaudio/s2-pro) をベースに調整しました。**モデルの重みと、実行可能な推論コード**をまとめています。リポジトリへのアクセス権を取得してダウンロードすれば、NVIDIA GPU 1枚で動作し、私たちの推論サーバーには依存しません。

ひとつの重みで、7つの制御を使えます。

| | 制御 | 使い方 |
|---|---|---|
| 01 | セリフ全体の感情 | `joy` / `anger` / `sadness` / `surprise` |
| 02 | 感情の強さ | 4段階のプリセット、または対応範囲内の数値。実験機能です |
| 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/ja/#listen)は、このサイトでログインせずに聴けます。

---

## 取り組みたかったこと

日本語 TTS は、すでにかなり自然に文章を読めます。それでも、キャラクターの会話や音声ドラマ、音声エージェントを作るときには、「どう演じてほしいか」を伝える作業に時間がかかります。

同じセリフを喜んで話す。ため息を挟む。途中から落胆した声に変わる。耳元でささやく。登場人物の名前を、台本どおりの読み方で発音する。こうした表現を得るために、何度も生成し直したり、音声を切り貼りしたりすることがあります。

Iroha では、**表現の指定を入力に含める**ことにしました。テキストのタグや API のパラメーターで伝えれば、音響的な細部を一つずつ手作業で組み立てる必要がありません。

今回集中したのは、日本語のセリフの表現を制御することです。すべての言語・用途で優れた汎用 TTS を実証したものではありません。

---

## 評価でわかったこと

自動評価と、日本語話者によるブラインド聴取評価を行いました。自動評価は2026年10月29日の技術報告、聴取評価は10月30日時点の集計に基づきます。

### 自動評価

評価パネルは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 の学習に含まれ、データ重複の監査も限定的です。各システムで1つの設定を選んでおり、バックエンド・インターフェース・学習予算は異なります。感情タグなしの 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。

この同条件の比較では、感情タグへの追従が改善しても、文字誤り率は増えていません。

### 主観聴取テスト MOS（日本語）

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>3項目はいずれも人による5段階評価（MOS）で、総合点は3項目の単純平均です。首位獲得率は「参加者・文」の組み合わせごとに5モデルを比較し、同点首位の場合は均等に配分します。</small>

#### ペアごとの勝率

総合点で比較した Ours の勝率です。同点は0.5勝として数えます。

| 比較 | 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%** |

### その他の制御とベンチマーク

- **日本語ベンチマーク：** CV3-Eval の CER は4.80%（同じ環境で再実行したオリジナルは5.30%）。MiniMax 日本語セットでは CER 3.33%、話者類似度 0.745 でした。
- **ため息：** イベント認識器が60要求中56件を検出しました（93.3%）。
- **笑い声：** 外部のイベント判定器が、評価可能な59クリップ中44件を検出しました（74.6%）。
- **ささやき：** 同条件の60要求で、推論時の guidance により検出数が4件から32件に増えました。
- **かなの読み方：** 22語 × 2通りの読み × 6音色、計264音声で評価しました。指定した読みの正解率は39.4%から **94.7%** に、同じ語の両方の読みが成功した割合は2.3%から81.1%になりました。

---

## こんな制作に

- **キャラクターの会話や音声作品：** 同じ参照音声を使い、台本に合わせて各セリフの感情や笑い、ため息を指定する。
- **音声エージェントやインタラクティブな物語：** 文脈に応じて、返答の口調や感情の強さを変える。
- **ゲームや同人制作：** 自分の参照音声で、キャラクターの試聴、セリフの確認、仮音声を作る。
- **表現制御の研究：** 共通の重みで、タグへの追従、感情の強さ、発声イベントの位置を調べる。比較条件は技術ノートに記載しています。

---

## 使い始める

**環境：** Linux・Python 3.12・NVIDIA GPU。空き VRAM は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` もあります。パラメーターの組み合わせ、バッチ実行、トラブルへの対処をまとめています。

**提供範囲について：** モデルの重みと推論コードが対象で、学習データと学習パイプラインは含みません。重みには **Fish Audio Research License**（Copyright © 39 AI, INC.）が適用されます。研究・非商用利用はその条件に従い、**商用利用には Fish Audio から別途ライセンスを取得する必要があります**（business@fish.audio）。私たちが新たに書いた推論コード（`emotts/`、`infer.py`）は MIT ライセンスでも提供しています。詳しい条件はリポジトリのライセンスファイルをご確認ください。

実装や詳しい評価は[技術ノート](/blog/research/ja/)にまとめています。

---

## これから

- 感情タグと発声イベントタグを増やす。
- より多くのタグの組み合わせで、感情の強さを調整できるようにする。
- 同じ学習方法を用いた Qwen3-TTS、Ming-3.0-TTS、OmniVoice 版を提供する。
- 異なるモデルを配置できる WebUI を作る。
- 聴取評価を広げ、人の評価と自動指標の一致をさらに分析する。

Iroha で何かを作ったときや、困ったことがあれば、**ake.speechai@gmail.com** までお知らせください。
