DiffWave 项目介绍
DiffWave 是一个快速、高质量的神经声码器和波形合成器。这个项目采用了一种名为迭代细化的过程,它从高斯噪声开始,将其转换为语音。通过提供一个条件信号(例如对数刻度的 Mel 频谱图),可以对生成的语音进行控制。
项目亮点
- 借助DiffWave,用户可以实现无条件的波形合成。
- 具备快速采样算法,确保高效的语音合成过程。
- 项目提供经过预训练的模型,可以立刻用于语音生成。
近期更新
- 2021年11月9日:支持无条件波形合成,感谢社区贡献者Andrechang。
- 2021年4月1日:推出基于 DiffWave 论文第三版的快速采样算法。
- 2020年10月14日:新增经过百万步训练的预训练模型,并展示了该模型的音频输出样例。
项目状态
DiffWave 项目已经实现多项功能:
- 快速推理过程
- 稳定的训练机制
- 高质量的合成音频
- 混合精度的训练支持
- 支持多GPU训练
- 提供了命令行和API方式的推理
- 包含于PyPI的软件包
- 提供音频样例和预训练模型
音频示例和预训练模型
DiffWave 提供了22.05kHz的音频示例以及相应的预训练模型,用户可以通过这些示例和模型来体验项目的声音合成效果。
- 训练环境:使用4块1080Ti显卡
- 训练数据集:以LJSpeech数据集为主,排除部分数据样本
- 训练步数:进行了100万步以上的训练
- 模型参数:单精度浮点数(FP32)
安装和使用
用户可以通过pip安装DiffWave:
pip install diffwave
或者直接从GitHub克隆项目:
git clone https://github.com/lmnt-com/diffwave.git
cd diffwave
pip install .
训练和推理
在进行训练之前,用户需要准备一个训练数据集,确保其中的.wav文件为16位单声道。可以选择任意目录结构,只需按照需要进行适当配置。
推理API的基本用法如下:
from diffwave.inference import predict as diffwave_predict
model_dir = '/path/to/model/dir'
spectrogram = # 获取一个 [N,C,W] 格式的频谱图
audio, sample_rate = diffwave_predict(spectrogram, model_dir, fast_sampling=True)
# audio 是 [N,T] 格式的 GPU 张量。
命令行推理示例:
python -m diffwave.inference --fast /path/to/model /path/to/spectrogram -o output.wav
参考文献
DiffWave 项目基于多篇学术论文,值得关注的几个主要参考包括:
DiffWave 项目致力于语音合成领域的创新,结合了最新的技术进步,适合探索语音生成技术的开发者和研究人员。