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 的新账号上也能直接运行。

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。传入空字符串则使用模型的默认声音。

Hannah · 声音库

voice="9a9cf47702da476aa4629e2506d4a857"
浏览声音库

价格

S2.1-Pro 按输入文本的 UTF-8 字节数计费。英文中一个字符占一个字节,因此价格与 tts-1 相同,是 tts-1-hd 的一半。大多数中文、日文和韩文字符占 3 个字节。

模型价格
Fish Audiofish-audio/s2.1-pro-free在公平使用政策限制内免费,有效期至 2026年11月30日。与 S2.1-Pro 为同一模型,但不提供延迟(TTFA)保证,也不提供 DPA;请求可能会被用于改进模型。$0.00 / 100 万 UTF-8 字节
Fish Audiofish-audio/s2.1-pro适用于生产环境。按量付费,无需订阅。$15.00 / 100 万 UTF-8 字节
OpenAItts-1将于 2027年1月6日从 OpenAI API 中移除。$15.00 / 100 万字符
OpenAItts-1-hd将于 2027年1月6日从 OpenAI API 中移除。$30.00 / 100 万字符

价格来自官方定价页面,查询于 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日前完成切换

创建免费密钥,修改两行代码,继续交付语音功能。