Edge-TTS 完整指南:免费文本转语音,一条命令出中文语音
【免费下载链接】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
想给视频配音,却不想为文本转语音服务付费?Edge-TTS 是一个免费的语音合成工具:它直接调用微软 Edge 的在线语音接口,不用装浏览器、不用 Windows、不要 API 密钥,装上就能出声。支持上百种语言音色,命令行和 Python 两种用法。本文按"先出声、再调参、最后接代码"的顺序走一遍,是一份可以直接照着敲的 Edge-TTS 中文教程。
先出声:edge-tts 安装步骤与第一条命令
用 pip 安装适合要在 Python 代码里 import 它的人;用 pipx 安装适合只想用命令行的人,两种都是下面这一行命令,装完立即跑一条最小化命令:
pip install edge-tts edge-tts --text "你好,这是第一条语音" --write-media hello.mp3你会得到:当前目录下的 hello.mp3。先播放确认服务连通,再继续往下。默认音色是英文多音色的 en-US-EmmaMultilingualNeural,能读中文,但想要标准普通话音,下一节再换。
选音色、调参数:edge-tts 调节语速、音量、音调与生成字幕
先列出全部可用音色:
edge-tts --list-voices你会得到:一张按 Name / Gender / ContentCategories / VoicePersonalities 分列的表。音色名是"语言地区+人名"格式,比如 zh-CN-XiaoxiaoNeural(中文女声,风格友好)。把选中的名字传给--voice即可。
四个高频参数速查:
| 参数 | 默认值 | 示例写法 | 效果 |
|---|---|---|---|
--rate | +0% | --rate=-30%或--rate=+50% | edge-tts 调节语速,变慢 / 变快 |
--volume | +0% | --volume=-20% | 音量变小 |
--pitch | +0Hz | --pitch=-30Hz | 音调变低 |
--write-subtitles | 不输出 | --write-subtitles hello.srt | 额外生成 SRT 字幕 |
有一个坑要记住:负值必须连等号写成--rate=-30%。写成--rate -30%时,参数解析会把-30%当成新的命令行选项,直接报错。
把音色、语速、字幕合在一起,跑一条完整示例:
edge-tts --voice zh-CN-XiaoxiaoNeural --rate=-50% \ --text "这是一条慢速中文语音" \ --write-media slow.mp3 --write-subtitles slow.srt你会得到:slow.mp3 和与之时间轴对齐的 slow.srt,语速是默认的一半。
接进 Python 代码:同步与异步示例
核心就一个类:edge_tts.Communicate。脚本里不用 asyncio 时,同步版最短:
import edge_tts communicate = edge_tts.Communicate("你好世界", "zh-CN-XiaoxiaoNeural") communicate.save_sync("hello_sync.mp3")你会得到:hello_sync.mp3,不需要事件循环,三行出结果。
在 Web 服务或已有 asyncio 的程序里,换成异步的 save:
import asyncio import edge_tts async def main(): communicate = edge_tts.Communicate("异步生成示例", "zh-CN-YunxiNeural") await communicate.save("hello_async.mp3") asyncio.run(main())你会得到:hello_async.mp3。
两个扩展点。批量场景:为每段文本各建一个 Communicate,把所有 save 任务收集起来,用 asyncio.gather 并发执行,不必顺序等待。错误处理:在线服务偶尔超时,把 save 包进 try/except,失败后 sleep 一两秒再试,并给重试次数设上限即可。更多写法可以翻仓库里的 examples/ 示例目录,里面有带字幕的流式生成写法。
适合用在哪些场景
- 视频配音:口播稿直接转成 mp3,拖进剪辑时间线
- 无障碍朗读:把网页、文档内容读给需要语音的用户听
- 多语言应用:同一套代码换
--voice就输出不同语言的提示音 - 自动化播报:报告生成后自动念出结论,系统通知语音化
- 教育课件:讲义转语音,附带字幕方便跟读
常见问题速查
Q:pip install edge-tts 报权限错误?改用pip install --user edge-tts,或者建个虚拟环境再装,后者更干净。
Q:edge-playback 在非 Windows 系统上放不出声音?edge-playback 依赖 mpv 播放器,先用系统包管理器装好 mpv;Windows 上则自带播放能力,不用额外装。
Q:长文本合成很慢或中途失败?按段落切开分段生成,或用--file直接读入整个文本文件;仍慢就先排除网络问题再重试。
Q:上百种音色,怎么快速选定?跑--list-voices按前缀过滤,中文找 zh-CN- 开头即可,试听两三个候选再定,不用逐个试。
收尾:从这一条命令开始
Edge-TTS 把微软 Edge 的文本转语音服务包成了一个免 API 密钥的 Python 库:命令行两个参数就能出声,Python 里一个 Communicate 对象就能出声,语速、音量、音调和字幕都按需可调,全程免费。听到第一条声音之后,再决定要换什么音色、怎么接进你的代码:
edge-tts --voice zh-CN-XiaoxiaoNeural --text "你好,世界" \ --write-media hello.mp3 --write-subtitles hello.srt你会得到:hello.mp3 和逐句对齐的 hello.srt,这就是你语音合成管线的起点。
【免费下载链接】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),仅供参考