Edge-TTS+Cloudflare Worker:免费 TTS 服务搭建指南,支持 API 调用与低代码集成

前言

TTS(Text-to-Speech,文本转语音)技术通过人工智能与语音合成算法,将书面文本转化为自然流畅的语音,已广泛应用于智能助手、电子阅读器、无障碍工具、教育娱乐等多个领域。

市面上的 TTS 工具虽种类繁多,但免费且高质量的选择并不多见:免费在线工具功能受限,商业级服务(如 Amazon Polly、Microsoft Azure TTS)成本较高,开源工具则需复杂部署。今天为大家分享一套零成本解决方案 ------ 通过 Edge-TTS 结合 Cloudflare Worker,快速搭建免费、高可用的 TTS 服务,支持 API 调用和低代码平台集成,轻松满足个人与小型团队的文本转语音需求。

一、核心工具介绍

1. Edge-TTS:免费高效的开源 TTS 工具

Edge-TTS 是基于微软 Edge 浏览器在线语音合成服务的 Python 开源库,依托微软 Azure TTS 技术,支持多语言、多音色输出,语音自然度高,且无需 API 密钥、无需依赖 Windows 系统或 Edge 浏览器。

  • 项目地址1:https://github.com/rany2/edge-tts/
  • 项目地址2:++++https://gitee.com/research_code/edge-tts++++
  • 核心优势:
    • 支持百余种语音(含中、英、日、韩等多语种)
    • 可自定义语速、音调、音量
    • 生成 MP3 音频文件与 SRT 字幕文件
    • 轻量化部署,Python 一键安装

2. edge-tts-openai-cf-worker:API 化代理方案

为解决 Edge-TTS 命令行操作繁琐、难以集成第三方工具的问题,推荐使用edge-tts-openai-cf-worker项目。该项目将 Edge-TTS 服务封装为兼容 OpenAI 接口格式的 API,部署在 Cloudflare Worker 上,实现跨平台、跨工具调用。

  • 项目地址1:https://github.com/linshenkx/edge-tts-openai-cf-worker
  • 项目地址2:++++https://gitee.com/research_code/edge-tts-openai-cf-worker++++
  • 核心优势:
    • 绕过大陆访问限制,无需微软认证
    • 兼容 OpenAI TTS 接口规范,无缝对接现有工具
    • 基于 Cloudflare Worker 免费计划,零服务器成本
    • 支持自定义 API 密钥,安全可控
    • 每天 10 万次免费请求,满足日常使用

二、快速搭建步骤

第一步:安装 Edge-TTS(基础使用)

若仅需简单文本转语音,可直接通过 Python 命令行使用 Edge-TTS:

  1. 前置条件:安装 Python 运行环境
  2. 安装依赖:

|----------------------|
| pip install edge-tts |

  1. 基础使用(生成 MP3 音频 + SRT 字幕):

|------------------------------------------------------------------------------------------|
| edge-tts --text "欢迎使用Edge-TTS免费语音服务" --write-media hello.mp3 --write-subtitles hello.srt |

执行后会在当前目录生成音频文件和字幕文件,操作简单高效。

第二步:部署 Cloudflare Worker(API 服务搭建)

为实现 API 调用,需将edge-tts-openai-cf-worker部署到 Cloudflare Worker,步骤如下:

1. 准备工作
2. 创建 Cloudflare Worker
  1. 登录 Cloudflare 控制台,进入「Workers & Pages」
  2. 点击「Create Worker」,输入服务名称(如edge-tts-api),点击「部署」
  3. 部署成功后,点击「编辑代码」进入代码编辑页面
3. 部署核心代码
  1. 删除默认的 "Hello World" 代码
  2. 复制edge-tts-openai-cf-worker项目中的worker.js代码(完整代码见文末附录)
  3. 粘贴到编辑框,点击「Save and deploy」完成部署
4. 设置 API 密钥(可选,推荐)

为防止接口被恶意调用,建议设置 API 密钥:

  1. 在 Worker 详情页,进入「Settings → Variables」
  2. 点击「Add variable」,名称填写API_KEY,值填写自定义密钥(如随机字符串)
  3. 点击「Save and deploy」生效
5. 自定义域名配置(可选)

Cloudflare 分配的默认域名国内访问可能不稳定,可配置自定义域名:

  1. 确保自定义域名已托管在 Cloudflare,且 DNS 记录为橙色代理状态
  2. 在 Worker 详情页,进入「设置 → 域和路由 → 添加」
  3. 选择「自定义域」,输入域名(如tts.example.com),点击「添加域」
  4. 等待证书部署完成(约几分钟),即可通过自定义域名访问

三、API 调用方式

部署完成后,可通过 API 接口调用 TTS 服务,支持基础文本转语音、自定义语速 / 音调 / 情绪等功能。

