【免费下载链接】tts-fastspeech2-ljspeech
tts-fastspeech2-ljspeech 是 SpeechBrain 提供的文字转语音(TTS)语音合成预训练模型,基于 FastSpeech2 架构、在 LJSpeech 英文语料上训练。只需三个参数——pace、pitch_rate、energy_rate——就能自由调节语速、音调与响度。本文将带你快速上手这套 TTS 模型,并给出一套实用的三旋钮调参技巧。
三步跑通TTS:模型加载与最小调用
这套模型采用"文本 → 频谱 → 波形"的两级流水线:
- FastSpeech2(即本仓库的
tts-fastspeech2-ljspeech):把文本转成 80 维 mel 频谱; - HiFi-GAN 声码器(
speechbrain/tts-hifigan-ljspeech):把频谱还原成 22050 Hz 的音频波形。
from speechbrain.inference.TTS import FastSpeech2 from speechbrain.inference.vocoders import HIFIGAN fastspeech2 = FastSpeech2.from_hparams( source="speechbrain/tts-fastspeech2-ljspeech", savedir="pretrained_models/tts-fastspeech2-ljspeech" ) hifi_gan = HIFIGAN.from_hparams( source="speechbrain/tts-hifigan-ljspeech", savedir="pretrained_models/tts-hifigan-ljspeech" ) mel, durations, pitch, energy = fastspeech2.encode_text( ["Hello, this is a text-to-speech demo."], pace=1.0, # 语速 pitch_rate=1.0, # 音调 energy_rate=1.0, # 响度 ) waveforms = hifi_gan.decode_batch(mel)模型权重与配置文件都随仓库附带,无需 clone 即可直接加载:
| 文件 | 作用 |
|---|---|
| README.md | 完整使用指南与安装步骤 |
| hyperparams.yaml | 模型超参数(80 mel、22050 Hz、42 个音素) |
| config.json | 接口配置(FastSpeech2 + HiFIGAN 声码器) |
| model.ckpt | FastSpeech2 主模型权重 |
| spn_predictor.ckpt | 静音音素(spn)预测器权重 |
pace 怎么调:语速调节完全指南
pace控制语速,但它的真实身份是"时长倍数"——在 SpeechBrain 源码中,每个音素的发音时长会被乘以pace后再进行帧上采样:
| pace 取值 | 效果 |
|---|---|
1.0(默认) | 正常语速 |
1.2 ~ 1.3 | 整体放慢约 20%~30%,适合慢新闻、有声书 |
0.8 ~ 0.9 | 加快约 10%~25%,适合快节奏播报 |
< 0.5或> 1.5 | ⚠️ 不建议:音素被过度压缩/拉长,易出现吞字、变形 |
💡 记忆口诀:pace 越大,说得越慢(时长被拉长),与"速度"方向相反,第一次调容易搞反。
pitch_rate 怎么调:让声音变高或变低
pitch_rate控制音调高低。模型预测出每一帧的基频(pitch)后,会直接乘以pitch_rate:
| pitch_rate 取值 | 听感 |
|---|---|
1.0(默认) | LJSpeech 原声(女声) |
1.1 ~ 1.2 | 声音变尖、更活泼,偏"少女/卡通"感 |
0.8 ~ 0.9 | 声音变低、更沉稳,接近"磁性"效果 |
< 0.6或> 1.4 | ⚠️ 明显失真,出现"花栗鼠"效应 |
energy_rate 怎么调:让声音变响或变轻
energy_rate控制响度与力度,机制与 pitch 相同——逐帧能量乘以energy_rate:
| energy_rate 取值 | 听感 |
|---|---|
1.0(默认) | 正常音量 |
1.1 ~ 1.2 | 更洪亮、有"广播腔",适合开场白 |
0.8 ~ 0.9 | 更轻、更"气声",适合睡前故事、陪伴类应用 |
调参速查表:6种常见场景的推荐取值
三个旋钮相互独立、可任意组合,下面是按场景整理的一组安全取值(均在模型耐受范围内):
| 🎬 场景 | pace | pitch_rate | energy_rate |
|---|---|---|---|
| 标准朗读(默认) | 1.0 | 1.0 | 1.0 |
| 慢速新闻 / 有声书 | 1.2 | 1.0 | 1.0 |
| 快节奏信息流 | 0.8 | 1.0 | 1.05 |
| 高亢活泼(儿童向) | 1.0 | 1.2 | 1.1 |
| 低沉沉稳(纪录片) | 1.0 | 0.85 | 0.95 |
| 响亮广播腔 | 1.05 | 1.0 | 1.2 |
实际调参时建议一次只动一个旋钮,每次步进 0.05~0.1,边听边调,比一次性叠加大改动更容易收敛到自然的效果。
常见踩坑:为什么声音发炸或被吞字?
- 参数太极端:FastSpeech2 只会输出 mel 频谱,极端取值会把频谱推到声码器不熟悉的区域,HiFi-GAN 还原时就会出现噪声或"电音"。三个参数保持在0.7~1.3区间最稳妥。
- pace 太小导致"吞字":时长被压缩到不足一个音节,个别音素直接被截断,听感像漏字。
- 输入了中文:模型的词表只有 42 个英文 ARPAbet 音素(见 hyperparams.yaml 中的
lexicon),只可靠支持英文文本,中文会转写出错甚至报错。 - 期望输出高采样率:该模型输出固定为22050 Hz(config.json 中
sample_rate字段),若需 16k/48k 请用torchaudio重采样。 - GPU 加速:调用
from_hparams时追加run_opts={"device":"cuda"}即可,详见 README.md。
常见问题 FAQ
Q:为什么我拿到的是频谱而不是声音文件?FastSpeech2 只负责"文本 → 频谱",波形需要 HiFi-GAN 声码器生成,再用torchaudio.save()保存为 wav。
Q:能一次合成多句话吗?可以。encode_text接受文本列表,返回批量频谱,再统一交给声码器解码。
Q:三旋钮的默认值是多少?都是1.0,即完全不缩放,输出最接近训练数据的原始音色。
Q:调参源码在哪看?推理入口在 SpeechBrain 库的speechbrain/inference/TTS.py(FastSpeech2类),pitch/energy 缩放与 pace 上采样逻辑位于speechbrain/lobes/models/FastSpeech2.py。
小结
tts-fastspeech2-ljspeech 的三旋钮分工明确:pace管时长(越大越慢)、pitch_rate管音调(越大越高)、energy_rate管响度(越大越响)。日常使用守住 0.7~1.3 的安全区间、配合场景速查表微调,就能稳定得到自然流畅的合成语音。
【免费下载链接】tts-fastspeech2-ljspeech
相关推荐
TTS-Vue终极指南:让文字转语音变得如此简单高效
TTS Vue终极指南:让文字转语音变得如此简单高效 想要一款免费、易用的文字转语音工具吗?TTS Vue正是你需要的完美解决方案!🎤 这是一款基于微软语音合
语音桌面应用跨平台人工智能让你的桌面活起来:DyberPet桌面宠物框架完全指南
让你的桌面活起来:DyberPet桌面宠物框架完全指南 你是否厌倦了单调的电脑桌面?是否渴望在数字世界中拥有一个能互动、会成长、懂你情绪的虚拟伙伴?DyberP
桌面应用AI 应用如何在10分钟内构建跨平台控制台应用:Turbo Vision终极指南
如何在10分钟内构建跨平台控制台应用:Turbo Vision终极指南 Turbo Vision是一个经典的文本用户界面框架的现代化移植版本,专为构建功能丰富的
UI组件跨平台
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考