2026年了,你还在为语音合成付费?这款完全免费、开源、零门槛的工具,正在让商业TTS服务瑟瑟发抖。


一、Edge-TTS 到底是什么?

简单来说,Edge-TTS 是一个基于微软 Azure Cognitive Services 的开源文本转语音工具,它直接调用微软 Edge 浏览器内置的在线语音引擎,却不需要你安装 Edge、不需要 Windows 系统、更不需要申请任何 API 密钥

特性 Edge-TTS 商业 TTS(如 Google TTS)
费用 ✅ 完全免费 ❌ 按量付费
API 密钥 ❌ 不需要 ✅ 必须申请
系统要求 跨平台(Win/Mac/Linux) 跨平台
语言支持 40+ 种语言,300+ 种声音 200+ 种语言
语音质量 ★★★★☆ ★★★★★
延迟 ~200ms ~150ms

一句话总结:免费工具中的天花板,性价比之王。


二、安装:一行命令,5秒搞定

打开终端,执行:

pip install edge-tts

如果你只需要命令行工具,强烈推荐用 pipx 隔离安装:

pipx install edge-tts

💡 国内用户如果遇到下载慢,可以加清华镜像源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple edge-tts

验证安装成功:

edge-tts --version

三、快速上手:三步生成你的第一段语音

🔥 第一步:最简命令,秒出音频

edge-tts --text "Hello, world!" --write-media hello.mp3

运行完毕,当前目录就会多出一个 hello.mp3 —— 就这么简单。

🔥 第二步:指定中文语音,效果惊艳

edge-tts --voice zh-CN-YunxiNeural --text "大家好,欢迎使用 Edge-TTS 语音合成!" --write-media hello_cn.mp3

zh-CN-YunxiNeural 是微软的"云希"女声,听起来和真人几乎无异。

🔥 第三步:生成带字幕的音频(视频创作者福音)

edge-tts --text "这是一段带字幕的语音示例" --write-media output.mp3 --write-subtitles output.srt

SRT 字幕文件直接丢进剪辑软件,省时省力。


四、语音库探索:从普通话到方言,应有尽有

运行以下命令查看所有可用声音:

edge-tts --list-voices

输出会包含语音名称、性别、语言/地区及风格特点。以下是一些宝藏语音

语音名称 语言 特色
zh-CN-XiaoyiNeural 普通话 晓晓,温暖女声
zh-CN-YunxiNeural 普通话 云希,新闻播报风
zh-CN-YunyangNeural 普通话 云扬,阳光男声
zh-CN-shaanxi-XiaoniNeural 陕西方言 小妮,地道陕西话
zh-CN-liaoning-XiaobeiNeural 东北话 晓北,东北大碴子味
zh-HK-WanLungNeural 粤语 粤语朗读,效果炸裂
zh-TW-HsiaoYuNeural 台湾腔 小宇,台湾普通话
ar-EG-SalmaNeural 阿拉伯语 女性阿拉伯语
en-GB-SoniaNeural 英式英语 优雅英音

实战示例——用粤语读《大话西游》经典台词

edge-tts --voice zh-HK-WanLungNeural \
  --text "曾经有一份真诚的爱情放在我面前,我没有珍惜。如果上天能够给我一个再来一次的机会,我会对那个女孩子说三个字:我爱你。" \
  --write-media love.mp3

听完你会回来感谢我的。


五、高级玩法:精细控制每一个参数

Edge-TTS 支持通过命令行参数调整语音的语速、音量、音调,让你的语音合成真正做到"千人千面"。

参数 说明 示例
--rate 语速(±百分比) --rate=-50% 减速一半
--volume 音量(±百分比) --volume=-30% 降低三成
--pitch 音调(±Hz) --pitch=-50Hz 降低音调

组合示例——慢速低语效果

edge-tts --rate=-40% --volume=-30% --pitch=-20Hz \
  --voice zh-CN-YunxiNeural \
  --text "这是一段语速较慢、音量较低的神秘语音..." \
  --write-media mysterious.mp3

六、Python 集成:开发者的终极武器