1. 基础调用(curl 命令)

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| curl --location 'https://你的Worker域名/v1/audio/speech' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer 你的API_KEY' \ --data '{ "model": "tts-1", "input": "你好,世界!这是免费TTS服务生成的语音", "voice": "zh-CN-XiaoxiaoNeural", "response_format": "mp3", "speed": 1.0 }' --output output.mp3 |

2. Python 代码调用(兼容 OpenAI SDK)

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| from openai import OpenAI # 配置客户端 api_key = '你的API_KEY' base_url = 'https://你的Worker域名/v1' client = OpenAI( api_key=api_key, base_url=base_url ) # 生成语音 data = { 'model': 'tts-1', 'input': '灵活多样:参考模板但需根据具体需求生成多样化内容,避免固定化依赖', 'voice': 'zh-CN-XiaoxiaoNeural', # 可选其他语音 'response_format': 'mp3', 'speed': 1.0, # 语速:0.5-2.0 'pitch': 1.0, # 音调:0.5-2.0 'style': 'general' # 情绪:general/cheerful/angry/sad/chat } try: response = client.audio.speech.create(**data) with open('test_tts.mp3', 'wb') as f: f.write(response.content) print("MP3文件已保存成功!") except Exception as e: print(f"调用失败:{e}") |

3. 核心参数说明

|-----------------|--------|----|--------------------|--------------------------------------------------------|
| 参数 | 类型 | 必填 | 说明 | 示例值 |
| model | string | 是 | 模型名称(固定为 tts-1) | tts-1 |
| input | string | 是 | 待转换的文本内容 | "你好,世界!" |
| voice | string | 是 | 语音角色(支持多语种) | zh-CN-XiaoxiaoNeural(中文晓晓)、en-US-JennyNeural(英文 Jenny) |
| response_format | string | 否 | 音频格式(默认 MP3) | mp3 |
| speed | number | 否 | 语速(0.5-2.0,默认 1.0) | 1.2 |
| pitch | number | 否 | 音调(0.5-2.0,默认 1.0) | 1.1 |
| style | string | 否 | 情绪风格 | general(通用)、cheerful(开心)、angry(愤怒)、sad(悲伤)、chat(闲聊) |

4. 支持的语音列表(部分)

|----------------------|---------------|----|
| 语音代码 | 描述 | 语言 |
| zh-CN-XiaoxiaoNeural | 晓晓 - 温暖活泼 | 中文 |
| zh-CN-YunxiNeural | 云希 - 稳重大气(男声) | 中文 |
| zh-CN-XiaoyiNeural | 晓伊 - 亲切温柔(女声) | 中文 |
| zh-CN-YunyangNeural | 云扬 - 专业权威(男声) | 中文 |
| en-US-JennyNeural | Jenny - 自然流畅 | 英文 |
| ja-JP-NanamiNeural | Nanami - 甜美柔和 | 日文 |
| ko-KR-SunHiNeural | SunHi - 清晰明亮 | 韩文 |

四、低代码集成:Dify 平台使用教程

部署后的 TTS 服务可直接集成到 Dify 等低代码平台,无需编写代码即可实现文本转语音功能:

1. 模型配置

  1. 打开 Dify 控制台,进入「模型设置」
  2. 选择「OpenAI-API-compatible」,点击「添加模型」
  3. 配置参数:
    • 模型类型:TTS
    • 模型名称:自定义(如「Edge-TTS」)
    • API Key:填写 Cloudflare Worker 设置的API_KEY
    • API URL:填写 Worker 域名(如https://tts.example.com/v1)
    • 可用声音:填写支持的语音代码(如zh-CN-XiaoxiaoNeural,zh-CN-YunxiNeural)
  1. 点击「保存」完成配置

2. 搭建 TTS 工作流

  1. 新建工作流,添加「开始」节点,设置输入变量为「text」(待转换文本)
  2. 添加「Text To Speech」内置工具:
    • 输入变量:选择开始节点的「text」
    • 模型:选择已配置的「Edge-TTS」
    • 语音角色:选择目标音色
  1. 添加「直接回复」节点,输出类型选择「文件输出」
  2. 保存工作流并发布

五、注意事项与常见问题

1. 注意事项

  • 文本与语音语言需匹配(如中文语音仅支持中文文本),否则可能合成失败
  • 单条文本建议不超过 2000 字符,避免请求超时
  • 该服务仅供学习和个人使用,不建议用于商业项目
  • 基于 Cloudflare 免费计划,每天限制 10 万次请求,足够日常使用
相关推荐
fangzhanpeng1682 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心5 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552710 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552711 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝12 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552712 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552713 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552715 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552716 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552717 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节