Edge-TTS:微软免费语音合成服务

💡 核心亮点

Edge-TTS 通过逆向微软 Edge 浏览器的在线 TTS 服务实现语音合成,完全免费、无需 GPU、无需 API Key,只需一行 pip install edge-tts 即可获得接近真人水平的中英文语音。


技术原理

微软 TTS 服务的两条路线

微软的神经网络 TTS 能力实际上通过两个渠道对外:

渠道 性质 费用 稳定性
Azure Speech Service 微软官方服务,有正式文档和 SDK 付费(有免费额度) 高,SLA 保障
Edge 浏览器内置 TTS 微软内部服务,无公开 API 免费(但无官方接口) 低,随时可能变更

edge-tts 属于第二条路线——它逆向了 Edge 浏览器内置的“大声朗读”功能所使用的 WebSocket 服务(speech.platform.bing.com)。微软从未公开这个服务的 API 文档,edge-tts 是社区开发者逆向工程后的封装产物,随时可能因微软更新而失效。

工作流程

本地 edge-tts 客户端
    │ WebSocket(模拟 Edge 浏览器)
    ▼
微软 Edge TTS 云端服务(speech.platform.bing.com)
    │ 合成语音
    ▼
返回音频流 → 保存为 mp3/wav

风险与局限

⚠️ 使用 edge-tts 需要清楚以下风险:

  1. 接口随时可能失效:微软未公开此 API,一旦更新安全验证机制(如 2025 年初的 Sec-MS-GEC 令牌更新导致旧版 403),edge-tts 就必须跟进适配,期间服务不可用
  2. 无 SLA 保障:微软不承诺可用性、不保证限流策略,高频调用可能被限制
  3. 合规风险:逆向工程产物用于生产环境存在法律灰色地带,商用需谨慎
  4. 版本强依赖:edge-tts 库必须保持最新版,旧版随时可能被微软服务端拒绝

如果需要稳定可靠的 TTS 服务,建议使用微软官方的 Azure Speech Service(有免费额度),或本地部署开源方案(如 CosyVoice、MOSS-TTS-Nano)。

关键特征: - 必须联网(无离线模式) - 不消耗本地 GPU/CPU 资源 - 合成速度取决于网络延迟,通常 1-3 秒出结果


安装

pip install edge-tts

⚠️ 版本注意:7.2.x 及更早版本可能遇到 403 Forbidden 错误(微软更新了安全验证机制)。升级到 7.3.1+ 即可解决: bash pip install --upgrade edge-tts


使用方法

命令行(CLI)

最简单的用法——直接合成一句话:

edge-tts --voice zh-CN-XiaoxiaoNeural --text "你好,欢迎使用语音合成" --write-media hello.mp3

查看所有可用音色:

edge-tts --list-voices

Python API

异步方式(推荐)

import asyncio
import edge_tts

async def main():
    communicate = edge_tts.Communicate("你好,欢迎使用语音合成", "zh-CN-XiaoxiaoNeural")
    await communicate.save("output.mp3")

asyncio.run(main())

同步方式(subprocess 调用 CLI)

适合在 Flask 等 Web 框架中使用,避免异步冲突:

import subprocess

subprocess.run([
    'edge-tts',
    '--voice', 'zh-CN-XiaoxiaoNeural',
    '--text', '你好,欢迎使用语音合成',
    '--write-media', 'output.mp3'
])

极简体验脚本

以下脚本只需改三行参数,运行即可生成 mp3,适合快速体验 Edge-TTS 效果。

"""
Edge-TTS 极简体验脚本
依赖:pip install edge-tts(需联网)
"""
import asyncio
import edge_tts

# ========== 改这里就行 ==========
TEXT = "你好,欢迎体验微软语音合成服务。"
VOICE = "zh-CN-XiaoxiaoNeural"   # 晓晓(普通话女声)
OUTPUT = "demo_output.mp3"
# ================================

async def main():
    tts = edge_tts.Communicate(TEXT, VOICE)
    await tts.save(OUTPUT)
    print(f"✅ 已保存到 {OUTPUT}")

asyncio.run(main())

换音色试试:

