ZipVoice小米语音合成-MacOS可运行
ZipVoice是小米AI实验室新一代Kaldi团队发布的基于Flow Matching架构的语音合成(TTS)模型,包括ZipVoice和ZipVoice-Dialog两个版本。以下是其详细介绍及部署使用方法:
模型介绍
- ZipVoice:主要针对单说话人零样本合成,它基于Zipformer骨干网络,该网络基于U-Net的多尺度高效结构,巧妙结合卷积与注意力机制,并能多次复用注意力权重,使ZipVoice在参数量上相比同类模型直接缩减了约63%。同时,通过流蒸馏(Flow Distillation)技术,在不牺牲语音质量的前提下,大幅减少了推理所需的步数,在CPU上也能达到接近实时的合成速度。
- ZipVoice-Dialog:专为对话场景量身打造,它引入了说话人轮次嵌入向量(Speaker-Turn Embedding),能精准识别并还原不同说话人的音色,避免传统模型中音色混淆的问题。再配合课程学习策略,先从单人语音打好基础,再学习对话中的角色切换和自然语流,在多角色对话的稳定性和自然度上表现出色。
部署使用
- 部署:ZipVoice系列的模型文件、训练代码和推理代码已全部开源,可在GitHub上获取,网址为https://github.com/k2-fsa/ZipVoice。开发者可以根据自己的需求,将模型部署在不同的设备和平台上,由于其轻量化的特点,即使在算力有限的设备上也能有较好的表现。
- 使用:作为一种零样本TTS模型,除了要合成的文本外,ZipVoice还需要一个音频提示及其转录来模拟声音。合成音频的句子持续时间是根据提示转录和要合成的文本之间的标记长度比估计的。文本编码器的输入由分词后的文本标记拼接构成,通过平均上采样处理生成的文本特征构建文本条件,音频条件则通过将音频提示填充至相应长度生成,初始噪声语音采样自标准高斯分布,最终合成语音通过常微分方程求解获得。
- 具体步骤
- git clone https://github.com/k2-fsa/ZipVoice.git
- python3 -m venv zipvoice
- source zipvoice/bin/activate
- pip install -r requirements.txt
- python3 -m zipvoice.bin.infer_zipvoice
–model-name zipvoice
–prompt-wav prompt.wav
–prompt-text “I am the transcription of the prompt wav.”
–text “I am the text to be synthesized.”
–res-wav-path result.wav