尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

3 分钟跑通 edge-tts:免费文本转语音,从安装到批量产出

发布时间:2026/9/14 14:26:28

资讯中心
01
ARTICLE

3 分钟跑通 edge-tts:免费文本转语音,从安装到批量产出

3 分钟跑通 edge-tts:免费文本转语音,从安装到批量产出
3 分钟跑通 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 是一个调用微软 Edge 在线文本转语音服务的 Python 库与命令行工具。不需要 Windows、不需要 Edge 浏览器、不需要 API 密钥即可免费生成 MP3 音频与 SRT 字幕适合需要在项目中集成语音功能的开发者与内容创作者。信息速览项目内容语言 / 依赖Python ≥3.7仅依赖 aiohttp、certifi、tabulate、typing-extensions许可证LGPLv3安装命令pip install edge-tts库pipx install edge-tts仅命令行运行环境Linux / macOS / Windows 跨平台edge-playback在非 Windows 上需另装 mpv典型场景有声读物配音、视频解说、SRT 字幕、批量语音合成当前版本7.2.8见 src/edge_tts/version.py仓库地址https://gitcode.com/GitHub_Trending/ed/edge-tts clone 用输出格式固定为 24kHz 采样率、48kbps 单声道 MP3audio-24khz-48kbitrate-mono-mp3定义在 src/edge_tts/constants.py。安装与首次运行pip install edge-tts # 同时装上库和 edge-tts / edge-playback 两个命令 # 若只跑命令行用 pipx 隔离安装避免污染项目依赖 pipx install edge-tts执行edge-tts --version预期输出edge-tts 7.2.8说明安装成功。edge-tts --text Hello, world! --write-media hello.mp3 --write-subtitles hello.srt预期输出当前目录生成 hello.mp3音频与 hello.srt字幕两个文件。未指定--voice时使用默认语音 en-US-EmmaMultilingualNeural。跑通典型使用场景生成音频与同步字幕解决配音、有声读物场景下音频和字幕要一起产出的问题edge-tts --text 今天我们来学习 Python 编程基础 --write-media lesson.mp3 --write-subtitles lesson.srt注意点字幕来自服务返回的 SentenceBoundary 事件默认按句对齐Python 调用时把Communicate的boundary参数改成WordBoundary可拿到逐词粒度。省略--write-media且终端为交互式时会提示音频直接写入终端需按 Enter 继续。调节语速、音量、音调解决教学场景放慢语速、配音场景调整听感的问题edge-tts --rate-30% --text 这是一段慢速教学语音 --write-media slow.mp3 # 语速放慢 30% edge-tts --pitch-20Hz --text 让声音更沉稳 --write-media low.mp3 # 音调降低 20Hz注意点负值必须写成等号形式--rate-30%写成空格加负号会被解析器当成新的命令行选项。挑选语音并切换语言解决不同内容、不同受众需要不同音色与语言的问题edge-tts --list-voices # 列出全部可用语音按名称排序 edge-tts --voice ar-EG-SalmaNeural --text مرحبا كيف حالك؟ --write-media arabic.mp3注意点列表实时从微软在线服务返回包含 Name、Gender、ContentCategories、VoicePersonalities 四列--voice只能填列表中真实存在的名称。从文件读取长文本解决长文本不宜直接塞进命令行参数的问题edge-tts -f article.txt --write-media article.mp3 # 从文件读取 cat article.txt | edge-tts -f - --write-media article.mp3 # 从标准输入读取注意点-f与--text互斥库内部已按词与 UTF-8 安全边界自动切分文本无需手动分段。编写批量生成任务把整本书按章节合成属于典型的库 异步并发组合技import asyncio import edge_tts TEXTS [有声书第一章内容。, 有声书第二章内容。, 有声书第三章内容。] VOICE en-GB-SoniaNeural # 语音名以 edge-tts --list-voices 输出为准 async def gen(index, text): out fpart_{index}.mp3 comm edge_tts.Communicate(text, VOICE) await comm.save(out) # 边接收边落盘不在内存里留存整段音频 return out async def main(): # 每个 Communicate 开独立 WebSocket并发控制在个位数避免触发限流 print(await asyncio.gather(*(gen(i, t) for i, t in enumerate(TEXTS)))) asyncio.run(main())同步写法同样成立edge_tts.Communicate(text, voice)之后直接调save_sync(out.mp3)完整写法见 examples/sync_audio_gen_with_predefined_voice.py。另外save()的第二个参数metadata_fname可以把边界事件写成 JSON 文件方便在视频软件里做逐字高亮。排查常见故障现象原因解决方式NoAudioReceived: No audio was received语音名不存在或服务不可达用--list-voices核对语音名检查网络请求 403 /SkewAdjustmentError系统时钟与服务器偏差过大校时库对 403 会自动修正时钟偏斜并重试src/edge_tts/drm.pyedge-playback报缺少依赖非 Windows 平台播放依赖 mpv 命令安装 mpv或改用--write-media生成文件后再播放负数参数不生效-30%被当成命令行选项改写成等号形式--rate-30%长文本中途断开、WebSocket 报错网络中断或服务超时配置--proxy长文本按文件拆分后逐段生成看懂架构与扩展点edge-tts/ ├── src/ │ ├── edge_tts/ │ │ ├── __main__.py # CLI 入口一行调用 util.main() │ │ ├── util.py # 命令行参数解析、TTS 执行与 SRT 落盘 │ │ ├── communicate.py # WebSocket 核心发送 SSML接收音频与边界事件 │ │ ├── voices.py # 拉取并筛选语音列表list_voices / VoicesManager │ │ ├── data_classes.py # TTSConfig校验 voice / rate / volume / pitch │ │ ├── submaker.py # 累积边界事件产出 SRT 文本 │ │ ├── srt_composer.py # 把字幕条目列表渲染为 SRT 格式 │ │ ├── drm.py # 生成 Sec-MS-GEC 令牌自动校正时钟偏斜 │ │ ├── constants.py # 服务地址、默认语音、请求头 │ │ └── exceptions.py # 异常体系NoAudioReceived、WebSocketError 等 │ └── edge_playback/ # edge-playback 命令实时播放生成的音频 ├── examples/ # 同步、异步、流式共 6 个可运行示例 └── tests/ # 长文本集成测试脚本调用链是__main__.py→util.py:amain()→Communicate.stream()后者先经drm.py生成令牌建立 WebSocket再用data_classes.py校验后的参数构建 SSML 发出逐块产出音频与边界数据CLI 路径把这些块落盘或送入submaker.py。想扩展自定义参数改动点集中在data_classes.py的校验与communicate.py中mkssml的 SSML 拼装两处。落实工程实践建议流式落盘而非缓存save()边接收边写文件多章节长文档的内存占用基本恒定。长文本交给自动切分库按 4096 字节在换行、空格处切段跨块偏移用累积音频字节重算字幕时间轴不会漂移。并发控制在个位数每次合成都会新开一个 WebSocket批量任务用asyncio.gather并行即可不建议同时开几十个连接。按网络调整超时连接超时默认 10 秒、读取超时默认 60 秒弱网环境可在Communicate构造时传connect_timeout与receive_timeout。码率不合就后处理输出固定 48kbps 单声道若视频平台要求更高码率或立体声用 ffmpeg 转一次即可。速查卡edge-tts 调用微软 Edge 在线文本转语音服务免费产出 MP3 与 SRT 字幕无需密钥与 Windows。场景命令 / 入口生成音频加字幕edge-tts --text ... --write-media out.mp3 --write-subtitles out.srt查看语音列表edge-tts --list-voices长文本从文件读取edge-tts -f article.txt --write-media out.mp3实时播放edge-playback --text ...非 Windows 需 mpvPython 异步生成edge_tts.Communicate(...)await save()见 examples/Python 同步生成Communicate(...).save_sync(out.mp3)核心源码src/edge_tts/communicate.py、src/edge_tts/voices.py、README.md。【免费下载链接】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),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。