想听什么 改 VOICE 为
普通话女声(默认) zh-CN-XiaoxiaoNeural
普通话男声 zh-CN-YunxiNeural
粤语女声 zh-HK-HiuGaaiNeural
台湾国语女声 zh-TW-HsiaoChenNeural

提示:粤语和台湾国语需配合对应文字才能出效果——粤语配粤语口语("我係學生")、台湾国语配繁体("歡迎來到台灣")。


中文音色一览

普通话(zh-CN)

音色名 性别 风格 适用场景
zh-CN-XiaoxiaoNeural 女 温暖、自然 通用播报、有声书、助手
zh-CN-XiaoyiNeural 女 活泼、甜美 儿童内容、轻松场景
zh-CN-YunxiNeural 男 沉稳、专业 新闻播报、知识讲解
zh-CN-YunyangNeural 男 温和、亲切 有声书、对话场景
zh-CN-YunjianNeural 男 阳刚、有力 体育解说、广告

粤语(zh-HK)

音色名 性别 说明
zh-HK-HiuGaaiNeural 女 粤语女声,可朗读中文但语调偏平
zh-HK-WanLungNeural 男 粤语男声

粤语使用提示:Edge-TTS 的粤语音色可以朗读任意中文文本,但直接用简体书面语喂入会读成"粤语腔普通话"。要获得地道粤语效果,需先用 LLM 将书面语改写为粤语口语(如"我"→"我係"、"的"→"嘅"),再用 OpenCC 转为繁体文字后合成。

台湾国语(zh-TW)

音色名 性别 说明
zh-TW-HsiaoChenNeural 女 台湾女声
zh-TW-YunJheNeural 男 台湾男声

与其他 TTS 方案对比

维度 Edge-TTS CosyVoice3 阿里云 TTS OpenAI TTS
价格 免费 免费(自建) 付费 付费
需要 GPU 否 是 否 否
需要联网 是 否 是 是
声音克隆 否 是 否 否
中文质量 高 高 高 高
方言支持 粤语/台湾国语 18+ 种方言 有限 有限
部署复杂度 极低(pip install) 高(~12GB) 中 低
商用许可 微软服务条款 Apache 2.0 付费协议 付费协议
适用场景 快速原型、轻量播报 高质量离线/批量 企业级服务 商业产品

Edge-TTS 最适合的场景

  1. 快速原型开发:不想折腾 GPU 和模型下载,先跑通再说
  2. 轻量级语音播报:Web 应用的语音反馈、通知朗读
  3. 内容生产辅助:把文字稿快速转成音频试听
  4. 无 GPU 环境:纯 CPU 服务器、笔记本、树莓派等

Edge-TTS 不适合的场景

  1. 需要声音克隆:Edge-TTS 只能用固定音色
  2. 需要离线运行:断网即不可用
  3. 大批量生产:微软可能对高频调用做限流
  4. 方言深度定制:粤语效果一般,不如专用模型

常见问题

403 Forbidden 错误

根因:edge-tts 版本过旧,微软云端更新了安全验证机制。

解决:

pip install --upgrade edge-tts

确保版本 ≥ 7.3.1。

合成速度慢?

Edge-TTS 的速度取决于网络延迟,与本地硬件无关。如果感觉慢: - 检查网络连接(特别是代理设置) - 考虑使用本地 TTS 方案(如 CosyVoice、MOSS-TTS-Nano)

粤语效果不地道?

这是 Edge-TTS 粤语音色的固有限制: - 简体书面语直接读 → "粤语腔普通话" - 解决方案:先用 LLM 做"书面语→粤语口语"改写,再用 OpenCC 转繁体

如何在 Flask 中使用?

推荐用 subprocess 调用 CLI,避免异步冲突:

import subprocess
import os

def generate_tts(text, voice='zh-CN-XiaoxiaoNeural'):
    audio_path = f'static/audio/tts_{hash(text)}.mp3'
    subprocess.run([
        'edge-tts',
        '--voice', voice,
        '--text', text,
        '--write-media', audio_path
    ], check=True)
    return audio_path

相关资源


📖 资料来源:


📝 创建:2026-10-19
🔄 标签:AI、语音技术、TTS、Edge-TTS、微软、免费、开源

相关笔记