ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

edge-tts 文本转语音实战指南:免费调用微软在线语音合成的完整教程

edge-tts 文本转语音实战指南:免费调用微软在线语音合成的完整教程 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-tts做视频教程配中文旁白、批量产出有声读物、或者给自己的应用加一句语音反馈通常第一反应是去找一个付费的语音合成TTSAPI。其实不需要——开源项目edge-tts把微软 Edge 浏览器内置的在线文本转语音服务封装成了 Python 库和命令行工具不安装 Edge、不限 Windows、不需要任何 API Key输入文字即可拿到 MP3 音频文件全程免费。它到底是什么用一句话概括edge-tts 是一个 Python 模块 两条命令行工具edge-tts和edge-playback通过微软 Edge 使用的同一套在线合成接口把任意文本合成为音频。适合三类人只会敲命令、想要最快出音频的普通用户需要在脚本/服务里集成 TTS 的 Python 开发者对成本敏感、不想申请密钥和付费的独立开发者它默认输出 24kHz、48kbps 的立体声单声道 MP3可直接拖进剪辑软件或播放器使用。安装并跑通第一条语音整个过程就两条命令。先安装如果只在终端里用推荐用pipx装成独立命令避免污染 Python 环境pip install edge-tts # 或pipx install edge-tts然后让服务合成一句话同时落盘音频和字幕edge-tts --text 你好世界 --write-media hello.mp3 --write-subtitles hello.srt执行完当前目录下会多出hello.mp3和hello.srt两个文件用任意播放器打开就能听到结果。如果只是想立刻听个响而不存文件可以换用伴生的播放命令非 Windows 系统需要本机装有 mpv 命令行播放器edge-playback --text 这是一段即时播放的语音核心能力拆解查看并挑选语音语音库覆盖中文、英语、阿拉伯语、法语等全球主流语言每条记录都带性别、内容类别和风格描述方便按场景挑选edge-tts --list-voices输出示例节选名称性别风格zh-CN-XiaoxiaoNeuralFemale亲和、温暖ar-EG-SalmaNeuralFemaleFriendly, Positive选好名字后用--voice参数指定即可例如edge-tts --voice zh-CN-XiaoxiaoNeural --text 今天天气真好 --write-media weather.mp3音频与字幕一次出齐--write-media和--write-subtitles可以分开用也可以同时用。字幕是标准 SRT 格式时间轴来自服务返回的词语/句子边界元数据直接能丢进剪映、OBS 或视频剪辑器当外挂字幕。从命令行到 Python 代码同一个能力在代码里是edge_tts.Communicate对象核心方法就两个save()存文件stream()流式读取音频块和字幕元数据。异步、同步save_sync/stream_sync两套接口都有仓库examples/目录下按同步/异步 × 生成/流式共提供了 6 个可运行的参考脚本照着抄最快。三个可直接落地的用法教程视频旁白生产线把脚本文案按章节拆成多个文本文件写个循环逐个调用合成输出01.mp3、02.mp3再导入时间线。长文案会被库自动按 4KB 边界分块发送不会因单次文本过长而失败。有声书 外挂字幕save()的第二个参数可以同时写一个 JSON 元数据文件每行记录一段文本的偏移量与时长配合SubMaker就能在纯 Python 里生成 SRT不依赖命令行。给自己的应用加嘴Home Assistant 的 edge-tts 语音插件、Podcastfy 这类项目都是直接基于该模块集成的。你只需要在程序里import edge_tts把要播报的字符串传进Communicate就能拿到音频字节流。避坑指南现象--rate -50%报错或被当成参数名原因负号开头的值会被命令行解析器误认为一个新选项。 解法负值必须紧贴等号书写例如--rate-50%、--pitch-10Hz、--volume-50%。现象Linux / macOS 上edge-playback没声音或找不到播放器原因该命令在非 Windows 平台上依赖 mpv 命令行播放器Windows 则自带播放通道。 解法在终端安装 mpv 后重试或干脆用edge-tts先生成 mp3再交给任何播放器。现象合成报NoAudioReceived或网络异常原因服务端拒绝返回音频参数写错、网络不通、或触发了 403 风控OCR 出来的 PDF 文本里常夹带竖制表符等不可见字符也会直接导致服务端报错。 解法核对--voice名称拼写确认能访问微软服务必要时在Communicate里传proxy参数走代理库内部会自动清洗不兼容控制字符403 也会尝试自动重连一次仍失败时保持最新版即可。现象想自定义 SSML 却被告知不支持原因微软服务端只接受由 Edge 自身生成的 SSML且只允许单个voice加单个prosody标签。 解法放弃手写 SSML。凡是prosody里能调的参数语速、音量、音调rate/volume/pitch三个选项已经全部暴露出来见下一节。进阶用法调语速、音量、音调三个参数分别接受百分比和赫兹值正负皆可负值记得用写法edge-tts --rate-50% --text 慢速朗读 --write-media slow.mp3 edge-tts --volume-50% --text 小声一点 --write-media quiet.mp3 edge-tts --pitch-10Hz --text 低沉一点 --write-media deep.mp3Python 里批量合成循环创建Communicate并await save()即可。注意它是异步接口批量任务可以并发发起每个Communicate实例的stream()只能调用一次多段文本请各建一个实例。流式边下边存字幕同步写法下遍历stream_sync()的 chunktype audio的写入文件WordBoundary/SentenceBoundary的喂给SubMaker最后get_srt()出字幕——完整代码见 examples/sync_audio_streaming_with_predefined_voice_subtitles.py。适合谁 / 注意什么适合谁想零成本获得高质量多语言语音的内容创作者需要 TTS 但不想维护密钥和账单的独立开发者做无障碍朗读、字幕相关功能的项目。注意什么它走的是微软 Edge 的非官方消费接口接口协议或服务端风控策略变化时可能短暂失效生产环境请加失败重试和降级方案它也不提供 SLA不适合对可用性有硬性要求的商业主链路。资源链接官方文档README.md示例代码6 个同步/异步参考脚本examples/核心源码通信协议、字幕生成、语音列表src/edge_tts/播放模块源码src/edge_playback/想通读源码可先克隆仓库git clone https://gitcode.com/GitHub_Trending/ed/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-tts创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表