Edge TTS Worker
扫码查看

将微软TTS服务变为免费OpenAI格式API的部署工具

Edge TTS Worker

综合介绍

edge-tts-openai-cf-worker 是一个能将微软(Microsoft)的文本转语音(TTS)服务部署到Cloudflare Worker平台上的开源项目。它的核心功能是将高质量的Edge TTS服务封装成一个与OpenAI TTS接口格式兼容的API。这意味着用户可以通过这个项目,免费、无需微软官方认证,就能使用到效果自然的语音合成服务。该项目解决了部分地区访问微软服务受限的问题,并且因为搭建在Cloudflare的免费套餐上,使用成本几乎为零。项目支持自定义API密钥,保障了接口的安全性,同时也支持中文、英语、日语、韩语等多种语言的语音合成。整个部署过程非常快,只需要几分钟就可以完成,对于需要语音合成功能的开发者或者爱好者来说,是一个既方便又经济的解决方案。

功能列表

  • OpenAI接口兼容:将微软Edge TTS服务包装成与OpenAI TTS API完全一致的接口,可以直接被支持OpenAI格式的各种应用和代码库调用。
  • 绕过区域限制:帮助用户绕过微软服务在中国大陆等地区的访问限制。
  • 免费使用:项目基于Cloudflare Worker的免费计划运行,用户无需支付服务器和带宽费用。
  • 保障接口安全:支持用户自定义设置API密钥,只有提供正确密钥的请求才能访问服务。
  • 支持多种语言:集成了微软TTS丰富的语音库,支持中文、英语、日语、韩语等多种语言和多样的发音人(voice)。
  • 快速部署:用户只需要一个Cloudflare账号,通过简单的复制粘贴代码和基本设置,几分钟内就能完成部署。
  • 支持SSML:支持语音合成标记语言(SSML),可以对语速、语调、停顿等发音细节进行更精细的控制。
  • 自定义域名:允许用户将服务绑定到自己的域名上,方便管理和调用。

使用帮助

这个项目的主要用途是搭建一个私人的、免费的、与OpenAI接口兼容的文本转语音服务。操作流程分为两个核心部分:在Cloudflare上部署Worker服务和在客户端中调用该服务。

第一步:在Cloudflare上部署Worker

部署过程不需要你有专业的编程知识,只需要按照以下步骤操作即可。

  1. 登录并创建Worker
    • 首先,你需要一个Cloudflare账号。登录到Cloudflare控制台。
    • 在左侧菜单中,找到并点击 Workers & Pages 选项。
    • 点击 Create application 按钮,然后选择 Create Worker
    • 为你的Worker命名,例如 edge-tts-worker,然后点击 Deploy
  2. 部署代码
    • 创建成功后,点击 Edit code 进入代码编辑器。
    • 编辑器里会有一段默认的示例代码,请将它们全部删除。
    • 打开项目的GitHub页面,找到名为 worker.js 的文件,复制其中的所有代码。
    • 将复制的代码粘贴到Cloudflare的Worker代码编辑器中。
    • 点击右上角的 Save and deploy 按钮。部署成功后,你的TTS服务就已经在运行了。
  3. 设置API密钥(可选但推荐)
    • 为了防止你的服务被滥用,强烈建议设置一个API密钥。
    • 返回Worker的管理页面,点击 Settings 标签页,然后选择 Variables
    • 在 Environment Variables 部分,点击 Add variable
    • 将变量名称设置为 API_KEY
    • 在 Value 字段中输入一个你自己设定的足够复杂的密码,例如 a-random-and-long-string
    • 点击 Save and deploy 保存设置。
  4. 配置自定义域名(可选)
    • 如果你想使用自己的域名来访问这个服务,可以进行此项配置。前提是你的域名已经托管在Cloudflare上。
    • 在Worker的管理页面,点击 Triggers 标签页,在 Custom Domains 部分点击 Add Custom Domain
    • 输入一个你想要使用的子域名,例如 tts.yourdomain.com,然后添加。Cloudflare会自动为你处理SSL证书。

第二步:在客户端调用API

部署完成后,你就可以在任何支持OpenAI API的程序或代码中调用它了。这里以Python代码为例。

  • 准备工作:
    • 你需要安装 openai 的Python库: pip install openai
    • API地址 (base_url): 如果你没有设置自定义域名,API地址就是你的Worker默认地址(例如 https-edge-tts-worker.your-username.workers.dev),后面要加上 /v1。如果你设置了自定义域名,API地址就是 https://your-custom-domain/v1
    • API密钥 (api_key): 就是你在上一步中设置的 API_KEY 的值。
  • Python调用示例代码:
from openai import OpenAI
# 替换成你的API密钥
api_key = 'a-random-and-long-string' 
# 替换成你的Worker地址
base_url = 'https://edge-tts-worker.your-username.workers.dev/v1'
client = OpenAI(
api_key=api_key,
base_url=base_url,
)
try:
# 调用语音合成接口
response = client.audio.speech.create(
model='tts-1', # 模型名称固定,不起实际作用,但必须提供
input='你好,欢迎使用由Cloudflare驱动的微软语音合成服务。',
voice='zh-CN-XiaoxiaoNeural', # 发音人,可以替换成其他支持的声音
response_format='mp3', # 输出格式
speed=1.0 # 语速
)
# 将返回的音频内容写入文件
with open('output.mp3', 'wb') as f:
f.write(response.content)
print("语音文件 output.mp3 已成功保存。")
except Exception as e:
print(f"请求时发生错误: {e}")

在这个例子中,voice 参数 zh-CN-XiaoxiaoNeural 是微软TTS提供的一个中文女声发音人。你可以根据微软官方的语音列表,更换为你需要的其他语言或声音。

应用场景

  1. 个人博客或网站集成将文字内容(如文章)通过API转换为音频,为读者提供“收听”选项,提升用户体验。
  2. 开发语音助手或聊天机器人为你的AI助手或聊天机器人应用提供语音输出能力,让交互更加生动自然。
  3. 视频内容创作在制作视频时,可以快速生成高质量的配音或旁白,而无需自己录制,尤其适合于解说类视频。
  4. 语言学习工具可以制作一个语言学习应用,让用户输入单词或句子,然后通过API生成标准发音,帮助用户学习和练习。

QA

  1. 这个项目真的完全免费吗?是的,项目本身部署在Cloudflare Worker的免费套餐上。根据Cloudflare的免费政策,每个账户每天有10万次免费的Worker请求额度,对于绝大多数个人和小规模使用场景来说是完全足够的。
  2. API调用时,model参数应该填什么?虽然这个API兼容OpenAI格式,但它实际使用的是后端的微软TTS服务。因此 model 参数(例如tts-1)只是为了满足OpenAI接口的格式要求,本身不起作用,你可以固定填写 tts-1 或任何字符串。
  3. 如何查找和使用不同的声音(voice)?这个服务支持微软Edge TTS提供的所有声音。你可以在互联网上搜索“Microsoft Edge TTS voice list”或“edge-tts 声音列表”来找到完整的列表,然后将 voice 参数替换为你想要的声音名称,例如 en-US-JennyNeural(英文女声)或 ja-JP-KeitaNeural(日文男声)。
  4. 调用API时返回认证错误怎么办?如果你在部署时设置了 API_KEY,那么在调用客户端(如Python代码)时必须提供完全相同的密钥。请检查你的 api_key 变量是否与Cloudflare后台设置的 Value 一致。如果没有设置 API_KEY,则调用时不需要提供 api_key 参数。
微信微博Email复制链接