资讯动态

edge-tts 实战:免费在线语音合成,把文本变成 MP3 和 SRT 字幕

发布时间:2026/10/21 17:31:56 来源:尧图企业网站定制
edge-tts 实战免费在线语音合成把文本变成 MP3 和 SRT 字幕【免费下载链接】edge-ttsUse Microsoft Edges online text-to-speech service from Python WITHOUT needing Microsoft Edge项目地址: https://gitcode.com/GitHub_Trending/ed/edge-tts给课件录音、做有声书时商业 TTS 接口往往要先注册账号、申请密钥、按量计费。edge-tts 直接调用 Microsoft Edge 内置的在线语音合成服务一行命令把文本转成 MP3 音频和 SRT 字幕不要 API key、不要账号只要装好 Python 就能用也不依赖 Windows 或 Edge 浏览器本身。edge-tts 安装步骤与验证先安装pip install edge-tts如果只用edge-tts、edge-playback两个命令而不用 Python 模块官方 README 建议改用 pipx 隔离安装pipx install edge-tts然后跑第一条命令edge-tts --text Hello, world! --write-media hello.mp3 --write-subtitles hello.srt成功的标志有三点当前目录多出hello.mp324kHz 单声道、48kbps 恒定码率 MP3和hello.srt带时间戳的字幕两个文件运行过程中 stderr 会显示一条进度条例如42%|██████... | 1.5MB 00:0300:04按已收到音频的比例推进edge-tts --version能打印版本例如edge-tts 7.3.1。一个默认行为值得留意不写--write-media时音频直接输出到标准输出方便接管道在交互终端里这样做命令会先警告并等你按回车确认CtrlC 可取消。edge-tts 能力总览能力适用场景触发方式文本合成 MP3单条配音、批量产出音频edge-tts --text ... --write-media out.mp3同步生成 SRT 字幕课件视频、有声书加字幕上一命令加--write-subtitles out.srt列出全部声音挑选 voice 名称edge-tts --list-voices合成完立即播放试听声音edge-playback --text ...从文件或 stdin 读文本长讲义转有声、流水线接入edge-tts --file book.txt或--file -调语速 / 音量 / 音调课程慢速朗读、降音--rate、--volume、--pitchPython 合成 API写进自己的程序edge_tts.Communicate声音按属性筛选条件或随机选音VoicesManageredge-tts 参数速查参数作用取值示例默认值-t/--text要合成的文本你好必填与--file二选一-f/--file从文件读文本-表示 stdinbook.txt无-v/--voice声音名用--list-voices查ar-EG-SalmaNeuralen-US-EmmaMultilingualNeural--rate语速20%、-50%0%--volume音量-10%0%--pitch音调-20Hz0Hz--write-media音频写入文件hello.mp3无音频走 stdout--write-subtitlesSRT 写入文件-表示输出到 stderrhello.srt无--list-voices列出所有声音后退出无值—--proxyTTS 与语音列表请求的代理http://127.0.0.1:7890无--no-progress隐藏进度条无值stderr 为终端时自动显示--list-voices输出 Name、Gender、ContentCategories、VoicePersonalities 四列表格声音名称以实际输出为准。典型场景实战长讲义读成有声书目标讲义文本文件直接变 MP3 SRT不做任何预处理。操作edge-tts --file lecture.txt --write-media lecture.mp3 --write-subtitles lecture.srt产出一对同目录文件。长文本内部按 4096 字节切段发送切分点优先落换行、其次空格且不会截断多字节 UTF-8 字符中文长文不会切出乱码字幕时间戳按实际收到的音频字节重新校正长音频也不会越滚越漂。切分逻辑在 src/edge_tts/communicate.py。挑声音再试听目标不凭记忆猜声音名先查后定。操作edge-tts --list-voices edge-playback --voice 声音名 --text 试一句产出试听满意的声音名正式生成时传同一个--voice。Windows 下 edge-playback 开箱即用其他平台需要先装mpv命令行播放器。edge-tts 的参数除--write-media、--write-subtitles、--list-voices在 edge-playback 下同样可用。管道传文本目标上游命令的输出不落中间文件直接进语音合成。操作cat notes.txt | edge-tts --file - --write-media notes.mp3产出notes.mp3。--file -表示从 stdin 读文本。接入 edge-tts 到自己的代码最短可运行示例import edge_tts communicate edge_tts.Communicate(Hello World!, en-GB-SoniaNeural) communicate.save_sync(test.mp3)同步与异步的对应关系save_sync阻塞到文件写完适合普通脚本asyncio 程序里用await communicate.save(...)可顺带写一份边界元数据文件要逐块处理实时字幕、边合成边写时遍历communicate.stream()同步场景用等价的stream_sync()构造参数除 voice、rate、volume、pitch 外还有boundary词边界或句边界默认句边界、proxy以及connect_timeout、receive_timeout默认 10 秒与 60 秒。仓库自带六个完整脚本覆盖同步/异步、生成与流式两种模式参考 examples/。edge-tts 避坑记录现象--rate -50%直接报错。原因以减号开头的值被命令行解析成新选项。解法用等号形式--rate-50%--volume、--pitch同理。现象合成中文文本却用英文口音朗读。原因默认声音是en-US-EmmaMultilingualNeural。解法显式传--voice名称从--list-voices输出里选。现象脚本里重定向后看不到进度条。原因进度条只在 stderr 是终端时显示--write-subtitles -和--no-progress也会关闭它。解法属设计行为需要进度条就在终端里直接运行。现象Linux / macOS 上跑 edge-playback 提示 mpv 未安装。原因非 Windows 平台的播放交给 mpv。解法安装 mpvWindows 无此要求。现象想自己拼 SSML 微调参数发现入口没了。原因服务端只接受 Edge 自己生成的 SSML自定义 SSML 支持已移除。解法语速、音量、音调直接用--rate、--volume、--pitch三个参数覆盖。源码与文档深入索引项目文档README.md使用示例脚本examples/合成核心长文本切分、SSML 组装、WebSocket 流src/edge_tts/communicate.py声音列表与属性筛选src/edge_tts/voices.pySRT 字幕生成src/edge_tts/submaker.py命令行入口与参数解析src/edge_tts/util.py播放模块src/edge_playback/默认声音与音频格式常量src/edge_tts/constants.py下一步跑一次edge-tts --list-voices按 ContentCategories 和 Gender 两列筛出候选用edge-playback --voice 声音名 --text ...试听定稿满意后用--write-media加--write-subtitles产出第一对音频与字幕文件。【免费下载链接】edge-ttsUse Microsoft Edges online text-to-speech service from Python WITHOUT needing Microsoft Edge项目地址: https://gitcode.com/GitHub_Trending/ed/edge-tts创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