OpenAI 将于 2027年1月6日从其 API 中移除 tts-1、tts-1-hd 和 gpt-4o-mini-tts。来源
OpenAI TTS 替代方案:保留 SDK,更换 base URL
Fish Audio 支持同样的 /v1/audio/speech 调用。将 OpenAI 客户端指向 Fish 并选择免费模型,OpenAI 的 TTS 模型下线后,你的语音合成代码仍可继续运行。
无需信用卡:fish-audio/s2.1-pro-free 价格为 $0,有效期至 2026年11月30日。
改两行,切换客户端
通过 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默认为pcm,而不是mp3。请显式设置。 - 不支持
instructions,传入会返回 400。请改为在文本中写入演绎提示,例如[whispering]。 tts-1、tts-1-hd和gpt-4o-mini-tts仍可用作模型名称,它们会映射到付费的fish-audio/s2.1-pro。
选择声音
Fish 上没有 OpenAI 的预设声音。请传入 Fish 声音库中任意声音的 ID,或你克隆的声音的 ID。传入空字符串则使用模型的默认声音。
价格
S2.1-Pro 按输入文本的 UTF-8 字节数计费。英文中一个字符占一个字节,因此价格与 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 中移除。其推荐的替代模型 gpt-realtime-2.1-mini 运行在 Realtime API 上,而不是 /v1/audio/speech。
在 2027年1月6日前完成切换
创建免费密钥,修改两行代码,继续交付语音功能。