
edge-tts 文本转语音实战指南一条命令生成免费在线语音与字幕【免费下载链接】edge-ttsUse Microsoft Edges online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key项目地址: https://gitcode.com/GitHub_Trending/ed/edge-ttsedge-tts 是一个直连 Microsoft Edge 在线文本转语音服务的 Python 工具可用命令行或代码输出 MP3 音频与 SRT 字幕无需 API 密钥、无需 Edge 浏览器或 Windows。适合做配音、有声内容或字幕生成的命令行与 Python 用户。它是什么edge-tts 的定位与适用人群先明确它处于哪一层edge-tts 本身不部署任何模型它连接的是 Microsoft Edge 内置大声朗读功能所用的同一在线端点见src/edge_tts/constants.py中的 speech.platform.bing.com 地址把返回的音频流和逐词时间戳落盘或交给你的代码。安装后你会得到三样东西edge-tts命令行工具、edge-playback播放命令以及可直接import的 Python 模块。核心价值有三点。无需密钥与订阅不需要 Azure 账号、资源组或任何 API key装完即用。横向对比之下云端 TTS 产品通常要先开通资源才能发第一个请求。适合个人工具和快速原型。语音列表在线实时获取--list-voices每次从服务端拉取新增语音无需升级包即可用。README 的示例输出已包含南非荷兰语、阿姆哈拉语、阿拉伯语等多种语言且每种语言区分男女声。适合多语言内容制作。音频与字幕一次产出同一条 WebSocket 流同时携带音频数据与词/句边界事件一条命令可同时得到 mp3 和逐句对齐的 SRT 文件src/edge_tts/submaker.py。适合有声读物、教学视频等需要时间轴的场景。3 分钟跑起来安装与首次语音生成定位清楚了实际装一下看它有多轻依赖只有 aiohttp、certifi、tabulate、typing-extensions 四个包要求 Python 3.7 及以上setup.cfg。第一步安装pip install edge-tts成功后终端显示Successfully installed edge-tts-...。如果只想用命令行工具改用pipx install edge-tts可避免污染系统环境。第二步生成第一条语音edge-tts --text Hello, world! --write-media hello.mp3 --write-subtitles hello.srt成功时无任何输出当前目录会多出hello.mp324kHz、48kbps 单声道 MP3和hello.srt两个文件未指定--voice时使用默认语音en-US-EmmaMultilingualNeural。第三步核对结果ls -lh hello.mp3会显示一行文件信息大小通常在几十 KB 量级Windows 下可用dir hello.mp3查看。用任意播放器打开应能听到 Hello, world! 的英文朗读。常见使用场景有声书、视频配音与多语言命令跑通之后看三个实际工作里最常见的用法。电子书转有声内容。通勤想听自己整理的文稿的人可以用-f直接读入整个文件无需手动切段——src/edge_tts/communicate.py中的split_text_by_byte_length会按 4096 字节在换行或空格处自动分段发送edge-tts -f chapter1.txt --write-media ch1.mp3得到的是一整章的 mp3长文本也能一次性处理完。视频配音加字幕。自媒体创作者只需要在生成命令上加一个--write-subtitles得到的 SRT 时间轴与音频逐句对齐可直接导入剪辑工具当字幕轨使用edge-tts -t 今天我们来学习Python编程基础 --write-media lesson.mp3 --write-subtitles lesson.srt多语言配音。做国际化内容的人先用edge-tts --list-voices查目标语言的语音名再用-v指定例如 README 中的阿拉伯语示例edge-tts --voice ar-EG-SalmaNeural --text مرحبا كيف حالك؟ --write-media hello_ar.mp3得到的输出是该语言本地化发音的语音文件。常用参数速查语速、音量、音调与字幕上面的示例只用了默认参数把src/edge_tts/util.py中 CLI 实际暴露的选项整理成表如下参数作用示例值-t, --text要合成的文本Hello, world!-f, --file从文件读取文本-表示标准输入notes.txt-v, --voice语音名称默认en-US-EmmaMultilingualNeuralar-EG-SalmaNeural-l, --list-voices列出全部可用语音后退出无需值--rate语速默认0%-50%--volume音量默认0%20%--pitch音调默认0Hz-20Hz--write-media音频写入文件而非标准输出out.mp3--write-subtitlesSRT 字幕写入文件-表示标准错误输出out.srt--proxy为语音列表与 TTS 请求指定代理http://127.0.0.1:7890--version打印版本号后退出无需值两个细节值得注意-t、-f、-l三者互斥且必选其一负数参数必须与值连写见下一节的排查第 1 条。常见问题排查五类高频报错的处理方法真实网络环境跑下来最常碰到的是下面这几类。--rate -50%不生效或报错现象负数语速、音量、音调被当作新选项解析。原因命令行把-50%识别成了另一个参数。解决等号连写如--rate-50%、--pitch-20Hz。edge-playback提示找不到 mpv现象Linux 或 macOS 上播放命令跑不起来。原因edge-playback依赖 mpv 播放器仅 Windows 例外。解决自行安装 mpv或改用edge-tts先生成文件再播放。报NoAudioReceived没拿到音频现象进程结束但音频文件为空。原因服务端未返回音频常见于语音名不存在、文本为空或连接异常。解决先用--list-voices核对语音名确认文本非空后重试。连接超时或出现 403现象请求长时间无响应或被拒绝。原因所在网络到微软服务端可达性差或 IP 被限流。解决加--proxy http://127.0.0.1:7890走代理。源码对 403 已内置一次自动重试communicate.py中的 DRM 处理但持续失败时仍需代理。找不到自定义 SSML 的入口现象想传自己的 SSML 字符串发现没有对应参数。原因微软只接受 Edge 自身生成的 SSML自定义 SSML 支持已被移除。解决prosody里可用的调整项已暴露为--rate、--volume、--pitch多数需求可覆盖。进阶用法目录结构导读与异步批量参数用熟之后了解代码怎么组织二次开发会更省力。src/edge_tts/communicate.py核心类Communicate负责 WebSocket 连接、SSML 构造与流式解析源码注释明确只建议终端用户接触这一个类。src/edge_tts/voices.pylist_voices()拉取完整语音列表VoicesManager.find()支持按语言、性别等属性过滤。src/edge_tts/submaker.py与srt_composer.py把词/句边界事件转成标准 SRT。src/edge_tts/util.py上文参数表的 argparse 定义所在。examples/6 个可直接运行的脚本覆盖同步保存、异步流式输出、动态选音等写法。批量生成时异步接口能减少串行等待。一个最小可用的批量脚本import asyncio import edge_tts async def batch(): texts [第一条, 第二条, 第三条] for i, t in enumerate(texts): await edge_tts.Communicate(t).save(fout_{i}.mp3) asyncio.run(batch())若不想处理 asyncioCommunicate也提供了同步版save_sync()更完整的写法可对照examples/async_audio_gen_with_predefined_voice.py。edge-tts 的价值集中在三点零密钥、零订阅一条命令同时拿到语音文件与对齐字幕语音库随微软服务端实时更新。想继续深入从仓库examples/里的 6 个脚本改起是最短路径命令行细节可对照根目录的README.md。从终端里挑一段文本生成第一个 mp3 吧。【免费下载链接】edge-ttsUse Microsoft Edges 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),仅供参考