StyleSpeech 项目介绍
项目背景
StyleSpeech 是一个关于多说话人自适应文本到语音生成的项目。随着神经网络文本到语音(TTS)模型的迅速发展,在个性化语音生成方面的需求日益增加。理想的 TTS 模型应该在为目标说话人提供极少量且较短的音频样本情况下,就能生成高质量的语音。然而,目前的方法往往需要对模型进行微调,或者在不进行微调时表现出较低的适应质量。
核心技术
StyleSpeech 项目提出了一种称为 Style-Adaptive Layer Normalization(SALN)的新技术。SALN 可以根据从参照语音音频中提取的风格信息,调整文本输入的增益和偏置。这样,模型可以有效地合成出符合目标说话人风格的语音,甚至只需要一个单一的短音频。在此技术基础上,项目进一步扩展到 Meta-StyleSpeech,通过引入训练有风格原型的两个判别器,以及实施情景训练,以增强对新说话人语音的适应能力。
实验结果
通过实验,Meta-StyleSpeech 模型能够根据 1-3 秒的短语音生成高质量的语音,其表现远超基线水平。用户可以在项目的演示页面上听取示例音频。
使用指南
下载预训练模型
项目提供预训练模型,以便开发者进行更深入的研究和应用:
环境准备
在使用项目代码前,请确保克隆此代码库,并按照 requirements.txt
安装所需的 Python 依赖。
推理生成
要进行语音合成,用户需要下载预训练模型,并准备一个参照语音音频。使用如下命令行生成语音:
python synthesize.py --text <待合成文本> --ref_audio <参照语音音频路径> --checkpoint_path <预训练模型路径>
生成的 Mel 频谱图将保存在 results/
目录下。
数据集预处理
项目使用 LibriTTS 数据集进行训练。用户需要下载、解压并放置在 dataset/
目录中,然后运行以下过程来预处理数据:
- 运行
python prepare_align.py
,将音频重新采样到 16kHz 并进行其他预处理。 - 使用 Montreal Forced Aligner 获得音节与音素序列的对齐信息。
./montreal-forced-aligner/bin/mfa_align dataset/wav16/ lexicon/librispeech-lexicon.txt english dataset/TextGrid/ -j 10 -v
- 运行
python preprocess.py
,准备 mel 频谱图、持续时间、音高和能量特征,以便快速训练。
模型训练
用户可以使用以下命令从头开始训练 StyleSpeech 模型:
python train.py
或者从预训练的 StyleSpeech 模型开始训练 Meta-StyleSpeech:
python train_meta.py --checkpoint_path <预训练的 StyleSpeech 模型路径>
致谢
StyleSpeech 项目的开发参考了多个现有项目,包括 FastSpeech2、ming024 的 FastSpeech 实现、Mellotron 和 Tacotron 等。