edge-tts 免费语音合成教程:5 分钟让文字开口说话
2026/9/14 12:24:42 网站建设 项目流程

edge-tts 免费语音合成教程:5 分钟让文字开口说话

【免费下载链接】edge-ttsUse Microsoft Edge's 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

上次给 200 条字幕逐句配语音,你卡在第几条?如果一想到配音就头疼,可以停下手头的活看 5 分钟——edge-tts是一个 Python 工具,直接调用微软 Edge 内置的在线语音合成服务,不用申请 API 密钥、不依赖 Windows,把文本变成自然流畅的 MP3,一分钱不花。

🎧 它能替你搞定什么

免费调用微软级语音合成— 不订阅、不要密钥、不用装 Edge 浏览器,浏览器"大声朗读"背后那套神经网络语音引擎直接拿来用。

上百种语言、多种音色— 普通话、英语、法语、阿拉伯语……每种语言都有好几个男声女声,列表里还标了每个音色的性格特点。

音频和字幕一次出齐— 生成 MP3 的同时顺手产出带时间轴的 SRT 字幕,不用在剪辑软件里逐句对轨。

命令行和代码两个入口— 用edge-tts命令快速出音频,或在代码里 importedge_tts模块,看你顺手用哪个。

🚀 从零到跑通

1. 装好 edge-tts

一条命令,半分钟的事:

pip install edge-tts

跑完没报错就算装好了。如果你只打算用命令、不写代码,pipx install edge-tts更干净,会装在独立环境里。

2. 生成第一句语音

装完别急着写代码,先让它开口:

edge-tts --text "你好,这是你的第一句合成语音" --write-media hello.mp3

跑完会在当前目录生成hello.mp3,用任意播放器打开,是一段挺自然的默认英文女声。

3. 列出所有语音,挑一个喜欢的

默认音色是英文的,中文用户得先换人:

edge-tts --list-voices

输出一张表:音色名、性别、适用场景、性格。搜zh-找普通话,zh-CN-XiaoxiaoNeural(甜美女声)和zh-CN-YunxiNeural(男声)用得最多。

4. 加参数,一次出音频加字幕

edge-tts --voice zh-CN-XiaoxiaoNeural --text "今天讲 Python 入门" \ --write-media lesson.mp3 --write-subtitles lesson.srt

跑完得到两个文件:音频和 SRT 字幕,时间点由服务自动对齐,不用手动调。

一句话总结:到这里你只敲了四条命令,就拥有了"文字 → 人声 + 字幕"的完整产线。

🎬 三个真实场景,直接抄作业

场景一:电子书章节转有声书

痛点:一章五万字的书,人工读出来不现实。 解法:用--file把整个文本文件喂给命令,长文本会被自动切块合成,顺手用--rate调快一点更像播客。

edge-tts --file chapter1.txt --voice zh-CN-XiaoxiaoNeural \ --rate=+10% --write-media chapter1.mp3 --write-subtitles chapter1.srt

效果:一章变成一份 mp3 加一份 srt,直接拖进播放器或剪辑软件就是成品。

场景二:批量给短视频配音

痛点:一个短剧拆出 20 个字幕文件,逐个生成音频太慢。 解法:命令天然适合 shell 循环,一个 for 循环扫完整个文件夹。

mkdir -p aud for f in subs/*.txt; do edge-tts --file "$f" --write-media "aud/$(basename "${f%.txt}").mp3" done

效果:跑一遍,aud/目录里音频和字幕文件一一对应,直接进剪辑软件铺轨。

场景三:终端里直接听效果

痛点:每次换音色都要先生成文件再播放,反馈回路太长。 解法:用配套的edge-playback命令,边合成边播放,等价于"打字即发声"。

edge-playback --text "外卖已送达,请开门"

效果:话音立刻从扬声器出来。注意非 Windows 系统要先装 mpv 播放器。

🔌 写进你的项目(代码集成)

如果你只需要在 Flask 或 FastAPI 接口里返回一个 mp3 文件,下面这段同步写法就够:

import edge_tts def make_speech(text: str, voice: str = "zh-CN-XiaoxiaoNeural") -> str: """生成语音,返回本地 mp3 路径""" out = "speech.mp3" communicate = edge_tts.Communicate(text, voice, rate="+10%") communicate.save_sync(out) # 第二个参数可传字幕 json 路径 return out

生产环境注意:

  • 调用外面包一层重试(指数退避),并设置connect_timeout/receive_timeout,防止网络抖动时长时间挂住。
  • 批量任务给Communicate传入共享的aiohttpconnector复用连接,并发控制在 4~8,避免触发服务限流。
  • 长文本不用手动切,库会按 4096 字节、优先在换行/空格处自动切块,并清掉控制字符(比如 OCR 出来的竖制表符)。

🛠 踩坑速查 & 调优手册

踩坑

  • NoAudioReceived或 403→ 服务端拒绝了请求,通常是请求签名过期或系统时钟不准。解法:先pip install -U edge-tts升到最新版,再确认系统时间开了自动同步。
  • --rate -30%不生效或报错→ 负值被当成了新的命令行选项。写成等号形式:edge-tts --rate=-30% --text "..."
  • edge-playback在 Linux/macOS 没声音→ 缺 mpv。brew install mpvsudo apt install mpv;不做实时播放可以无视这条。

调优

  • --list-voices的输出当素材,按语言 + 性别过滤候选,批量试听再定稿。
  • ratevolume用百分比、pitch用 Hz;教学片-30%降速,沉稳感用-20Hz降调。
  • 长文本一律走--file参数,绕开终端引号转义的坑。
  • 字幕粒度可在Communicate构造函数里设boundary,支持词级和句级两种。

🧭 接下来去哪儿

完整示例代码在 examples/ 目录,更多 CLI 参数看 README.md,想深入原理就翻 src/edge_tts/ 下的communicate.pyvoices.py。基于它做二次开发时,建议 fork 一份或写独立脚本,不要直接改仓库里的源码。

以前需要付费 API 才能搞定的语音合成,现在离你只差一条 pip 命令。打开终端,输入pip install edge-tts,30 秒后你会听到第一句合成语音。

【免费下载链接】edge-ttsUse Microsoft Edge's 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询