|
项目概述#原项目:GitHub - icheer/edgetts-cloudflare-workers-webui 这是一个部署于 Cloudflare Workers 的高性能文本转语音(TTS)代理服务。它将微软 Edge 强大且自然的语音合成能力,封装为兼容 OpenAI API 格式的接口,使开发者能够无缝对接各类现有应用至这一免费、高质量的 TTS 服务。 当前版本#本代码由腾讯云工程师依据上述 GitHub 项目修改适配,支持通过腾讯云 EdgeOne Pages 一键部署,实现全球加速。 使用地址#API 配置#【优化后文章】 高性能 Edge TTS Cloudflare Worker 代理#项目概述#这是一个部署于 Cloudflare Workers 的高性能文本转语音(TTS)代理服务。它将微软 Edge 强大且自然的语音合成能力,封装为兼容 OpenAI API 格式的接口,使开发者能够无缝对接各类现有应用至这一免费、高质量的 TTS 服务。 项目包含两个核心文件: - workers.js:部署于 Cloudflare 的核心服务脚本。
- webui.html:功能完备的本地测试网页。
功能亮点#- OpenAI 兼容:完全模拟 OpenAI 的 /v1/audio/speech 接口,可直接被官方 SDK 或现有工具调用。
- 高质量音色:利用微软 Edge TTS 提供的多种自然流畅的神经网络语音。
- 流式响应:支持流式与标准两种模式,流式可显著降低长文本的首次播放延迟。
- 智能文本清理:内置完善清理流水线,自动处理复制文本中的杂质,包括:
- 移除 Markdown 格式;
- 移除 Emoji;
- 移除 URL;
- 智能移除引用标记数字(保留年份、数量等有意义数字);
- 移除多余空格与硬换行,确保中文听感连贯;
- 支持自定义关键词过滤。
- 灵活参数配置:支持动态调整音色、语速、音调、分块大小、并发数及所有清理选项。
- 零依赖部署:脚本完全自包含,无需 KV、队列等外部服务。
- 便捷测试工具:提供功能丰富的 Web UI,无需编写代码即可完成测试。
工作原理#该 Worker 充当智能中间层: - 接收与 OpenAI TTS API 完全一致的 POST 请求;
- 立即执行文本清理流水线;
- 根据文本长度智能决策处理模式——短文本采用同步直通,长文本自动启用自我调节分块机制;
- 将文本分割并以指定并发数向微软 Edge TTS 服务器请求;
- 标准模式下拼接完整 MP3 后返回;流式模式下收到首块即开始推送,实现低延迟播放。
部署指南#部署仅需数分钟。 准备工作#步骤一:创建 Worker#- 登录 Cloudflare 仪表板;
- 进入「Workers 和 Pages」;
- 点击「创建应用程序」→「创建 Worker」;
- 输入唯一名称(如 my-edge-tts-proxy)并部署。
步骤二:配置代码与密钥#- 进入编辑器,删除默认代码,粘贴 workers.js 全部内容;
- 在「设置」→「变量」中添加机密变量:
- 名称:API_KEY
- 值:自行设定复杂密钥(如 sk-my-super-secret-key-12345)。
步骤三:保存并部署#点击右上角「保存并部署」。服务地址即为 https://<名称>.<子域>.workers.dev。 步骤四:使用 Web UI#项目已将完整 Web UI 嵌入 worker.js,直接访问部署后的 URL 即可使用本地保存的 webui.html 仅作归档参考。 API 使用指南#端点
POST https://<您的 Worker URL>/v1/audio/speech 认证 [size=0.75]Plain Text
Authorization: Bearer YOUR_API_KEY
主要请求参数(JSON) 参数 类型 默认值 说明
modelstring"tts-1"支持 tts-1、tts-1-hd 或映射音色
inputstring—必需,待合成文本
voicestring"zh-CN-XiaoxiaoNeural"微软音色名称
speednumber1.00.25–2.0
pitchnumber1.0音调调整
streambooleanfalse是否流式响应
concurrencynumber10并发请求数
chunk_sizenumber300分块字符数(会自动调整)
cleaning_optionsobject{...}文本清理开关(详见功能亮点)
重要限制#为稳定运行于 Cloudflare 免费套餐,单次请求文本上限约 12 万字符,超出将返回清晰错误提示,已足以覆盖绝大多数长文场景。 项目文件说明#- workers.js:唯一需部署文件,包含完整 API 逻辑、文本清理与 Web UI。
- webui.html:独立测试页面,可本地打开,亦已嵌入 workers.js 中。
|