• #ElevenLabs
  • #TTS
  • #音声合成
  • #VOICEVOX
  • #Google Cloud TTS
  • #Audio Tags
  • #日本語TTS
開発eurekapu-nuxt4メモ

ElevenLabs v3で日本語TTS -- サービス比較から本番生成まで

前日にVOICEVOXとGoogle Cloud TTSで音声を量産したが、もう一段自然な読み上げを探して、ElevenLabs v3のAPIを叩いた。6つのボイスでテストテキストを生成し、Audio Tagsで感情を揺らし、聞き比べページを立てて3サービスを並べた。最後にChapter 04の全59行を本番生成して、3,458文字をElevenLabsに流し込んだ。

日本語TTS 4サービス比較(2026年3月時点)

学習コンテンツのナレーション音声を探す中で、4つのサービスを横並びで調べた。

サービス特徴日本語品質コスト感
OpenAI TTSAPIがシンプル、低遅延やや機械的安い
Google Cloud TTS (Chirp 3 HD)ボイス豊富、ADC認証自然だがやや硬い従量課金
ElevenLabs v3感情制御(Audio Tags)対応最も自然Free: 10,000文字/月
VOICEVOXローカル動作、無料キャラ声寄り無料

Google Cloud TTSは前日にChirp 3 HDで55行を生成済み。品質は十分だったが、ElevenLabsのデモ音声を聴いた瞬間、イントネーションの自然さが一段違うのが耳で分かった。

ElevenLabsの料金体系

  • Free: 10,000文字/月(検証には十分)
  • Starter: $5/月で30,000文字/月
  • Creator以上: 100,000文字〜、商用利用向け

無料枠で一通り試し、本番生成まで含めてStarter以内に収まるか見積もる方針にした。

APIスクリプトの作成と6ボイステスト

ElevenLabs APIのキーを取得し、.envに保存した。APIキーの権限はデフォルトの最小構成から始め、後からボイス検索とクレジット残高確認のためにスコープを追加した。

6つのボイスを選び、同一テキストで音声を生成した。ボイスIDを切り替えながらAPIを叩くスクリプトを書いて、6ファイルを一括生成。生成された音声を順に再生して、トーンの違いを確認した。

# 生成パターン(イメージ)
voices = ["voice_A", "voice_B", ..., "voice_F"]
for voice in voices:
    generate(text=test_text, voice_id=voice, model="eleven_multilingual_v3")

Audio Tagsによる感情制御テスト

ElevenLabs v3の目玉機能であるAudio Tagsを試した。テキスト中に [gentle][serious][sad] などのタグを挿入すると、その区間の読み上げトーンが変化する。

テスト内容:

  • タグなしの素の読み上げと、[gentle] 付きの読み上げを並べて比較
  • [serious] で語りのテンポが落ち、声のトーンが低くなることを確認
  • [sad] で声量が抑えられ、間が長くなる変化を確認

感情タグを入れると抑揚が変わり、教材の場面ごとにトーンを使い分けられる。ただし、タグを入れすぎると読み上げが不自然にぶつ切りになるため、チャプターの切れ目や感情が動く台詞に絞って使う方針にした。

聞き比べページの構築(/admin/voice-compare)

3サービスの音声を横に並べて比較できるページを作った。

構成:

  • ElevenLabs: v3モデルで生成した音声
  • VOICEVOX: ローカルAPIで生成済みの音声
  • Google Cloud TTS: Chirp 3 HDで生成済みの音声

同一テキストの音声を3つ並べて、再生ボタンを押すだけで切り替えられるUIにした。チームメンバーや自分自身が耳で判断するための比較ツールとして機能する。

Chapter 04 本番音声生成

聞き比べの結果、ElevenLabsを本番音声に採用すると決めた。Chapter 04(全59行)をElevenLabsで生成した。

  • 入力: 59行の台詞テキスト
  • 消費文字数: 3,458文字
  • モデル: eleven_multilingual_v3

59行分の音声ファイルが揃い、既存のNarrationViewerにそのまま差し込める状態になった。

全体コスト見積もり

Chapter 04の3,458文字を基準に、セクション1全体の文字数を概算した。Free枠の10,000文字では足りないが、Starter(30,000文字/月)であれば収まる見通しが立った。$5/月の投資で全チャプターの音声を生成できる計算になる。

APIキーの管理

  • .env ファイルにAPIキーを保存し、.gitignoreで除外
  • 権限は最小限からスタートし、必要に応じてスコープを追加
    • 初期: 音声生成のみ
    • 追加: ボイス一覧検索、クレジット残高確認
  • 不要になった権限は都度削除する運用

振り返り

4サービスを並べて聴き比べた結果、ElevenLabs v3が頭一つ抜けていた。Google Cloud TTSのChirp 3 HDも十分な品質だったが、ElevenLabsはイントネーションの滑らかさと、Audio Tagsで感情を制御できる点が決め手になった。

前日にVOICEVOXで181台詞を生成し、Google Cloud TTSで55行を差し替え、今日ElevenLabsで59行を本番生成した。3日間で3つのTTSエンジンを順に試して、品質の階段を1段ずつ上った形になる。次はChapter 04以外のチャプターもElevenLabsに差し替えていく。