Skip to main content
PromptQuorum
ホーム/ローカルLLM活用/Ollamaに最適なTTSエンジン(2026年):ローカルLLMに音声出力を追加する方法
Voice, Speech & Multimodal

Ollamaに最適なTTSエンジン(2026年):ローカルLLMに音声出力を追加する方法

·12分で読める·Hans Kuepper 著 · PromptQuorumの創設者、マルチモデルAIディスパッチツール · PromptQuorum

Ollamaにはテキスト読み上げ機能が組み込まれていません—テキストを生成するだけなので、音声出力を追加するにはそのテキストを別のローカルTTSエンジンに渡す必要があります。 ほとんどのOllama環境では、Piperが最も組み合わせやすい選択肢です。CPUのみで動作し、Raspberry Piでもリアルタイムに動き、すでに稼働しているLLMへのリソース負荷をほとんど増やしません。Kokoroは、Apache-2.0ライセンスの8,200万パラメータという小規模モデルながら、明らかに高い音声品質が欲しい場合に選びます。XTTS v2Chatterboxは、音声クローニングが特に必要で、LLMに加えてGPUを割り当てられる場合にのみ選んでください。

Ollamaはローカルで大規模言語モデルを実行してテキストを返しますが、テキスト読み上げ(TTS)や音声出力の機能は組み込まれていません。ネイティブTTS対応を求める要望(GitHub issue #11021)は本記事執筆時点で未解決のまま、より古い未解決の要望への重複としてクローズされています。Ollamaのモデルに発話させるには、テキスト出力を別のローカルTTSエンジンに渡す必要があります。OllamaのREST APIはJSON形式で応答を返し、コード側でresponseフィールドからテキストを抽出し、その文字列をTTSエンジンのCLIまたはPython APIに渡して音声を合成します。本ガイドでは、この組み合わせに現実的に使えるローカルTTSエンジン—PiperKokoroXTTS v2Coqui TTSBarkChatterbox—を、すでに稼働しているLLMと同じマシンで共存させる際に本当に重要な基準(リソース消費量、レイテンシ、連携のしやすさ、ライセンス)でランキングします。

Ollamaに最適なTTSエンジン(2026年):ローカルLLMに音声出力を追加する方法

重要なポイント

  • Ollamaはテキストしか生成せず、ネイティブTTSの要望(GitHub issue #11021)は本記事執筆時点で未解決です。
  • Piperはリソースコストが最も低い組み合わせです。CPUのみ、Raspberry Piでもリアルタイム、GPL-3.0-or-laterライセンスです。
  • Kokoro(8,200万パラメータ、Apache-2.0)は多少の速度と引き換えに明らかに知覚音質が向上します。
  • XTTS v2とChatterboxはどちらも短い参照クリップから声をクローンしますが、XTTS v2のライセンスは非商用で、Chatterboxは MITライセンスです。
  • Barkは笑い声やため息などの非音声オーディオを追加できますが、GitHubリポジトリは2024年4月5日以降コミットがありません。
  • パイプラインの構造はどのケースでも同じです。OllamaのREST APIがJSON形式のテキストを返し、コード側で抽出し、そのテキストをTTSエンジンのCLIまたはPython APIに渡します。

📍 一文で説明

Ollamaにはテキスト読み上げ機能が組み込まれていないため、音声出力を追加するにはテキスト応答を別のローカルTTSエンジンに渡す必要があります—リソースコストが最も低いPiper、同程度の規模で音質が高いKokoro、音声クローニング向けのXTTS v2やChatterbox、表現力豊かな非音声オーディオのみのBarkです。

💬 簡潔に説明

Ollamaは考えて応答を書く部分で、TTSエンジンはその書かれた応答を発話音声に変換する別のプログラムです。両者は自分で数行のコードをつないで接続する必要があり、両方をこなす単一のボタンは存在しません。

📌補足: 本記事は音声パイプラインのTTS側のみを扱います。入力側の音声認識(Whisper)も加えた完全な構築については、PromptQuorumのローカル音声アシスタントガイドを参照してください。

Ollamaにテキスト読み上げは組み込まれているか?

いいえ—Ollamaにはテキスト読み上げや音声出力の機能は組み込まれていません。 Ollamaは大規模言語モデル向けのローカル実行環境で、モデルを読み込み、ローカルのREST APIとCLIを通じて公開し、テキストを返します。音声を合成せず、TTSモデルも同梱していません。

ネイティブTTS対応を求めるGitHub issue、#11021は、音声生成モデルを直接読み込み、OpenAI互換のPOST /v1/audio/speechエンドポイントを追加することを提案していました。より古い未解決のissue(#5424)への重複としてクローズされました—本記事執筆時点で、Ollamaはネイティブ TTSをリリースしておらず、確定したスケジュールもありません。

そのため、Ollamaを基盤とするあらゆるローカル音声環境—音声アシスタント、LLM出力のオーディオブック読み上げ、アクセシビリティ向けの読み上げツール—は、単一の「Ollama TTSモード」に頼るのではなく、Ollamaを別のTTSエンジンにつなぎます。この用途向けのコミュニティ製連携プロジェクトはすでに存在します。maudoin/ollama-voice(本記事執筆時点で378のGitHubスター)は、文字起こしにWhisper、応答にOllama、出力にpyttsx3(ニューラルTTSモデルではなく、お使いのOSに組み込まれた音声を包むラッパー)を連結しています。このプロジェクトはパターンを示すものであり、pyttsx3の音質そのものを推奨しているわけではありません。本ガイドで比較したどのニューラルエンジンにも音質面で劣ります。

Ollamaの公式なテキスト読み上げ機能はありますか?

いいえ。Ollamaはテキストしか生成しません。ネイティブTTS対応を求めるコミュニティの要望(GitHub issue #11021)は本記事執筆時点で未解決で、より古い未解決の要望への重複としてクローズされています。音声出力にはOllamaのテキスト応答を別のTTSエンジンに渡す必要があります。

Ollamaの出力をローカルTTSエンジンに渡す方法

Ollama+TTSのパイプラインはすべて同じ4つのステップをたどります。Ollamaにテキストを要求し、そのテキストをJSON応答から抽出し、TTSエンジンに渡し、得られた音声を再生または保存します。 OllamaとどのTTSエンジンとの間にも公式な連携はなく、これは自分で書く連携コードであり、通常は20行未満です。

  • Ollamaのテキスト出力がその後どう扱われるかについて、OllamaのAPIは関知しません。 OllamaをTTSエンジンに接続するコールバック、Webhook、プラグインの仕組みは存在せず、両者をつなぐのはあなたのコードだけです。
  • ストリーミングモード("stream": true)は、トークンを生成しながら返すことで知覚レイテンシを下げます。 モデルが応答全体を完了する前に最初の文の音声合成を始められるため、対話型音声アシスタントに有用ですが、上記の非ストリーミング例より実装が複雑になります。
  1. 1
    Ollamaを起動しモデルを取得する
    Why it matters: REST API経由のリクエストに応答できるようになる前に、Ollamaがすでに稼働している(`ollama serve`、またはデスクトップアプリ)必要があり、少なくとも1つのモデルが取得済み(`ollama pull llama3.1`)である必要があります。
  2. 2
    OllamaのREST APIにプロンプトを送信する
    Why it matters: `"stream": false`を付けて`http://localhost:11434/api/generate`にPOSTリクエストを送ると、完全な応答を`response`フィールドに含む単一のJSONオブジェクトが返ります。TTSパイプラインで解析するには最も単純ですが、最初の音声までの時間を短縮するストリーミングモードも利用できます。
  3. 3
    テキストを抽出しTTSエンジンに渡す
    Why it matters: `response`文字列はプレーンテキストです。標準入力経由でTTSエンジンのCLI(Piper)、またはそのPython API(Kokoro、XTTS v2、Chatterbox、Bark、Coqui TTSツールキット)に直接渡します。
  4. 4
    得られた音声を再生または保存する
    Why it matters: ほとんどのTTSのCLIとAPIは`.wav`ファイルを直接書き出します。ライブ再生には、生の音声を`aplay`(Linux)のようなプレーヤーに渡すか、Pythonのオーディオライブラリを使用します。
bash
# 1. Ollamaにテキスト応答を要求する(簡略化のためストリーミングなし)
RESPONSE=$(curl -s http://localhost:11434/api/generate -d '{
  "model": "llama3.1",
  "prompt": "Explain quantum entanglement in two sentences.",
  "stream": false
}' | python3 -c "import sys, json; print(json.load(sys.stdin)['response'])")

# 2. そのテキストをPiperのCLIに渡して音声を合成する(リソースコストが最も低い選択肢)
echo "$RESPONSE" | piper --model en_US-lessac-medium --output_file response.wav

# --- Pythonでの同等の例、Piperの代わりにKokoroを使用 ---
import json
import requests
import soundfile as sf
from kokoro_onnx import Kokoro

reply = requests.post(
    "http://localhost:11434/api/generate",
    json={"model": "llama3.1", "prompt": "Explain quantum entanglement in two sentences.", "stream": False},
).json()["response"]

kokoro = Kokoro("kokoro-v1.0.onnx", "voices-v1.0.bin")
samples, sample_rate = kokoro.create(reply, voice="af_heart")
sf.write("response.wav", samples, sample_rate)

Ollamaと最も相性の良いTTSエンジンは?

Piperは、すでにCPUまたはGPUメモリを使用しているLLMのそばでリソース競合が最も少ないため、ほとんどのOllama組み合わせに最適です。 下の表は、生の音質だけでなく、リソース消費量、レイテンシ、連携に必要なコード量、ライセンスという、Ollamaとマシンを共有する適性を基準に各候補を評価しています。

Piper

ライセンス:
GPL-3.0-or-later
リソース消費量:
CPUのみ、非常に軽量
レイテンシ:
Raspberry Piでもリアルタイム
連携のしやすさ:
CLI呼び出し1回、標準入力でテキスト

Kokoro

ライセンス:
Apache-2.0
リソース消費量:
CPU対応、軽量(8,200万パラメータ)
レイテンシ:
高速、GPUエンジンとの公開比較値なし
連携のしやすさ:
Python API(kokoro-onnx)、数行で済む

XTTS v2

ライセンス:
CPML(非商用)
リソース消費量:
重い、GPU推奨
レイテンシ:
Coqui資料によればGPUで200ms未満のストリーミング
連携のしやすさ:
Python API、設定がやや多い(ライセンス承諾)

Coqui TTSツールキット

ライセンス:
MPL-2.0(ツールキットのみ)
リソース消費量:
読み込むモデルによって変動
レイテンシ:
読み込むモデルによって変動
連携のしやすさ:
複数モデルを1つのPython APIで

Bark

ライセンス:
MIT
リソース消費量:
重い、GPU推奨、CPUでは低速
レイテンシ:
リアルタイムストリーミング向けではない
連携のしやすさ:
Python API、シンプルだが低速

Chatterbox

ライセンス:
MIT
リソース消費量:
中程度、リアルタイムはGPU推奨
レイテンシ:
リアルタイムの公開仕様は未確認
連携のしやすさ:
Python API(chatterbox-tts pipパッケージ)

Ollamaと並行して最もリソース消費が少ないTTSエンジンは?

Piperです。CPUのみで動作し、Raspberry Piでもリアルタイムに動き、Ollamaのモデルと GPUメモリを共有する必要がありません—この比較の中でリソースコストが最も低い選択肢です。

誰がどのエンジンを使うべきか

単独での生の音質の高さだけでなく、ハードウェアと音声要件に合わせてエンジンを選びましょう。

  • 🏆 Ollama組み合わせの総合最適解:Piper —リソースコストが最も低く、CPUでリアルタイムに動作し、シェルスクリプトやPythonのサブプロセス呼び出しに最も簡単に組み込めます。
  • 同程度の規模でより高い音質が欲しい場合の最適解:Kokoro — GPUなしでも動くほど小規模でありながら、自社のリリース時ベンチマークによればPiperより明らかに知覚音質が優れています。
  • 商用利用が許可された音声クローニングの最適解:Chatterbox — MITライセンスで、約5秒の参照音声から声をクローンし、リアルタイム利用にはOllamaに加えてGPUが必要です。
  • 非商用または研究用途の音声クローニングの最適解:XTTS v2 — 6秒の音声から17言語にわたって声をクローンしますが、CPMLライセンスにより別途契約なしでは商用利用ができません。詳細はPromptQuorumのXTTS v2ライセンス解説を参照してください。
  • 主要な声としてではなく、表現力豊かな非音声オーディオの最適解:Bark — テキストプロンプトだけで笑い声やため息、簡単な環境音を生成できますが、リポジトリは2024年4月5日以降コミットがなく、保守されたプロダクションパイプラインに依存すべきではありません。
  • 🧭 Raspberry PiなどのCPUのみのハードウェアで、小型モデルのOllamaを動かしている場合 → Piper。本ガイドの他のどのエンジンも、GPUなしでのリアルタイム動作は確認されていません。
  • 🧭 Ollamaに加えて空きGPUのあるデスクトップやサーバーで、クローンした声が欲しく、商用権が必要な場合 → Chatterbox。
  • 🧭 空きGPUのあるデスクトップやサーバーで、研究または個人プロジェクトであり、最高のクローン品質が欲しい場合 → XTTS v2。
  • 🧭 (XTTS v2を含め)複数の異なるモデルを随時読み込める単一のツールキットが欲しい場合 → モデルごとに依存関係を個別にインストールする代わりにCoqui TTSツールキット

これらを使うべきでない場面

Ollamaと組み合わせるローカルTTSは、あらゆる音声出力ニーズに適した方法ではありません—状況によってはクラウドAPIやまったく別のツールが必要です。

  • すぐに使える、洗練され感情豊かな声を何十種類も必要とする場合ElevenLabsのような管理型クラウドAPIは、本ガイドのどのモデルよりも幅広い厳選された音声ライブラリと表現力の高い制御を提供します。トレードオフについてはPromptQuorumのElevenLabsとローカルTTSの比較を参照してください。
  • すでにOllamaが使用している分を超えてRAMやVRAMに余裕がないハードウェアの場合 — XTTS v2やBarkのようなGPUを大量に必要とするTTSエンジンを、控えめなGPU上でOllamaと同時に動かすと両方とも不足しかねません。PiperやKokoroに切り替えるか、TTSを別のマシンに移してください。
  • 商用製品として出荷する必要があり、ライセンスを独自に確認していない場合 — XTTS v2のCPMLは明確に非商用であり、その背後にある企業Coqui AIは2023年12月に有料ライセンスサービスを停止しました。有料製品にこれらのエンジンのいずれかを出荷する前に、自分でライセンス条件を確認してください。
  • 実在する人物の声を本人の同意なくクローンする場合 — これはどのエンジンのライセンスとも独立した同意と成りすましの問題を引き起こし、個人利用・商用利用の双方に当てはまります。

よくある質問

Ollamaにテキスト読み上げは組み込まれていますか?

いいえ。Ollamaはテキストしか生成せず、ネイティブな音声出力はありません。ネイティブTTSを求めるGitHubの機能要望(issue #11021)は本記事執筆時点で未解決です。音声出力にはOllamaのテキスト応答を別のローカルTTSエンジンに渡す必要があります。

Ollamaと組み合わせるのに最適なTTSエンジンは?

ほとんどの環境ではPiperです。CPUのみで動作し、GPL-3.0-or-laterライセンスで、Raspberry Piでもリアルタイムに動くため、OllamaとGPUメモリを奪い合いません。同程度のリソース消費でより高い知覚音質を求めるならKokoro、音声クローニングが特に必要ならXTTS v2かChatterboxを選んでください。

Ollamaの出力をTTSエンジンにどう渡しますか?

"stream": falseを付けてOllamaのREST API(http://localhost:11434/api/generate)にPOSTリクエストを送り、返されたJSONからresponseフィールドを抽出し、そのテキストを選んだTTSエンジンのCLI(Piperは標準入力でテキストを受け付けます)またはPython API(Kokoro、XTTS v2、Chatterbox、Bark、Coqui TTSツールキットはいずれも公開しています)に渡します。動作するコマンドは上のパイプライン解説を参照してください。

Ollamaと並行してTTSエンジンを実行するにはGPUが必要ですか?

必ずしも必要ではありません。PiperとKokoroはどちらもCPU対応でGPUを必要としません。XTTS v2、Bark、Chatterboxはいずれもリアルタイム性能のためにGPUの恩恵を受けるか必要とし、GPUが1枚のマシンではOllamaとGPUメモリを奪い合うことになります。

Ollamaベースの製品でXTTS v2を商用利用できますか?

別途契約なしでは不可能です。XTTS v2はCoqui Public Model License(CPML)の下でライセンスされており、非商用です。これを公開した企業Coqui AIは2023年12月に有料サービスを停止しており、PromptQuorumは現在アクティブな商用ライセンス経路が存在することを確認できませんでした。有料製品を出荷する前に、XTTS v2ライセンス解説の全文を参照してください。

Ollamaを動かすRaspberry Pi音声アシスタントにはどのTTSエンジンを使うべきですか?

Piperです。Raspberry PiのようなCPUのみのハードウェアでリアルタイムに動作することが確認されている、この比較で唯一のエンジンであり、それはPiがOllamaを同時に実行または通信する際にまさに課せられる制約です。

OllamaとTTSエンジンの間に公式な連携はありますか?

いいえ。OllamaをTTSエンジンに接続する公式なプラグイン、コールバック、組み込みブリッジは存在しません。本ガイドで説明した組み合わせはすべて自分で書く連携コードであり、通常はOllamaのREST APIを呼び出し、続けてTTSエンジン独自のCLIまたはPython APIを呼び出す20行未満のコードです。

Ollamaパイプラインにおいて、KokoroとPiperの違いは何ですか?

どちらもCPU対応で商用利用は無料です(Kokoro はApache-2.0ライセンス、PiperはGPL-3.0-or-laterライセンス)。Kokoroはより大きなモデル(8,200万パラメータ)で、自社のリリース時ベンチマークによれば明らかに高い知覚音質を実現する一方、Piperはより軽量で、Raspberry Piのような非常に控えめなハードウェア上でリアルタイムに動作してきた実績がより長いです。

Ollamaの出力を読み上げるために自分の声をクローンできますか?

はい、XTTS v2(6秒の参照音声、非商用のCPMLライセンス)またはChatterbox(約5秒の参照音声、MITライセンス、商用利用可)で可能です。PiperもKokoroも音声クローニングには対応しておらず、どちらも固定の事前学習済みの声を使用します。

総評

Ollamaにネイティブなテキスト読み上げ機能がないのは、プラグインで回避すべき欠落ではありません。Ollamaを言語モデルの推論に特化させる設計判断であり、その上に構築されるあらゆる音声パイプラインは別のエンジンを連結します。ほとんどの読者にとって、そのエンジンはPiperであるべきです。すでに稼働しているLLMのそばでほとんどリソースを消費せず、シェルスクリプトやPythonのサブプロセスに1行で組み込め、Raspberry Piほど控えめなハードウェアでもリアルタイムに動作します。Piperの音質で不十分な場合は、Kokoroが同程度のリソース消費での次のステップです。XTTS v2Chatterboxは、音声クローニングが本当に必要な場合にのみ利用し、そのためのGPU予算を確保し、特にXTTS v2については、構築を始める前に非商用のCPMLライセンスが自分の用途に合っているか確認してください。迷ったら、まずPiperを導入してください。Ollamaのモデルの発話を最も早く聞ける方法であり、後でより重いエンジンに切り替える方が、最初からそれで始めるより小さな変更で済みます。

出典

← ローカルLLM活用 に戻る