1. Edge TTS(全称 Microsoft Edge Text-to-Speech)是微软基于 Edge 浏览器和 Azure 认知服务开发的免费文本转语音工具,支持将文字快速转换为自然流畅的语音,且无需复杂配置。
2. 模块安装:pip install edge-tts
3. 常见使用方式
1)浏览器插件(零代码,适合快速使用)
在 Edge 浏览器的「扩展商店」中搜索 “Text to Speech (TTS)”(微软官方或第三方合规插件),安装后:
选中网页中的文字;
点击插件图标,选择语音类型和参数;
点击 “播放” 即可听到语音,或选择 “下载” 保存音频。
2)2. Python 库(edge-tts,适合批量 / 自动化需求)
需先安装库:pip install edge-tts
import edge_tts
# 配置参数:语音(中文女声)、文本、输出文件
VOICE = "zh-CN-XiaoxiaoNeural" # 语音标识(可更换为其他语音)
TEXT = "你好,这是 Edge TTS 生成的语音。"
OUTPUT_FILE = "output.mp3"
communicate = edge_tts.Communicate(TEXT, VOICE)
communicate.save(OUTPUT_FILE)
可通过 edge-tts --list-voices 命令查看所有支持的语音标识。
4. asyncio.run(edge_tts.Communicate(text, voice="zh-CN-XiaoxiaoNeural").save("output.mp3"))为什么要用asyncio?
回答:在 edge-tts 中使用 asyncio 是因为该库的核心功能(如语音生成和保存)是异步实现的。
使用 asyncio 可以让程序在等待网络响应时,不阻塞其他任务的执行,从而更高效地利用资源。
edge-tts 的 Communicate.save() 方法是一个异步函数(用 async def 定义),必须在异步环境中运行。而 asyncio.run() 正是 Python 用于启动异步程序的入口函数,它会创建一个事件循环,执行异步任务并管理其生命周期。
简单来说:因为 edge-tts 的核心功能是异步的,所以必须用 asyncio 来运行它,否则会报错。这是库设计者为了提高网络操作效率而采用的实现方式。