字
字节笔记本
2026年2月22日
TTSFM:免费的 OpenAI 兼容文本转语音 API 服务
TTSFM 是一个免费开源的 OpenAI 兼容文本转语音 API 服务,基于 OpenAI 的 GPT-4o mini TTS 技术,提供完整的语音合成解决方案。该项目在 GitHub 上已获得 711 stars 和 112 forks,主要使用 Python 开发。
项目简介
TTSFM 是一个反向工程实现的 openai.fm 服务镜像,提供与 OpenAI TTS API 完全兼容的接口。它包含 Python SDK、RESTful API 端点以及直观的 Web 测试界面,方便开发者快速集成和测试。
⚠️ 注意:该项目已于 2025 年 12 月 18 日被作者归档,原因是 openai.fm 演示网站已关闭,项目目前无法正常使用。但作为学习参考和开源项目架构设计仍有价值。
核心特性
- 🎤 多声音选择:支持 11 种 OpenAI 兼容声音(alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer, verse)
- 🎵 灵活音频格式:支持 6 种音频格式(MP3, WAV, OPUS, AAC, FLAC, PCM)
- ⚡ 速度控制:支持 0.25x 到 4.0x 的播放速度调整
- 📝 长文本支持:自动文本分割和音频合并,支持任意长度内容
- 🔄 实时流式传输:WebSocket 支持流式音频生成
- 🐍 Python SDK:提供易用的同步和异步客户端
- 🌐 Web 测试界面:交互式 Web 界面用于测试和实验
- 🐳 Docker 支持:提供预构建 Docker 镜像,支持一键部署
- 🔍 智能检测:自动能力检测和友好的错误提示
- 🤖 OpenAI 兼容:可作为 OpenAI TTS API 的替代方案
技术栈
- Python 46.2% - 核心服务端和 SDK
- JavaScript 24.8% - Web 界面交互
- HTML 21.4% - Web 页面模板
- CSS 7.1% - 样式设计
- Dockerfile - 容器化部署
安装指南
Python 包安装
bash
# 安装核心客户端
pip install ttsfm
# 安装核心客户端 + Web/服务端依赖
pip install ttsfm[web]Docker 部署
TTSFM 提供两种 Docker 镜像变体:
完整版(推荐)
bash
docker run -p 8000:8000 dbcccc/ttsfm:latest完整版包含 ffmpeg,支持:
- ✅ 所有 6 种音频格式
- ✅ 速度调整(0.25x - 4.0x)
- ✅ ffmpeg 格式转换
- ✅ 长文本 MP3 自动合并
- ✅ 长文本 WAV 自动合并
精简版(~100MB)
bash
docker run -p 8000:8000 dbcccc/ttsfm:slim精简版不包含 ffmpeg,仅支持:
- ✅ 基础 TTS 功能
- ✅ 2 种音频格式(MP3, WAV)
- ✅ 长文本 WAV 自动合并
- ❌ 不支持速度调整
- ❌ 不支持格式转换
- ❌ 不支持 MP3 自动合并
部署后,Web 界面访问地址为 http://localhost:8000,API 端点为 /v1/audio/speech。
检查可用功能:
bash
curl http://localhost:8000/api/capabilities快速开始
Python 客户端
python
from ttsfm import TTSClient, AudioFormat, Voice
client = TTSClient()
# 基础用法
response = client.generate_speech(
text="Hello from TTSFM!",
voice=Voice.ALLOY,
response_format=AudioFormat.MP3,
)
response.save_to_file("hello") # -> hello.mp3
# 带速度调整(需要 ffmpeg)
response = client.generate_speech(
text="This will be faster!",
voice=Voice.NOVA,
response_format=AudioFormat.MP3,
speed=1.5, # 1.5x 速度(0.25 - 4.0)
)
response.save_to_file("fast") # -> fast.mp3CLI 命令行
bash
ttsfm "Hello, world" --voice nova --format mp3 --output hello.mp3REST API(OpenAI 兼容)
bash
# 基础请求
curl -X POST http://localhost:8000/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "Hello world!",
"voice": "alloy",
"response_format": "mp3"
}' --output speech.mp3
# 带速度调整(需要完整版镜像)
curl -X POST http://localhost:8000/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "Hello world!",
"voice": "alloy",
"response_format": "mp3",
"speed": 1.5
}' --output speech_fast.mp3API 参考
可用声音
| 声音名称 | 描述 |
|---|---|
| alloy | 中性声音 |
| ash | 男性声音 |
| ballad | 男性声音 |
| coral | 女性声音 |
| echo | 男性声音 |
| fable | 男性声音 |
| nova | 女性声音 |
| onyx | 男性声音 |
| sage | 女性声音 |
| shimmer | 女性声音 |
| verse | 男性声音 |
可用格式
| 格式 | 完整版 | 精简版 |
|---|---|---|
| mp3 | ✅ | ✅ |
| wav | ✅ | ✅ |
| opus | ✅ | ❌ |
| aac | ✅ | ❌ |
| flac | ✅ | ❌ |
| pcm | ✅ | ❌ |
速度范围
- 范围:0.25 - 4.0
- 要求:需要完整版 Docker 镜像(含 ffmpeg)
项目链接
- GitHub 仓库:https://github.com/dbccccccc/ttsfm
- Docker 镜像:https://hub.docker.com/r/dbcccc/ttsfm
- 在线演示:https://ttsapi.site(已不可用)
- 许可证:MIT License
注意事项
- 该项目仅供教育和研究目的使用
- 项目已于 2025 年 12 月 18 日归档,目前无法正常使用
- 这是一个反向工程实现,不应用于商业用途或生产环境
- 用户需确保遵守适用的法律法规和服务条款
分享: