ARTICLE DETAIL

资讯详情

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

Edge-TTS 文本转语音:一条命令把一段文字变成能直接用的 mp3

Edge-TTS 文本转语音:一条命令把一段文字变成能直接用的 mp3 Edge-TTS 文本转语音一条命令把一段文字变成能直接用的 mp3【免费下载链接】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给视频配旁白时30 秒的文案往往比剪辑本身更费事找声音、清口音、再对齐画面来回折腾半天。Edge-TTS是一个复用微软 Edge 浏览器自带语音服务的 Python 库做文本转语音不需要装浏览器、不需要 Windows、不需要 API 密钥跑一条命令就能产出 mp3整个过程属于免费语音合成不收一分钱。免费到什么程度声音覆盖哪些语言免费在这里不是营销词而是真的无密钥、无订阅、无配额申请。装好包之后它通过 WebSocket 直连微软的语音后端核心的请求与解析逻辑都在 src/edge_tts/communicate.py 里想看懂协议可以直接翻这份源码。声音列表也不是写死在包里的运行时从服务端实时拉取总量在 100 种覆盖中文、英文、日语、法语等主流语言还包含各语言的地区变体。不指定声音时它使用内置的多语言声音 en-US-EmmaMultilingualNeural所以第一句话就能出声。一条命令出第一句语音命令行用户用 pip 装就够了如果只想要一个独立工具而不是 Python 依赖换 pipx 安装后面的用法完全一样。pip install edge-tts装完后的下一句命令就是把文字变成音频输出文件是一个 48kbps 单声道 mp3任何播放器都能直接打开。edge-tts --text 这是第一句语音合成 --write-media hello.mp3如果想不生成文件直接听还有一个伴随命令 edge-playback 负责流式播放它在非 Windows 系统上依赖 mpv 播放器先装好 mpv 再跑否则会没有声音。挑选声音微调语速、音量、音调 ️默认声音未必合你口味。先把完整名单拉出来每行一个声音带名称、性别、用途分类和性格标签四列下面截取前三列的三行作参考edge-tts --list-voices Name Gender ContentCategories zh-CN-XiaoxiaoNeural Female General en-US-JennyNeural Female General挑中之后把名字交给--voice。听感不对时还有三个旋钮--rate管语速、--volume管音量两者用百分比偏移--pitch管音调用赫兹偏移。edge-tts --voice zh-CN-XiaoxiaoNeural --text 欢迎体验 Edge-TTS --write-media welcome.mp3 edge-tts --rate-30% --text 语速降低了百分之三十 --write-media slow.mp3 edge-tts --volume-20% --text 音量调低了一些 --write-media quiet.mp3 edge-tts --pitch-30Hz --text 音调压低了 --write-media low.mp3注意负值必须写成--rate-30%这种紧贴参数名的形式中间加空格时负号会被当成独立参数解析而报错。需要字幕的话再补一个--write-subtitles时间戳来自服务端返回的句子边界srt 的拼接逻辑在 src/edge_tts/submaker.py。代码里接入同步与异步各 3 行同步是入口最短的写法一次调用产出一次结果适合一次性脚本和简单自动化import edge_tts communicate edge_tts.Communicate(Hello World!, en-GB-SoniaNeural) communicate.save_sync(test.mp3)程序本身长期运行、或者要并发处理多段文本时换异步写法它能挂进应用现有的事件循环stream 接口还支持逐段取出音频和边界事件import asyncio import edge_tts async def main(): communicate edge_tts.Communicate(异步语音合成, zh-CN-XiaoxiaoNeural) await communicate.save(async.mp3) asyncio.run(main())两套现成的组合用法 做视频自媒体、要批量产旁白的话我会这样配旁白稿写进 narration.txt用-f整篇读入同时加--write-subtitles一条命令出齐 mp3 和逐句对齐的 srt成品直接进剪辑软件不用再手动排字幕时间轴edge-tts -f narration.txt --voice zh-CN-YunxiNeural --write-media out.mp3 --write-subtitles out.srt做多语言应用、想给界面加语音提示我会直接调 Python API启动时用 list_voices 拉一次声音清单放进设置页用户点按钮时把对应的声音名传给 Communicate 现场合成短句。异步版本嵌进现有循环整个功能十几行代码就能收口不用另起服务进程。常见的三个坑以及怎么绕开偶尔遇到 NoAudioReceived 或直接没声音多半是声音名拼错、或者网络到不了微软的服务端。先对着名单逐字核对名字再换网络重试这个免费服务没有 SLA偶发的 403 限流等几秒也会自行恢复。长文本合成偏慢是另一件常见的事。库内部按 4096 字节把文本切段逐段请求文本越长往返越多等待自然拉长。要稳定产出自己按段落切开长文分别生成 mp3 之后再拼接比指望一条命令跑完更可控。在 Linux 或 macOS 上跑 edge-playback 没声音多半不是库的问题它在非 Windows 平台上依赖 mpv装好这个播放器播放功能就回来了。想先感受一下效果可以先跑下面这条命令听完再决定要不要把它接进自己的工作流edge-tts --text 你好世界 --write-media hello_world.mp3【免费下载链接】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),仅供参考
返回列表