拓冰建站拓冰建站
首页 / 资讯中心 / 正文

把ChatTTS变成OpenAI兼容语音API:FastAPI服务化部署完整指南

把ChatTTS变成OpenAI兼容语音APIFastAPI服务化部署完整指南【免费下载链接】ChatTTSA generative speech model for daily dialogue.项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTSChatTTS 是一个面向日常对话场景的生成式语音TTS模型而把它部署成OpenAI 兼容的语音 API后你可以像调用 OpenAI TTS 接口一样用几行代码在任何应用中合成自然语音。本指南带你用 FastAPI 完成 ChatTTS 的服务化部署一键启动 OpenAI 兼容接口、支持多音色与流式输出全程不超过 10 分钟。 为什么要把 ChatTTS 做成 API 服务跨语言调用前端、App、Python、Go……任何能发 HTTP 请求的语言都能用OpenAI 接口协议现有 OpenAI SDK 代码只需改一个base_url即可无缝切换集中管理模型模型只在服务端加载一次多客户端共享避免反复加载的开销易监控易扩展自带/health健康检查端点方便接入负载均衡与容器编排 API 示例目录都包含什么官方在 examples/api/ 目录下提供了完整的服务化示例文件作用openai_api.pyOpenAI 兼容的 TTS 服务推荐main.py原生 ChatTTS 参数接口/generate_voiceclient.py用 requests 调用原生接口的示例客户端postScript.py带完整命令行参数的调用脚本requirements.txt服务依赖fastapi、requestsopenai_api.py 的设计比较工程化用asyncio.Lock管理模型并发访问、启动时预热音色嵌入speaker embedding、统一异常处理并额外实现了健康检查端点可以直接投入生产环境参考。 快速开始三步部署 OpenAI 兼容语音 API第 1 步获取仓库并安装依赖git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS pip install ChatTTS pip install -r examples/api/requirements.txt第 2 步启动 FastAPI 服务fastapi dev examples/api/openai_api.py --host 0.0.0.0 --port 8000服务启动时会执行 openai_api.py 中的初始化逻辑自动下载并加载 ChatTTS 模型sourcehuggingface注册中英文文本正常化工具tools/normalizer/并预加载音色嵌入到内存。首次启动下载模型稍慢属正常现象。第 3 步健康检查curl http://localhost:8000/health看到{status: healthy, model_loaded: true}就说明服务已就绪 ✅ 调用 /v1/audio/speech完全兼容 OpenAI 协议核心接口POST /v1/audio/speech实现了 OpenAITTSRequest 请求模型参数与 OpenAI TTS 完全对齐参数说明示例值model固定为tts-1tts-1input待合成文本最长 2048 字符你好我是ChatTTSvoice音色default/alloy/echoresponse_format音频格式mp3/wav/oggspeed语速0.5–2.01.0stream是否流式返回true用 curl 一行即可合成语音curl -X POST http://localhost:8000/v1/audio/speech \ -H Content-Type: application/json \ -d {model: tts-1, input: 你好我是ChatTTS很高兴为你服务, voice: default} \ --output speech.mp3已有 OpenAI 代码只需两行改动from openai import OpenAI client OpenAI(base_urlhttp://localhost:8000/v1, api_keynone) resp client.audio.speech.create( modeltts-1, input你好我是ChatTTS, voicedefault ) resp.stream_to_file(speech.mp3)服务内部会把请求转给 ChatTTS/core.py 中的infer()方法完成推理音频再经 tools/audio/ 的转换函数输出为 mp3/wav/ogg。 多音色自定义你的专属声音服务通过 VOICE_MAP 管理音色目前内置default、alloy、echo三种音色分别对应1528.pt、1384.pt、2443.pt三个说话人嵌入文件。想换音色只需两步从社区下载一个音色.pt文件放到服务的工作目录在 openai_api.py 的VOICE_MAP里加一行myvoice: xxx.pt重启服务即可请求时传voice: myvoice就能使用新音色。服务启动时会自动预加载所有存在的音色文件见 startup_event避免运行期反复读盘。⚙️ 原生接口 /generate_voice更细粒度的参数控制如果你需要暴露 ChatTTS 的全部推理参数文本精炼、同音字替换、采样种子等可以改用 main.py 启动原生服务fastapi dev examples/api/main.py --host 0.0.0.0 --port 8000它的POST /generate_voice接口接收完整参数体参考 ChatTTSParams支持随机说话人、指定音频种子、流式合成等多段文本结果会打包成 zip 返回。官方示例客户端 client.py 展示了标准调用方式运行后音频保存在output目录python examples/api/client.py 实用建议与常见问题流式输出请求传stream: true服务端通过StreamingResponse分块推送音频流式实现适合实时对话场景并发安全服务用asyncio.Lock串行化模型访问model_lock避免多请求同时推理导致显存冲突文本长度input上限 2048 字符长文本建议按句拆分多次调用加载失败若日志出现 Model loading failed检查网络与代理或改用chat.load(sourcelocal)指向本地模型目录性能提示infer()默认按句切分文本split_text 逻辑长段落会自动分批处理 小结能力说明OpenAI 兼容/v1/audio/speech接口SDK 改 base_url 即用多音色VOICE_MAP扩展音色启动自动预热多格式mp3 / wav / ogg 任选流式stream: true边合成边返回监控/health端点随时检查模型状态至此你已经拥有一个可对外提供服务的 ChatTTS 语音合成 API——把地址交给团队成员或业务系统任何人都能用标准 OpenAI 协议获取自然流畅的语音输出。【免费下载链接】ChatTTSA generative speech model for daily dialogue.项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门