OWN NEWS GATHER
← 戻る
OpenRouter Blog

OpenRouter、単一APIで複数社の音声モデルを切り替え可能な音声合成機能を提供開始

要点

  • OpenRouterが、複数プロバイダーの音声合成(TTS)モデルを共通の仕様で利用できるエンドポイントを公開した。

  • OpenAI互換のAPI仕様を採用しており、既存のSDK設定を変更するだけで手軽に導入できる。

  • Mistral AIのモデルをはじめ、xAIやマイクロソフトなどの音声モデルを1つのAPIキーで呼び出し可能。

  • 成功時の音声バイナリと失敗時のJSONレスポンスを判別する検証設計や、ストリーミング出力に対応している。

  • AIモデルのルーティングプラットフォームを運営するOpenRouterは2026年9月11日、複数社のテキスト音声合成(Text-to-Speech:文字を音声に変換する技術、TTS)モデルを単一のエンドポイントから呼び出せる新機能とチュートリアルを公開した。開発者は共通のリクエスト構造を用いることで、異なるベンダーの音声モデルを柔軟に扱えるようになる。

OpenAI互換のエンドポイントによる手軽な導入

今回提供された音声合成機能は、OpenAIの音声APIと互換性を持つエンドポイント(POST /api/v1/audio/speech)を通じて提供される。

OpenAI公式のPython SDKなどを利用している開発者は、接続先のベースURLを https://openrouter.ai/api/v1 に設定し、自身のOpenRouter APIキーを認証ヘッダーに指定するだけで利用できる。既存のOpenAI向けに書かれた実装を大きく変更することなく、接続先を切り替えるだけで音声生成を行える設計だという。

1つのAPIで複数プロバイダーのモデルを柔軟に選択

OpenRouterの音声合成機能の特徴は、1つのAPIキーと統一されたリクエスト形式のまま、異なる開発元のモデルを呼び出せる点にある。

チュートリアルでは、Mistral AIが提供する音声合成モデル「Voxtral Mini TTS(mistralai/voxtral-mini-tts-2603)」のほか、xAIやマイクロソフト(Microsoft)が提供するモデルを選択肢として利用できることが示されている。

プロバイダーが異なる場合でも、エンドポイントのURLや認証方法、レスポンスの処理手順は同一に保たれる。開発者はリクエスト本文のパラメータでモデル名を指定するだけで、各社の音声モデルを切り替えられるとしている。

リクエストパラメータの仕様と設定項目

APIリクエストで指定する主なパラメータは以下の通りだ。

  • model:利用する音声合成モデルの指定(必須)。
  • input:読み上げ対象となるテキスト文字列(必須)。
  • voice:音声の話者(ボイス)の指定。プロバイダー側で既定ボイスが定められている場合を除き実質的に必須となる。モデルによって対応するボイスが異なるため、プロバイダーを切り替える際はモデル名とボイス名を合わせて変更する必要がある。
  • response_format:出力音声のフォーマット(任意)。未指定時はPCM形式がデフォルトとなるが、対応フォーマットはモデルによって異なる。例えばMistral Voxtral Mini TTSはMP3形式のみを受け付ける仕様となっており、明示的なフォーマット指定が推奨されている。
  • speed:発話速度の調整(任意)。対応しているモデルでのみ機能する。

レスポンス検証とエラーハンドリングの注意点

データの返却仕様として、リクエスト成功時には生の音声バイトデータ(raw audio bytes)が返される一方、失敗時(4xx系や5xx系エラー)にはエラー内容を含むJSONデータが返却される。

そのため、レスポンスの成否を確認せずにファイル保存を行うと、エラー発生時に返されたJSONテキストを音声ファイル(.mp3など)として保存してしまう恐れがある。

チュートリアルでは、Pythonの requests ライブラリを用いた例として、HTTPステータスコードを検証する raise_for_status() の実行や、ヘッダーの Content-Type が audio/mpeg であることを確認してから保存する実装手順が案内されている。また、レスポンスヘッダーに含まれる X-Generation-Id を記録することで、リクエストの追跡やサポートへの問い合わせ時の参照情報として活用できると説明している。

ストリーミング出力や複数言語での実装例

ファイルの一括ダウンロードに加え、生成中の音声データを順次受け取るストリーミング出力にも対応している。OpenAIのPython SDKに備わる with_streaming_response を使うことで、レスポンスを読み込みながら逐次ファイルへ保存することが可能だ。なお、受信と並行して音声を順次再生(プログレッシブ再生)する場合は、受信チャンクをバッファリングできるプレイヤーが必要となる。

また、cURLコマンドによるファイル生成や、Node.js環境において fetch と arrayBuffer() を用いてレスポンスを取得・検証した上で保存する実装例も示されている。

補足

なお、OpenRouterは今回のテキスト音声合成に加え、音声をテキストに変換する音声認識(文字起こし)APIの提供も行っており、音声関連のAPI群を拡充している。

元URL