
edge-tts 文本转语音免费调用微软语音合成的 3 步完整指南【免费下载链接】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用 edge-tts 文本转语音直接调用微软 Edge 浏览器的在线语音合成服务不需要 API 密钥不需要 Windows也不需要安装 Edge 客户端。给视频配旁白、给文档加朗读功能时商用 TTS API 的按量计费往往是成本门槛而 edge-tts 完全免费。本文带你完成三件事5 分钟装好并生成第一段语音掌握语音选择与语速音调调整再把同步/异步接口集成进自己的项目。核心能力速览edge-tts 能做什么 免费调用微软神经网络语音合成直接复用 Edge 浏览器背后的在线 TTS 服务输入文本即返回音频无需申请账号或付费。价值配音、朗读这类一次性需求几乎零成本。百余种多语言语音一键切换内置覆盖英语、中文、法语、阿拉伯语等语言区的神经语音通过--list-voices查看清单并按名称切换。价值同一套流程可产出不同语言、不同性别的配音。mp3 音频与 SRT 字幕同步生成服务返回的词级时间戳由库内部转换为字幕一次命令同时落盘音频和字幕文件。价值做视频、做无障碍内容时不用再做第二遍对齐。命令行与 Python 模块双模式命令行适合快速产出文件Python 模块提供同步save_sync()与异步stream()两种接口。价值从脚本到 Web 服务都能直接集成。环境准备与首次运行一键安装步骤只需 Python 环境安装分两种写法pip install edge-tts # 需要在代码中 import 时 pipx install edge-tts # 只使用命令行工具时推荐验证信号终端执行edge-tts --help能输出参数帮助且不报错说明安装成功。最小示例只需一条命令edge-tts --text Hello, world! --write-media hello.mp3 --write-subtitles hello.srt验证信号当前目录出现hello.mp3和hello.srt播放 mp3 能听到英文女声srt 里是带时间码的字幕。执行下面命令可查看全部可用语音$ edge-tts --list-voices Name Gender ContentCategories VoicePersonalities af-ZA-AdriNeural Female General Friendly, Positive af-ZA-WillemNeural Male General Friendly, Positive ar-AE-FatimaNeural Female General Friendly, Positive验证信号能看到数十行带名称、性别、适用场景的表格说明当前网络可正常访问微软的语音列表服务。核心功能实战三种高频使用场景场景一为多语言内容选对声音。不同语言用不同 voice 名称先查清单再指定即可edge-tts --list-voices edge-tts --voice ar-EG-SalmaNeural --text مرحبا كيف حالك؟ --write-media hello_in_arabic.mp3效果--voice换成任意清单里的名称即可切换发音人阿拉伯语、中文、英语各取所需。场景二按场景调语速、音量、音调。三个参数独立可调负值必须用连接写法否则会被当成新选项解析edge-tts --rate-50% --text Hello, world! --write-media slow.mp3 edge-tts --volume-50% --text Hello, world! --write-media quiet.mp3 edge-tts --pitch-50Hz --text Hello, world! --write-media low.mp3效果slow.mp3 节奏减半、quiet.mp3 音量减半、low.mp3 音调下移同一句话立刻有了教学/低语/沉稳三种版本。场景三长文本文件生成带字幕配音。有稿子的配音、有声书章节把文本存成 txt 后用--file读入避免命令行转义问题edge-tts --file 001-long-text.txt --write-media long.mp3 --write-subtitles long.srt效果长音频与逐句字幕一次产出仓库的tests/001-long-text.txt就可以直接拿来试。代码集成与进阶用法Python 同步与异步接口在 Python 里同步生成三行代码完成建对象 → 指定文本与语音 → 落盘import edge_tts communicate edge_tts.Communicate(Hello World!, en-GB-SoniaNeural) communicate.save_sync(test.mp3) # 同步写入 mp3执行完检查文件存在且时长约两秒即为成功。异步场景用stream()拿到音频块与时间戳配合SubMaker边写音频边生成字幕import asyncio import edge_tts async def amain(): communicate edge_tts.Communicate(Hello World!, en-GB-SoniaNeural) submaker edge_tts.SubMaker() with open(test.mp3, wb) as f: async for chunk in communicate.stream(): if chunk[type] audio: f.write(chunk[data]) else: # WordBoundary / SentenceBoundary 时间戳 submaker.feed(chunk) open(test.srt, w, encodingutf-8).write(submaker.get_srt()) asyncio.run(amain())跑完后test.mp3和test.srt同时生成这套写法可直接放进 aiohttp/Flask 之类的异步框架。批量任务则对每个文本各建一个Communicate用asyncio.gather并发执行想按内容动态换语音参考 examples/ 里的async_audio_gen_with_dynamic_voice_selection.py。常见问题与调优安装排错和网络优化edge-playback播放不了。原因非 Windows 系统依赖 mpv 播放器未安装。解法安装 mpv或不用实时播放改用--write-media直接产出文件。--rate -50%报错。原因负号后的内容被 shell/解析器当成新选项。解法写成--rate-50%--volume、--pitch同理。语音列表拉取失败或合成中断。原因服务完全在线网络抖动、代理或系统时钟偏差都可能触发。解法换稳定网络重试受限网络加--proxy参数。想传自定义 SSML 却不可用。原因微软只接受 Edge 客户端自己生成的 SSML已移除该支持。解法改用内置的--rate、--volume、--pitch能覆盖 prosody 常用调整。调优技巧长文本优先--file读文件命令行里塞大段引号容易出转义问题批量生成用异步并发而非串行但并发数控制在个位数避免触发服务限流正式定稿前先对 2–3 个候选语音各生成 10 秒样音再全量合成项目结构与二次开发入口仓库布局很扁平核心逻辑集中在一个包里edge-tts/ ├── examples/ # 6 个同步/异步使用示例 ├── src/ │ ├── edge_tts/ # 核心包 │ │ ├── communicate.py # 通信与音频流 │ │ ├── voices.py # 语音列表 │ │ └── submaker.py # SRT 字幕 │ └── edge_playback/ # 本地播放命令 └── tests/ # 长文本测试数据各模块一句话职责communicate.py核心通信层负责与微软服务建立 WebSocket、发送文本、接收音频块并封装成Communicate接口voices.py在线拉取全部语音清单提供按语言、性别等属性筛选语音的工具submaker.py消费WordBoundary/SentenceBoundary时间戳组装标准 SRT 文本__main__.pyutil.pyedge-tts命令行的参数解析与主流程入口二次开发建议从 src/edge_tts/communicate.py 读起它定义了stream()的数据流字幕相关改动看 src/edge_tts/submaker.py。参与社区与后续探索需要读源码或提 PR 时用git clone https://gitcode.com/GitHub_Trending/ed/edge-tts获取仓库。可以参与的三个具体方向给examples/补充新的集成示例如框架内流式返回为tests/增加多语言长文本用例完善 README 中语音选择与错误处理的说明。跑通本文的示例后建议接着过一遍 examples/ 目录下的六个脚本把流式合成接到你自己的应用里。【免费下载链接】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),仅供参考