基于 Microsoft Edge 在线文本转语音服务的 Python 模块,无需安装 Edge 浏览器、Windows 系统或任何 API 密钥,即可将文本转换为高质量语音。
只需一行命令,即可在你的项目中使用 edge-tts。
标准方式,安装后可直接在 Python 代码中导入使用。
$ pip install edge-tts
仅使用命令行工具的推荐方式,隔离环境更干净。
$ pipx install edge-tts
使用 edge-tts 命令行工具,将任意文本转换为语音文件和字幕文件。
$ edge-tts --text "Hello, world!" --write-media hello.mp3 --write-subtitles hello.srt
通过命令行参数精确控制语音输出效果。使用负值时请写成 --rate=-50% 的形式。
# 降低语速
$ edge-tts --rate=-50% --text "Hello, world!" --write-media slow.mp3 --write-subtitles slow.srt
# 降低音量
$ edge-tts --volume=-50% --text "Hello, world!" --write-media quiet.mp3 --write-subtitles quiet.srt
# 降低音高
$ edge-tts --pitch=-50Hz --text "Hello, world!" --write-media low.mp3 --write-subtitles low.srt
自定义 SSML 支持已被移除,因为 Microsoft 会阻止使用任何非 Edge 自身生成的 SSML。该服务仅允许一个 <voice> 标签内包含一个 <prosody> 标签,相关自定义选项已全部在本库的命令行参数中提供。
支持 400 多种语音,覆盖 75+ 种语言和地区,使用 --list-voices 查看完整列表。
以下列出部分可用语音。使用 --voice 参数指定语音。
| 语音名称 | 语言 | 性别 | 风格 |
|---|---|---|---|
| af-ZA-AdriNeural | 南非荷兰语 | 女 | 友好, 积极 |
| ar-EG-SalmaNeural | 阿拉伯语 (埃及) | 女 | 友好, 积极 |
| ar-AE-HamdanNeural | 阿拉伯语 (阿联酋) | 男 | 友好, 积极 |
| am-ET-AmehaNeural | 阿姆哈拉语 | 男 | 友好, 积极 |
运行以下命令获取完整的语音列表,包括名称、性别、内容类别和语音风格。
$ edge-tts --list-voices
输出包含语音名称、性别、内容类别和语音个性特征等详细信息。
选择不同语言和地区的语音,轻松生成本地化内容。
支持输出 MP3 音频和 SRT 字幕文件,方便集成到各类项目中。
# 使用阿拉伯语 (埃及) 语音生成音频
$ edge-tts --voice ar-EG-SalmaNeural --text "مرحبا كيف حالك؟" --write-media hello_arabic.mp3 --write-subtitles hello_arabic.srt
除了命令行工具,你还可以直接在 Python 代码中导入和使用 edge-tts 模块,实现更灵活的集成。