openai-edge-tts
用微软 Edge 引擎替代 OpenAI TTS,接口完全兼容,零成本本地部署
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用微软 Edge 引擎替代 OpenAI TTS,接口完全兼容,零成本本地部署
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
调用过 OpenAI、ElevenLabs 或者 Azure 的 TTS API 的开发者,一定对那张账单印象深刻——每次语音合成,按字符或 token 计费,日积月累不是小数目。更要命的是,这些云服务存在延迟瓶颈,网络波动时音频流经常卡顿,体验难以保证。
对于搭建本地 AI 助手(如 Open WebUI、Ollama)的团队来说,一个可靠的本地 TTS 引擎成了刚需。openai-edge-tts 正是为解决这个问题而生:它用微软 Edge 浏览器的在线语音合成服务作为后端,通过 Flask 提供一个与 OpenAI /v1/audio/speech 接口完全兼容的 API,让任何原本对接 OpenAI TTS 的应用,无需修改代码即可切换到本地部署,同时彻底告别订阅费用。
项目由独立开发者 Travis Vannimwegen 创建和维护,其 GitHub 个人页显示他活跃于 Voice AI 领域。该项目自上线以来已获得 1,925 颗 GitHub Stars,仓库长期占据 TTS 相关热门榜单。项目采用 GPL-3.0 开源许可证,主要编程语言为 Python,当前主分支为 main。
作者在 README 中明确指出:项目的核心价值在于「完全免费」——edge-tts 底层调用微软 Edge 的在线语音服务,不收取任何费用,这使得它成为个人开发者和小型团队的理想选择。
项目最核心的能力,是将 /v1/audio/speech 接口完全模拟。用户只需将原本发送到 OpenAI 的请求 URL 替换为本地服务地址,即可无缝切换。整个请求结构(input/model/voice 参数)、响应格式(MP3 音频流)与 OpenAI 官方 API 完全一致,最大程度降低迁移成本。
项目支持 Server-Sent Events(SSE)实时流式传输,当请求参数中指定 stream_format: "sse" 时,API 会边合成边返回音频流。这对于实时语音交互场景(如 AI 对话助手)至关重要,能够显著降低首字节延迟,提升用户体验。
支持多种微软 Edge 语音(默认 en-US-AvaNeural),可通过环境变量 DEFAULT_VOICE 配置默认语音。此外还支持自定义语速(DEFAULT_SPEED)、音频格式(DEFAULT_RESPONSE_FORMAT,默认 MP3)、语言等参数,灵活度较高。
内置 API Key 认证机制(REQUIRE_API_KEY 环境变量),支持关闭(测试环境)和开启(生产环境)。还提供了 EXPAND_API 选项,开启后可在 OpenAI 兼容接口之外额外暴露一些调试和扩展端点。
项目代码结构简洁,遵循 Flask 应用的经典分层模式:
| 文件 | 职责 |
|---|---|
app/server.py | Flask 主服务器,注册路由,处理请求 |
app/tts_handler.py | TTS 核心逻辑,调用 edge-tts 库 |
app/handle_text.py | 文本预处理(emoji 转换等) |
app/config.py | 配置管理,读取环境变量 |
app/utils.py | 工具函数 |
核心依赖极为精简:flask(Web 框架)、gevent(异步 I/O)、edge-tts(微软语音引擎)、python-dotenv(配置管理)、emoji(emoji 表情处理)。没有引入重型 ML 框架,部署门槛极低。
服务器通过 Gevent 实现协程并发,单进程即可处理多个并发 TTS 请求,性能足以支撑中小规模应用。
项目提供了完整的容器化方案,部署仅需三步:
.env.example 为 .env,填入 API_KEYdocker-compose up -d服务默认在 5050 端口启动,首次启动自动安装 Python 依赖,无需手动配置 Python 环境。Dockerfile 采用多条件构建(INSTALL_FFMPEG 参数),只有需要二次处理音频时才安装 ffmpeg,保持镜像体积最小化。
硬件需求:无需 GPU,仅需 512MB 内存和 500MB 磁盘空间,任何云服务器均可轻松运行。
使用微软 Edge 在线语音服务,意味着项目存在两个天然限制:
依赖微软服务可用性:虽然 Edge TTS 服务本身免费且稳定,但本质上是调用微软在线 API,若微软变更服务条款或 IP 被限流,项目可能受影响。作者正在探索更多离线方案(如 Coqui TTS)以应对这一风险。
语音质量与定制性:edge-tts 提供的语音库受限于微软的语音模型,无法像 ElevenLabs 那样通过微调生成特定音色或风格的声音,专业配音场景仍有差距。
此外,项目目前没有 Web UI,纯粹是 API 服务,对于非技术用户有一定上手门槛。
在 LLM 应用爆发的大背景下,语音交互正在成为标配能力。从 ChatGPT 的语音对话到各类 AI 助手集成的 TTS 功能,市场对高质量、低成本语音合成的需求急剧增长。
openai-edge-tts 代表了一种「借力打力」的工程思路——不自己训练语音模型,而是利用现有免费服务构建兼容层,以极低的开发成本解决实际的工程问题。这种模式在开源社区中越来越常见,也反映了当前 AI 应用落地的务实趋势。
项目已标记 topic:ai、llm、self-hosted、ollama、open-webui 等,说明它已被明确定位为本地 LLM 栈的语音组件,与 Ollama、Open WebUI 等主流开源工具形成了生态联动。随着本地 AI 助手进一步普及,这类基础设施型项目的价值将持续放大。