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做一条讲解视频配旁白成了最慢的环节自己录音要改口型付费的文本转语音TTS接口又要 API 密钥和计费额度。其实有条路子一直在跑——微软 Edge 浏览器内置的朗读服务。Python 项目 edge-tts 可以直接调用这个语音合成服务把文字变成 mp3 语音顺手还能产出带时间轴的字幕不需要装 Edge、不需要 Windows也不需要任何密钥。它是什么直接调用 Edge 的朗读服务edge-tts 是一个 Python 库同时附带edge-tts和edge-playback两个命令行工具对接的就是 Microsoft Edge 的在线语音合成服务。打个比方Edge 浏览器的大声朗读功能背后是一条 WebSocket 通道你把文字发过去它流式返回语音片段。edge-tts 做的就是把这条通道从浏览器里拆出来让你用命令行或几行 Python 就能说话——相当于借用了 Edge 的嗓子但不用装整个浏览器。核心通信逻辑在 src/edge_tts/communicate.py服务地址和请求头定义在 src/edge_tts/constants.py。能力地图文字变 mp3。把--text参数里的文本或文件内容合成为 48kbps 的 mp3 音频默认语音是en-US-EmmaMultilingualNeural。语音配字幕。服务端会回报每个词、每句话的起止时间edge-tts 用 src/edge_tts/submaker.py 把这些事件拼成标准 SRT 字幕文件和语音严格对齐。上百种声音可挑。中文、英语、日语、法语、阿拉伯语等几十个语言区都有男女声可选--list-voices一条命令全列出来还能按性别、语言筛选。边合成边播放。edge-playback命令不落盘直接把语音流交给本地播放器放出来适合快速试听某个声音适不适合。最短上手路径装一条命令pip install edge-tts然后直接合成第一句edge-tts --text Hello, world! --write-media hello.mp3跑完当前目录里多出一个hello.mp3播放即是 Edge 那种自然的女声。如果只用命令行、不想引入 Python 环境把上面的 pip 换成pipx install edge-tts也一样。深入选对声音再微调语速音调列语音、选语音、带字幕生成先看看都有谁edge-tts --list-voices输出是一张表格名称、性别、内容类别、声音个性比如zh-CN-XiaoxiaoNeural女声、通用、Friendly/Positive。挑中一个后把--voice、--write-media、--write-subtitles三个参数一起带上edge-tts --voice zh-CN-XiaoxiaoNeural \ --text 欢迎使用 edge-tts 语音合成服务 \ --write-media hello.mp3 --write-subtitles hello.srt得到两个文件hello.mp3是语音hello.srt是逐句带时间戳的字幕直接能喂给播放器或剪辑软件。在 Python 里生成语音项目自带一组可直接运行的示例见 examples/。异步版是推荐姿势因为一个文本往往要等好几秒import asyncio import edge_tts async def amain(): communicate edge_tts.Communicate(异步语音生成示例, zh-CN-XiaoxiaoNeural) await communicate.save(async_output.mp3) asyncio.run(amain())同步场景下把save_sync换成save的同步版即可edge_tts.Communicate(text, voice).save_sync(test.mp3)一行搞定。Communicate还支持rate、volume、pitch、proxy几个构造参数和命令行选项一一对应。进阶参数微调与组合玩法语速、音量、音调。三个参数都以0为基准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%必须用等号连写写成--rate -30%会被解析成另一个选项。长文本用--file。文本长到塞不进命令行时edge-tts -f text.txt --write-media out.mp3从文件读入-表示从标准输入读。仓库里的 tests/ 就有一个长文本测试的参考。按条件挑声音。Python 侧的VoicesManager可以按属性筛声音不用人肉翻列表参考 examples/async_audio_gen_with_dynamic_voice_selection.pyvoices await VoicesManager.create() match voices.find(GenderMale, Languagees) # 也支持 Localees-AR逐块处理流。不想一次性落盘的话communicate.stream()是一个异步生成器依次吐出audio块和WordBoundary/SentenceBoundary事件自己决定写文件、发播放器还是拼字幕这也是命令行工具字幕功能的底层实现。避坑手册四个大概率会遇到的情况edge-playback 没声音非 Windows。它依赖 mpv 播放器Windows 之外需要先装 mpv否则会报错。纯生成文件用edge-tts则无此问题。负值参数消失了。--rate -30%会被 argparse 当成未知选项改成--rate-30%就正常。这是最常被问的一条。网络或 403 类报错。服务是微软在线接口必须能访问外网网络环境受限时给--list-voices和合成命令加--proxy。完全收不到音频时会抛出NoAudioReceived定义在 src/edge_tts/exceptions.py先换网络再重试。想塞自定义 SSML 会被拒。服务端只接受 Edge 自身生成的 SSML所以 edge-tts 不提供自定义 SSML 入口——但prosody里能调的参数语速、音量、音调都已经以命令参数形式暴露日常够用。一句话收个尾edge-tts 把文字到 mp3压缩成了一条命令字幕、选声、微调都是顺手的附加项。想先听效果的话从这条开始edge-tts --text 你好世界 --write-media hello_world.mp3更多用法细节可以翻 README.md 和 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),仅供参考
返回列表