Ollama 音声モデル: Ollama 0.40.11 での Phonon テキスト読み上げ
TL;DR
Ollama はテキスト読み上げをサポートするようになり、最初に搭載される音声モデルは Gradium による小型テキスト読み上げモデル群 Phonon です。この機能は Ollama 0.40.11 以降の macOS で動作し、Apple Silicon 上で Apple の MLX フレームワークにより高速化され、Ollama によると、その Phonon 実装は M5 Max 搭載 MacBook Pro 上で Gradium 自身のランタイムより 35% 高速でありながら、参照実装の単語誤り率に一致します。
Ollama の発表内容
Ollama はテキストを音声に変換できるようになりました。Ollama で利用可能な最初の音声モデルは Phonon で、Ollama はこれを Gradium による小型で最先端のテキスト読み上げモデル群と説明しています。
音声モデルはローンチ時点で macOS で利用可能です。Windows と Linux のサポートは近日中に提供予定とされています。
最も簡単な呼び出しは、テキストプロンプトをモデルに通して音声を生成します:
ollama run phonon "Hello from Ollama."
特定の音声は --voice フラグで選択します:
ollama run phonon --voice Zoey "So I went through the whole thread. Short version? Everyone agrees, and nobody wants another meeting."
Ollama は、公開したサンプル音声は M5 Max 搭載 MacBook Pro 上の Ollama 0.40.11 による未編集の出力であると述べています。
Apple Silicon でのパフォーマンス
Ollama によると、その Phonon 実装は M5 Max 搭載 MacBook Pro 上で、次に高速なエンジンである Gradium 自身のランタイムより 35% 高速です。
主要な技術的主張は、Ollama が Apple Silicon 上で Apple の機械学習フレームワーク MLX により高速化されており、最先端のスループットを提供するというものです。
Ollama が述べる測定詳細:
- ハードウェア: M5 Max 搭載 MacBook Pro。
- ワークロード: 45 秒の音声生成。
- 統計: 10 回の実行の中央値。
- 報告指標: リアルタイム比の倍率で表したスループット。
- ベースライン: Gradium 自身のランタイム
ptts。CPU では 8 ビット重み、Neural Engine では fp16、GPU では f32 を使用。 - Ollama の構成: モデルは bf16 で実行。
ベースラインのランタイムが CPU、Neural Engine、GPU で精度を混在させているため、この比較は数値精度の直接比較ではありません。Ollama はモデルを MLX を通じて単一の bf16 構成で実行します。
精度: 参照実装との一致
Ollama は、その実装が Hugging Face Transformers の参照実装と同等に正確で、単語誤り率が一致すると述べています。
Ollama が述べる測定詳細:
- 指標: 単語誤り率 (WER)。低いほど良い。
- テストセット: Seed-TTS 英語テストセットからの 200 文。
- 文字起こし: Whisper large-v3。
つまり、Apple Silicon での速度上の利点は、記載されたテストセットにおける出力品質とのトレードオフとして提示されていません。
音声
音声はコマンドラインの --voice フラグ、または API の voice フィールドで選択します。
ollama run phonon --voice Hadley "Hello from Ollama."
音声は Gradium の音声カタログから提供されます。Ollama が公開したサンプルには、サンプル時間付きの 4 つの音声がリストされています:
- Zoey、アメリカ英語、0:06
- Easton、アメリカ英語、0:04
- Freya、イギリス英語、0:04
- Hugh、イギリス英語、0:07
ollama show phonon を実行すると、利用可能なすべての音声が一覧表示されます。
言語とライセンス
Phonon は、言語カバレッジとライセンスが異なる複数のモデルバリアントとして提供されます。
| モデル | 言語 |
|---|---|
phonon |
英語 |
phonon:40m-fr |
フランス語 |
phonon:40m-de |
ドイツ語 |
phonon:40m-es |
スペイン語 |
phonon:40m-pt |
ポルトガル語 |
phonon:40m-multilingual |
全 5 言語 |
ライセンスはベースモデルと 40M バリアントで異なります:
phononは Apache 2.0 でリリースされています。- 40M モデルは CC BY-NC 4.0 でリリースされており、非商用利用に限定されます。
40M 言語バリアントで商用製品を構築しようと考えている人は、非商用の制限を考慮する必要があります。
チャットモデルの出力を音声にストリーミング
Phonon はチャットモデルから直接パイプできるため、音声出力は別のアプリケーションではなく、既存の 2 つの Ollama コマンドの合成になります。
ollama run gemma4 --hidethinking "Tell me a fun fact about owls in two sentences." | ollama run phonon
Ollama は、テキストが到着するとすぐに音声が読み上げられるため、応答は最初の文の後に再生が始まると述べています。このストリーミング動作は知覚レイテンシに重要です。リスナーは回答の始まりを聞く前に完全な生成が完了するのを待つ必要がありません。
Phonon は対話モードでも実行できます。テキストなしで ollama run phonon を実行するとプロンプトが開き、行を入力でき、出力をリダイレクトして WAV ファイルを保存できます:
ollama run phonon "Save this to a file." > speech.wav
API: OpenAI 互換の音声エンドポイント
Phonon は OpenAI 互換の /v1/audio/speech エンドポイントで動作します。Ollama によると、OpenAI SDK を使用する既存のコードはベース URL を変更するだけで済みます。
curl http://localhost:11434/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "phonon",
"voice": "Zoey",
"input": "Hello from Ollama."
}' --output speech.wav
Ollama は、応答が音声生成中にストリーミングされるため、すぐに再生できると述べています。ドキュメントの例では、curl の応答を直接プレーヤーにパイプしています:
curl -sN http://localhost:11434/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{"model": "phonon", "input": "Playback starts right away."}' \
| ffplay -nodisp -autoexit -loglevel error -
Ollama が述べる音声形式の詳細:
- サンプルレートとチャンネル: 24 kHz モノラル。
- デフォルトコンテナ: WAV。
- 生出力:
"response_format": "pcm"を要求すると 16 ビットサンプル。
ストリーミング例の -sN フラグは、curl の進行メーターとバッファリングを無効にし、音声バイトが生成されるとすぐにプレーヤーに流れるようにします。
はじめ方と要件
音声モデルは Apple Silicon Mac で実行されます。Windows と Linux のサポートは近日中に提供予定とされています。
Phonon をローカルで実行する手順:
- Ollama 0.40.11 以降をダウンロードします。
- モデルをプルします:
ollama pull phonon
Ollama が参照する追加ドキュメント:
- Phonon モデルページ: https://ollama.com/library/phonon
- 音声ドキュメント: https://docs.ollama.com/capabilities/speech
- OpenAI 互換性: https://docs.ollama.com/api/openai-compatibility
- Gradium の音声カタログ: https://huggingface.co/gradium/phonon-voices
これが重要な理由
Ollama に音声モデルを追加することで、ローカルモデルランナーがローカル音声パイプラインに変わります。ビルダーにとって注目すべき 2 つの特性があります:
- ローカル実行。テキスト読み上げは、ホスト型音声 API ではなく、Ollama を通じてユーザー自身の Apple Silicon ハードウェアで実行されます。
- 合成可能性。Phonon は stdin を読み取り、stdout に音声を書き出すため、同じ CLI 内の任意のチャットモデルとチェーンでき、既存の SDK コードが呼び出す方法をすでに知っている OpenAI 互換の HTTP エンドポイントからもアクセスできます。
発表で述べられている注意点は、プラットフォームカバレッジ (ローンチ時は macOS のみ) とライセンス (40M 多言語バリアントは CC BY-NC 4.0 で非商用、ベースの英語 phonon モデルは Apache 2.0) です。
Sources
- OriginalSpeech models in Ollama