本文へ
IrohaStudios

リリース

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

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

デモ映像

ASMR · バイノーラル 3D3:17

ねえ、耳……貸して?

ヘッドホンで聴く、55 のささやき。声の方向と距離感は、生成後の音声処理で加えています。

動画を別タブで開く
機能紹介 · プレビュー4:06

Iroha-TTS でできること

感情、強さ、笑い声、ささやき、読み方。同じセリフの比較を交えて紹介します。

動画を別タブで開く
作品・音声のクレジット

3D 音声には TH Köln の KU100 近距離 HRIR を使用。ASMR と機能紹介の音声に畳み込み処理を適用しています。HRIR データのライセンス: CC BY-SA 3.0.

この記事の内容

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

Iroha-TTS-V1 は、日本語のキャラクター対話に向けた感情音声合成モデルです。Fish Audio 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 にあります。2026年10月31日時点では、モデルリポジトリとオンライン Space の匿名アクセスは制限されており、ダウンロードには Hugging Face のアクセス権が必要です。下の聴き比べと全20件の音声サンプルは、このサイトでログインせずに聴けます。


取り組みたかったこと

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

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

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

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


同じセリフを、聴き比べる

同じテキスト・同じ参照音声の日本語サンプルです。選んだ実例であり、成功率を示すものではありません。

[happy] あっ、つい話し込んじゃってたわね。

Fish S2-Pro · オリジナル

音声ファイルを開く
全20件のサンプルと実装を読む

評価でわかったこと

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

自動評価

評価パネルは6話者 × 20テキスト × 4感情で、各システム480音声です。要求 ID、テキスト、感情、参照音声をそろえて比較しました。調整した感情分類器 EmoRuler で感情の一致を判定し、公開モデル emotion2vec+ でも確認しています。文字誤り率(CER)は Qwen3-ASR、話者類似度は WavLM + ECAPA、予測音質は UTMOS で測定しました。

システム 感情一致率
(emotion2vec+)
感情一致率
(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

この開発パネルはモデル選択にも繰り返し使っており、独立したテストセットではありません。6音色のうち4音色は EmoRuler の学習に含まれ、データ重複の監査も限定的です。各システムで1つの設定を選んでおり、バックエンド・インターフェース・学習予算は異なります。感情タグなしの Iroha は CER 5.0%、話者類似度 0.685、UTMOS 3.63 でした。

重みの調整による差を確認するため、推論エンジン・入力・参照音声の符号化・乱数シードを固定し、重みだけを替えた対応のある比較も行いました。

  • 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%

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

ペアごとの勝率

総合点で比較した 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 ベースモデルをダウンロードします。

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 ライセンスでも提供しています。詳しい条件はリポジトリのライセンスファイルをご確認ください。

実装や詳しい評価は技術ノートにまとめています。


これから

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

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

Markdown を読む