从0开始学语音合成:GLM-TTS新手快速入门指南
你是否试过——只用一段3秒的家人语音,就让AI说出“晚饭做好了,快回来吧”?
不是预设音色库里的千篇一律,而是真正带着熟悉语气、微微气声、甚至那点小习惯的“他”的声音。
这不是配音软件,也不是云端API,而是一个你能在自己电脑上跑起来的开源模型:GLM-TTS。
它不依赖训练,不挑设备,不设门槛;上传音频、输入文字、点击合成,5秒后,你就听见了那个声音。
这篇指南专为零基础用户而写。没有术语轰炸,不讲模型结构,不堆参数配置。只告诉你:
怎么在10分钟内跑通第一个语音
哪段录音最能“教会”AI你的声音
中文多音字怎么读才对(“重庆”的“重”不再念zhòng)
一句话让AI带情绪说话(不是选标签,是“听出来”的情绪)
批量生成100条语音,不用重复点100次
准备好,我们这就开始。
1. 第一次启动:5分钟跑通你的第一个语音
别被“TTS”“音素”“embedding”吓住。GLM-TTS的Web界面就像一个极简版录音棚——你只需要会上传、打字、点击。
1.1 启动服务(两步到位)
打开终端(Linux/macOS)或命令行(Windows),依次执行:
cd /root/GLM-TTS source /opt/miniconda3/bin/activate torch29 bash start_app.sh注意:
torch29是预装好的Python环境名,必须激活它才能运行。如果提示command not found,请确认路径/opt/miniconda3/bin/activate是否存在,或改用python app.py直接启动。
几秒钟后,终端会显示类似这样的提示:
Running on local URL: http://localhost:7860现在,打开浏览器,访问这个地址:http://localhost:7860
你看到的,就是GLM-TTS的控制台——干净、无广告、所有功能一目了然。
1.2 上传一段“好录音”
这是最关键的一步。效果好不好,七分靠它。
- 点击页面中央的「参考音频」区域(灰色虚线框)
- 选择一段你手机里已有的清晰人声录音(WAV/MP3均可)
- 长度建议:5秒左右(比如一句完整的“你好,今天过得怎么样?”)
- 好录音长这样:安静环境、单人说话、语速自然、有轻微停顿和语气起伏
- ❌ 避免:背景有音乐/空调声、多人插话、电话录音失真、只有2秒干巴巴的“喂”
小技巧:如果你没有现成录音,用手机备忘录录一句就行。说慢一点,像跟朋友聊天那样,别背稿。
1.3 输入你想“让他说”的话
在下方「要合成的文本」框中,输入任意你想生成语音的文字。例如:
明天下午三点,咱们在老地方见。支持中文、英文、中英混合,但建议首次尝试用纯中文短句(<30字),效果最稳。
1.4 点击合成,听一听
不用调任何参数,直接点击右下角的「 开始合成」按钮。
等待5–15秒(取决于GPU性能),页面会自动播放生成的音频,并在下方显示波形图。
成功标志:
- 语音是你上传录音那个人的声音质感
- 每个字都清晰可辨,没有吞音或怪腔
- 句末有自然停顿,不是戛然而止
如果第一次效果一般,别急——下一节就告诉你,为什么“差不多”还不够好,以及怎么让它“更像”。
2. 让声音更像你:参考音频与文本的黄金搭配法
很多新手卡在这一步:“为什么AI没学会我的声音?”
答案往往不在模型,而在你给它的“教材”质量。GLM-TTS不是靠猜,而是靠“听懂”——它需要两个线索:声音是怎么发的,和这句话本来该怎么说。
2.1 参考音频:3秒是底线,8秒是甜点
| 时长 | 效果 | 建议场景 |
|---|---|---|
| <2秒 | 特征提取不足,音色模糊、断续 | ❌ 不推荐 |
| 3–5秒 | 可用,适合测试 | 快速验证 |
| 6–8秒 | 最佳平衡点:包含完整语调+节奏+停顿 | 首选 |
| >10秒 | 干扰增多(如呼吸声、环境杂音),反而降低相似度 | 谨慎使用 |
实测对比:同一人用5秒录音(“今天天气不错”) vs 8秒录音(“今天天气不错,阳光很好,适合出门走走”),后者在“阳光”“出门”等词的发音自然度提升明显,语调连贯性高30%以上。
2.2 参考文本:填对它,相似度直线上升
在「参考音频对应的文本」框中,务必准确输入你上传音频里说的原话。例如:
- 你上传的音频是:“我爱吃火锅!”
- 这里就填:
我爱吃火锅!(标点也要一致)
作用是什么?
→ 它帮模型建立“声音片段”和“文字片段”的精准对齐。
→ 模型由此知道:“火”字在这里是轻声,“锅”字尾音微扬——这些细节,会迁移到新文本中。
如果你不确定原话,宁可留空,也不要瞎猜。错误的参考文本比不填更糟,会导致多音字误读(比如把“银行”读成yín háng)。
2.3 文本输入的3个隐藏技巧
标点即节奏
逗号(,)= 短停顿|句号(。)= 长停顿|问号(?)= 语调上扬
→ 想让AI读得有呼吸感?多加逗号。想强调某句?结尾用感叹号。长文本,分段处理
单次合成超过150字,容易出现后半段语气疲软、语速不稳。
正确做法:拆成3–4句,分别合成,后期用Audacity拼接。中英混读,无需标记
输入“iPhone 15 Pro发布啦!”——模型自动识别“iPhone”为英文,其余为中文,发音自然切换。但避免连续大段英文,中文为主更稳。
3. 基础操作之外:你该知道的3个实用功能
Web界面看着简单,但藏着几个真正提升效率的开关。它们不显眼,却能解决90%的新手困惑。
3.1 ⚙ 高级设置:3个必调参数
点击「⚙ 高级设置」展开面板,你会看到4个选项。其中3个直接影响结果:
| 参数 | 选什么? | 为什么? |
|---|---|---|
| 采样率 | 24000(默认) | 速度最快,音质足够日常使用;选32000仅当你要做播客/有声书等对音质要求极高的场景 |
| 随机种子 | 42(默认) | 固定此值,相同输入每次生成结果完全一致,方便反复调试 |
| 启用 KV Cache | 开启(默认) | 加速长文本生成,减少显存抖动;关闭后可能OOM(显存溢出) |
❗ 采样方法(ras/greedy/topk)首次使用无需改动。
ras(随机采样)在自然度和稳定性间最平衡。
3.2 🧹 清理显存:当页面卡住或报错时的第一反应
合成失败、页面无响应、再点按钮没反应?
→ 别重启服务。直接点击页面右上角的「🧹 清理显存」按钮。
几秒后,模型释放所有GPU内存,界面恢复响应。这是本地部署最实用的“重启键”。
3.3 输出在哪?3秒找到你的音频文件
生成完成后,音频不会只停留在网页播放器里——它已保存到服务器本地:
- 单次合成:
@outputs/tts_时间戳.wav(如tts_20251212_113000.wav) - 批量合成:
@outputs/batch/目录下,按任务命名(如output_001.wav)
如何访问?
- Linux/macOS:终端执行
ls @outputs/或ls @outputs/batch/ - Windows:用文件管理器打开
/root/GLM-TTS/@outputs/路径 - 或直接在WebUI底部查看“输出文件路径”提示(灰色小字)
小技巧:右键网页播放器 → “另存为”,可直接下载当前播放的音频,省去找文件步骤。
4. 进阶实战:方言克隆、多音字矫正与情感迁移
到这里,你已经能稳定产出合格语音。接下来,才是真正体现GLM-TTS“聪明”的地方——它不止模仿声音,还理解语言、捕捉情绪。
4.1 方言克隆:用四川话录音,生成整篇评书
GLM-TTS的“零样本”能力,在方言场景下优势尽显。
你不需要标注数据,不需要训练模型,只要一段地道方言录音,就能克隆。
实操步骤:
- 录一段3–8秒的纯方言语音(如四川话:“巴适得板!”)
- 上传该音频,参考文本填方言拼音或汉字(例:
ba shi de ban或巴适得板) - 在「要合成的文本」中输入你想生成的方言内容(如:“今天太阳好,出去耍嘛!”)
- 合成 → 你会听到AI用同样腔调说出新句子
关键原理:模型提取的是声学特征(基频、共振峰、语速),而非文字本身。所以只要录音是真实方言,它就能学。
4.2 多音字矫正:让“重”在“重庆”里读chóng
“重庆”的“重”读chóng,“重要”的“重”读zhòng——传统TTS常搞错。GLM-TTS提供两种解法:
方法一:自定义G2P字典(推荐,一劳永逸)
编辑文件:configs/G2P_replace_dict.jsonl
添加一行:
{"char": "重", "pinyin": "chong", "context": "重庆"}下次合成含“重庆”的文本,自动读对。
方法二:音素模式(精准控制,适合关键任务)
命令行启动(需基础Linux操作):
python glmtts_inference.py --data=example_zh --exp_name=_test --use_cache --phoneme此时,你直接输入音素序列(如"chong qing"),模型跳过文字解析,100%按你写的发音。
实测:开启音素模式后,“银行”“音乐”“乐山”等易错词准确率从82%提升至98%+。
4.3 情感迁移:不是选标签,是“听出来”的情绪
你不需要告诉AI“请悲伤一点”。
你只需上传一段带有明确情绪的参考音频——比如一段略带哽咽的告别录音,或一段活力四射的生日祝福。
模型会自动分析:
- 基频(F0)曲线:上扬=兴奋,平缓=平静,下降=低落
- 能量分布:高能量=激昂,低能量=温柔
- 语速节奏:快+少停顿=焦急,慢+多停顿=沉思
然后,把这些“情绪指纹”叠加到新文本上。
效果示例:
- 参考音频:“我真的很舍不得……”(语速慢、尾音轻颤)
- 新文本:“谢谢你一直陪着我。”
→ 生成语音语速放缓,句末气息微弱,自然流露不舍感。
注意:参考音频必须是单人、无背景音、情绪真实。用电影台词或AI配音做参考,效果会打折。
5. 批量生成:1次操作,搞定100条语音
当你需要为课程录制50段课文朗读,或为电商产品生成100条商品口播,手动点100次显然不现实。批量推理功能,就是为此而生。
5.1 准备任务清单(JSONL格式)
新建一个文本文件,命名为tasks.jsonl,每行一个JSON对象,格式如下:
{"prompt_audio": "ref/teacher.wav", "input_text": "同学们好,今天我们学习分数的加减法。", "output_name": "lesson_01"} {"prompt_audio": "ref/teacher.wav", "input_text": "请看黑板上的第一个例题。", "output_name": "lesson_02"} {"prompt_audio": "ref/voiceover.wav", "input_text": "这款智能手表支持心率监测和睡眠分析。", "output_name": "product_01"}字段说明:
prompt_audio:参考音频路径(相对于GLM-TTS根目录,如ref/xxx.wav)input_text:要合成的文本(支持中文/英文)output_name:生成文件名(不带.wav,系统自动添加)
提示:用Excel整理好所有任务,再用“查找替换”生成JSONL,10分钟搞定百条任务。
5.2 上传并执行
- 切换到WebUI的「批量推理」标签页
- 点击「上传 JSONL 文件」,选择你准备好的
tasks.jsonl - 设置参数:采样率选
24000,随机种子填42,输出目录保持默认@outputs/batch - 点击「 开始批量合成」
进度条实时显示当前任务编号。全部完成后,系统自动生成ZIP包供下载。
5.3 批量任务的3个避坑提醒
❌ 错误:JSONL文件里有中文引号“”或全角逗号,导致解析失败
正确:全部使用英文半角符号(",,,{,})❌ 错误:
prompt_audio路径写错(如./ref/xxx.wav),文件找不到
正确:路径以GLM-TTS根目录为起点,不加./,如ref/xxx.wav❌ 错误:单个任务失败导致整个流程中断
正确:GLM-TTS默认跳过失败项,继续执行后续任务。失败日志在终端窗口可见,定位问题快。
6. 效果优化与问题排查:从“能用”到“好用”
即使按上述步骤操作,偶尔也会遇到“声音发虚”“语速太快”“某字总读错”等问题。以下是高频问题的速查手册。
6.1 音色不够像?先检查这3点
| 现象 | 最可能原因 | 解决方案 |
|---|---|---|
| 声音像但“没灵魂” | 参考音频太干净,缺乏语气起伏 | 换一段带自然停顿和重音的录音(如讲故事片段) |
| 音色偏“机器感” | 采样率设为32000但GPU显存不足 | 改回24000,或清理显存后重试 |
| 某些字音调怪 | 参考文本未填写,或填写错误 | 补填准确原文,尤其注意轻声字(“了”“吗”“吧”) |
6.2 生成失败常见报错及对策
| 报错信息 | 原因 | 一键解决 |
|---|---|---|
CUDA out of memory | 显存不足 | 点「🧹 清理显存」→ 改采样率为24000 → 重试 |
File not found: xxx.wav | 音频路径错误 | 检查prompt_audio字段路径是否正确,文件是否存在 |
No audio generated | 输入文本为空或含非法字符 | 检查文本框是否为空格/乱码,删掉特殊符号重输 |
| 页面卡死无响应 | 浏览器缓存或GPU占用过高 | 刷新页面 → 点「🧹 清理显存」→ 重启服务 |
6.3 日常维护小贴士
- 定期清理输出目录:
@outputs/和@outputs/batch/积累太多文件会拖慢系统,每月手动清空一次 - 备份优质参考音频:把你调出最好效果的录音,单独建文件夹保存,命名为
best_voice_chinese.wav等,下次直接复用 - 固定工作流:形成自己的节奏——先用5秒录音+短文本测试 → 调优成功 → 再批量生产
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。