Edge-TTS 不仅仅是命令行工具,它更是一个强大的 Python 库,可以无缝集成到你的项目中。

📌 同步生成(最简单)

import edge_tts

communicate = edge_tts.Communicate("你好,世界!", voice="zh-CN-YunxiNeural")
communicate.save_sync("output.mp3")

📌 异步生成(高并发推荐)

import asyncio
import edge_tts

async def generate_speech():
    communicate = edge_tts.Communicate("你好,世界!", voice="zh-CN-XiaoyiNeural")
    await communicate.save("output.mp3")

asyncio.run(generate_speech())

📌 流式传输(实时场景)

import asyncio
import edge_tts

async def stream_audio():
    communicate = edge_tts.Communicate("你好,世界!", voice="zh-CN-YunxiNeural")
    with open("stream.mp3", "wb") as f:
        async for chunk in communicate.stream():
            if chunk["type"] == "audio":
                f.write(chunk["data"])

asyncio.run(stream_audio())

📌 动态选择语音(按条件筛选)

import asyncio
from edge_tts import VoicesManager

async def select_voice():
    voices = await VoicesManager.create()
    # 筛选:女性、中文、普通话
    target = next((v for v in voices if v["Gender"] == "Female" and v["Locale"] == "zh-CN"), None)
    if target:
        communicate = edge_tts.Communicate("你好,世界!", voice=target["Name"])
        await communicate.save("selected.mp3")

asyncio.run(select_voice())

📌 生成字幕(视频制作神器)

import asyncio
from edge_tts import Communicate
from edge_tts.submaker import SubMaker

async def generate_with_subs():
    tts = Communicate("这是一段带字幕的语音", "zh-CN-YunxiNeural")
    submaker = SubMaker()
    
    with open("output.mp3", "wb") as f:
        async for chunk in tts.stream():
            if chunk["type"] == "audio":
                f.write(chunk["data"])
            elif chunk["type"] == "WordBoundary":
                submaker.create_sub((chunk["offset"], chunk["duration"]), chunk["text"])
    
    with open("output.srt", "w", encoding="utf-8") as f:
        f.write(submaker.generate_subs())

asyncio.run(generate_with_subs())

七、实时播放:不保存文件,直接听

edge-playback --text "体验实时语音合成效果"

⚠️ Windows 系统可直接使用;macOS/Linux 需先安装 mpv:
brew install mpv(macOS)或 sudo apt install mpv(Ubuntu)


八、实战应用场景

场景 解决方案
📚 有声读物制作 批量脚本遍历 TXT 文件,自动生成 MP3
🎙️ 每日新闻播客 定时抓取 RSS,自动合成语音推送
无障碍辅助 为视障用户生成网页/文档语音导航
🎬 视频配音 生成 MP3 + SRT 字幕,直接导入剪辑软件
🤖 智能客服 流式传输 + 多角色对话,实时语音响应
🌍 多语言内容 一键切换 40+ 种语言,全球化零成本

九、常见问题排查

问题 解决方案
安装失败 使用国内镜像源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple edge-tts
语音选择无效 先运行 edge-tts --list-voices 确认语音名称
429 错误(请求过多) 实现指数退避重试,或添加代理:--proxy http://your_proxy:port
网络连接失败 Edge-TTS 依赖微软在线服务,确保网络通畅,必要时使用代理
快捷键无效 确认焦点在网页内,且输入法为英文状态

十、写在最后

Edge-TTS 的出现,标志着语音合成技术从"商业服务"走向了"普惠工具"。无需付费、无需密钥、无需特定系统——一行命令,你的代码就能开口说话。

无论你是独立开发者、内容创作者、教育工作者,还是仅仅想给自己的项目加一段语音,Edge-TTS 都是你目前能找到的最优雅的免费方案

现在就打开终端,输入:

edge-tts --text "你好,世界!" --voice zh-CN-YunxiNeural --write-media hello.mp3

然后按下播放键——你会听到未来的声音。 🎧


项目地址:https://gitcode.com/GitHub_Trending/ed/edge-tts

更多示例代码请查看项目 examples/ 目录 🚀

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