音声

GetRouter は、OpenAI 互換の音声操作を 3 種類公開しています。

操作エンドポイント
文字起こしPOST /v1/audio/transcriptions
翻訳POST /v1/audio/translations
テキスト読み上げPOST /v1/audio/speech

実行する音声操作に対応するモデルを使用してください。

音声を文字起こしする

元のファイルを multipart form data としてアップロードします。

curl https://getrouter.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]" \
  -F "model=MODEL_ID" \
  -F "response_format=json"

JSON レスポンスの text に文字起こし結果が含まれます。

API スキーマには、次の文字起こし用オプションフィールドがあります。

  • language — ISO-639-1 言語コード
  • prompt — コンテキストまたは語彙のヒント
  • response_formatjsontextsrtverbose_jsonvtt
  • temperature
  • timestamp_granularitiesword または segment

オプションフィールドの対応状況は選択したモデルによって異なります。

音声を翻訳する

curl https://getrouter.ai/v1/audio/translations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]" \
  -F "model=MODEL_ID" \
  -F "response_format=json"

レスポンスは文字起こしと同じ基本的な text 形式を使用します。

音声を生成する

curl https://getrouter.ai/v1/audio/speech \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "input": "GetRouter はアプリケーションを複数の AI モデルに接続します。",
    "voice": "alloy",
    "response_format": "mp3"
  }' \
  --output speech.mp3

音声生成のリクエストスキーマには次のフィールドがあります。

フィールド説明
model必須の音声モデル ID
input合成する必須テキスト
voiceモデルが対応する必須の音声
response_formatmp3opusaacflacwavpcm
speed対応モデル向けの再生速度

Python による文字起こしの例

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://getrouter.ai/v1",
)

with open("recording.mp3", "rb") as audio_file:
    transcript = client.audio.transcriptions.create(
        model="MODEL_ID",
        file=audio_file,
    )

print(transcript.text)
Tip

音声のアップロードや生成ファイルは大きくなる場合があります。クライアントのタイムアウトを適切に設定し、不要なコピーをメモリに読み込まずにファイルデータをストリーミングしてください。

課金と再試行

音声の課金は、モデル、入力サイズ、長さ、生成された出力によって異なる場合があります。料金を確認してください。再試行する前に、サーバー側ではリクエストが完了し、ファイルのダウンロードだけが失敗した可能性がないか確認します。

次のステップ