OpenAI は2027年1月6日に tts-1、tts-1-hd、gpt-4o-mini-tts を API から削除します。出典
OpenAI TTS の代替:SDK はそのままで base URL を変更
Fish AudioはOpenAIの/v1/audio/speechと完全互換。ベースURLをFishに変更して無料モデルを選択すれば、OpenAIのTTS提供終了後も現在の音声生成プログラムをそのまま動作させ続けられます。
クレジットカードは不要です。fish-audio/s2.1-pro-free の料金は2026年11月30日まで $0 です。
2行の変更でクライアントを切り替え
base_url と api_key で、公式 OpenAI SDK の接続先を Fish に向けます。呼び出しでは Fish のモデルと音声を指定します。新しいコードは、残高 $0 の新規アカウントでもそのまま動作します。
speech.py
import os from openai import OpenAI client = OpenAI(追加された行: base_url="https://api.fish.audio/compat/v1",削除された行: api_key=os.environ["OPENAI_API_KEY"],追加された行: api_key=os.environ["FISH_API_KEY"],) with client.audio.speech.with_streaming_response.create(削除された行: model="tts-1",削除された行: voice="alloy",追加された行: model="fish-audio/s2.1-pro-free",追加された行: voice="", input="Hello, world!", response_format="mp3",) as response: response.stream_to_file("speech.mp3")import fs from "node:fs";import OpenAI from "openai"; const client = new OpenAI({追加された行: baseURL: "https://api.fish.audio/compat/v1",削除された行: apiKey: process.env.OPENAI_API_KEY,追加された行: apiKey: process.env.FISH_API_KEY,}); const response = await client.audio.speech.create({削除された行: model: "tts-1",削除された行: voice: "alloy",追加された行: model: "fish-audio/s2.1-pro-free",追加された行: voice: "", input: "Hello, world!", response_format: "mp3",});fs.writeFileSync("speech.mp3", Buffer.from(await response.arrayBuffer()));削除された行: curl https://api.openai.com/v1/audio/speech \削除された行: -H "Authorization: Bearer $OPENAI_API_KEY" \追加された行: curl https://api.fish.audio/compat/v1/audio/speech \追加された行: -H "Authorization: Bearer $FISH_API_KEY" \ -H "Content-Type: application/json" \ -d '{削除された行: "model": "tts-1",削除された行: "voice": "alloy",追加された行: "model": "fish-audio/s2.1-pro-free",追加された行: "voice": "", "input": "Hello, world!", "response_format": "mp3" }' \ --output speech.mp3公式の OpenAI SDK(pip install openai または npm install openai)と、FISH_API_KEY に設定した Fish の API キーが必要です。
その他の変更点
voiceには Fish の音声 ID を指定します。novaなどの OpenAI のプリセット名は 400 を返します。空文字列を渡すと、モデルのデフォルト音声が使われます。- Fish では
response_formatのデフォルトはmp3ではなくpcmです。明示的に指定してください。 instructionsは非対応のため400エラーが返されます。代わりに、[whispering]のような演出タグを直接記述してください。tts-1、tts-1-hd、gpt-4o-mini-ttsは引き続きモデル名として使えます。これらは有料のfish-audio/s2.1-proにマッピングされます。
音声を選ぶ
OpenAI のプリセット音声は Fish にはありません。Fish のボイスライブラリにある任意の音声、または自分でクローンした音声の ID を渡してください。空文字列を渡すと、モデルのデフォルト音声が使われます。
料金
S2.1-Pro は入力テキストの UTF-8 バイト数で課金されます。英語では1文字が1バイトなので、料金は tts-1 と同じで、tts-1-hd の半額です。中国語・日本語・韓国語の文字は、ほとんどが3バイトです。
公式料金ページの価格(2026年10月29日確認):Fish AudioOpenAI
よくある質問
OpenAI の非推奨化に関するページでは、tts-1、tts-1-hd、gpt-4o-mini-tts が2027年1月6日に API から削除される予定とされています。OpenAI が推奨する移行先の gpt-realtime-2.1-mini は、/v1/audio/speech ではなく Realtime API で動作します。
2027年1月6日より前に移行しましょう
無料のキーを作成して2行を変更し、音声機能の提供を続けましょう。