Edge TTS 无需浏览器,3 步在 Python 里生成高质量语音
【免费下载链接】edge-ttsUse Microsoft Edge's online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key项目地址: https://gitcode.com/GitHub_Trending/ed/edge-tts
想给脚本加个"读给我听",是不是每次都得先装个笨重的浏览器、注册账号、再申请 API 密钥?edge-tts 是一个 Python 模块,让你直接调用 Microsoft Edge 的在线文本转语音服务:不装 Edge、不限 Windows、不要 API 密钥。
🚀 项目速览
一句话定位:用 Python 或命令行,拿到和 Edge 浏览器"大声朗读"一样的语音合成,输出 MP3 音频和 SRT 字幕。
- ✅免费,用的就是 Edge 浏览器自带的免费语音服务
- ✅跨平台,Linux、macOS、Windows 用法完全一致
- ✅不依赖浏览器,纯 Python 实现,装上就能跑
- ✅语音种类丰富,
--list-voices一条命令列出全部可用语音
🔧 三步跑起来
先装上,跑通再说:
pip install edge-tts一条命令装好。如果只想用edge-tts、edge-playback两个命令行工具,把 pip 换成 pipx 即可。
然后做第一次合成:
edge-tts --text "Hello, world!" --write-media hello.mp3--text指定要读的文字,--write-media指定 MP3 保存位置。
你会发现:命令跑完没有任何报错输出,当前目录里多出一个hello.mp3,播放就是一句标准的英语问候。
📋 常用选项速查表
高频参数都在下面,照着抄就行:
| 参数 | 作用 | 示例 |
|---|---|---|
--text/-t | 要合成的文字 | --text "Hello" |
--file/-f | 从文件读取文字 | -f story.txt |
--voice/-v | 指定语音,默认en-US-EmmaMultilingualNeural | --voice ar-EG-SalmaNeural |
--rate | 调节语速 | --rate=-50% |
--volume | 调节音量 | --volume=-20% |
--pitch | 调节音调 | --pitch=-50Hz |
--write-media | 音频写入文件 | --write-media out.mp3 |
--write-subtitles | 字幕写入 SRT 文件 | --write-subtitles out.srt |
--list-voices/-l | 列出全部可用语音 | --list-voices |
--proxy | 通过代理连接服务 | --proxy http://127.0.0.1:7890 |
注意:--rate、--volume、--pitch取负值时,一定要写成--rate=-50%这种带等号的形式,否则命令行会把负数当成一个新选项。
💡 三个实战场景
整篇文章批量转语音
长文塞不进--text?直接把文件丢给它:
edge-tts -f chapter1.txt --write-media chapter1.mp3-f会读入整个文件的内容,长文不用再纠结引号和换行。
即时试听效果
不想存文件,只想马上听到效果?试试这个:
edge-playback --text "这是一个实时播放演示"edge-playback边合成边播放(非 Windows 系统需要先装好 mpv 播放器)。
换种语言语音并生成字幕
先用--list-voices挑一个语音,再一条命令出结果:
edge-tts --voice ar-EG-SalmaNeural --text "مرحبا كيف حالك؟" --write-media arabic.mp3 --write-subtitles arabic.srt一次拿到阿拉伯语女声 MP3,外加逐字对齐时间的 SRT 字幕文件。
🔍 原理一句话
最巧妙的是:不启动浏览器,怎么通过微软的校验?答案在 src/edge_tts/drm.py —— 项目用公开的客户端令牌加 5 分钟粒度的时间戳,算出Sec-MS-GEC校验令牌,再带上浏览器风格的请求头,直连微软的 TTS WebSocket 服务。音频以流式返回,流里的逐字边界事件正好被拿来生成同步字幕。
⚖️ 横向对比
| 维度 | 商业云 TTS API | edge-tts |
|---|---|---|
| 成本 | 普遍按字符计费 | 免费 |
| 门槛 | 注册账号、申请密钥、集成 SDK | pip install即用 |
| 平台 | 受厂商 SDK 环境限制 | Linux / macOS / Windows |
| 产出 | 通常只有音频 | 音频 + SRT 同步字幕 |
❓ 避坑问答
Q:报错说"未知的选项",是哪里错了?A:十有八九是负号问题。写--rate=-50%,不要写成--rate -50%。
Q:提示"输出将写入终端"?A:你没传--write-media,音频字节会直接涌进终端。补上保存参数,或按 Ctrl+C 取消。
Q:edge-playback报 "mpv is not installed"?A:非 Windows 系统下它靠 mpv 播放器出声,先装好 mpv 再运行。
Q:网络连不上服务怎么办?A:用--proxy指定代理,如--proxy http://127.0.0.1:7890,列语音列表走的也是同一条通道。
Q:怎么它一直在读英语?A:你还没换语音,默认是美式英语声en-US-EmmaMultilingualNeural。用--list-voices查到你想要的名字,填进--voice即可。
一句话总结:edge-tts 把"浏览器级"的免费语音合成,压缩成了一条命令。想把它接进自己的程序,可以看看 examples/ 里的 Python 示例,里面有流式输出和动态选音的完整写法。
现在就可以打开终端,装上它,三分钟听到自己的第一句合成语音。
【免费下载链接】edge-ttsUse Microsoft Edge's online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key项目地址: https://gitcode.com/GitHub_Trending/ed/edge-tts
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考