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 TTS | APIがシンプル、低遅延 | やや機械的 | 安い |
| 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に差し替えていく。