01.引言
通义实验室在前期的工作中提出了基于监督离散语音标记的多语言语音合成模型CosyVoice。通过使用两种流行的生成模型:语言模型 (LM) 和流匹配进行渐进式语义解码,CosyVoice 在语音语境学习中实现了较高的韵律自然度、内容一致性和说话人相似性。近年来,多模态大型语言模型 (LLM) 取得了重大进展,其中语音合成的响应延迟和实时性对交互体验至关重要。因此,本文提出了一种改进的流式语音合成模型CosyVoice 2,并进行了全面而系统的优化。
首先,引入有限标量量化来提高语音tokens的codebase利用率。其次,简化了文本-语音 LM 的模型架构,以便可以直接使用预训练的 LLM 作为主干。此外,设计了一个块感知的因果流匹配模型以适应不同的合成场景。因此,可以在单个模型中执行流式和非流式合成。通过在大型多语言数据集上进行训练,CosyVoice 2 实现了与人类相当的合成质量,并且具有非常低的响应延迟和实时性。
小编敲黑板,模型特点:
超低延迟:CosyVoice 2.0引入了离线与流式建模相结合的大规模语音生成模型技术,支持双向流式语音合成,首包合成延迟可达150ms,且音质损失极小。
高准确率:与CosyVoice 1.0相比,CosyVoice 2.0将合成音频的发音错误率降低了30%-50%,在Seed-TTS评估集的硬测试集上实现了目前最低的字符错误率。
稳定性强:CosyVoice 2.0 保证了零样本语音生成和跨语言语音合成的音色一致性,跨语言合成性能较 1.0 版本有显著提升。
自然体验:CosyVoice 2.0 合成音频的韵律、音质、情感对齐等均较 1.0 版本有大幅提升,MOS 评分由 5.4 提升至 5.53(商用大规模语音合成模型可比得分 5.52)。此外,CosyVoice 2.0 升级了可控音频生成能力,支持更精细的情感控制和方言口音调整。
模型链接:
https://modelscope.cn/models/iic/CosyVoice2-0.5B
体验链接:
https://modelscope.cn/studios/iic/CosyVoice2-0.5B
02.模型体验
零样本上下文生成
Prompt
对,这就是我,万人敬仰的太乙真人,虽然有点幼稚肥大,但也掩盖
https://developer.aliyun.com/live/254709?spm=a2c6h.26396819.creator-center.18.276a3e18KtN3y5
Generated 1
突然,身边一阵笑声。我看着他们,意气风发地挺直了胸膛,甩了甩
https://developer.aliyun.com/live/254711?spm=a2c6h.26396819.creator-center.14.276a3e18cQIO6v
不少人从四面八方赶来,只为目睹我的风采。看,他们眼中流露出的
https://developer.aliyun.com/live/254706?spm=a2c6h.26396819.creator-center.24.2aef3e181iCYI9
跨语言上下文生成
ZH
如果能对小事感到感激和满足,那他就是幸福的人。
https://developer.aliyun.com/live/254710?spm=a2c6h.26396819.creator-center.16.276a3e185jbTEt
EN
If one knows how to be grateful and content with small thin
https://developer.aliyun.com/live/254717?spm=a2c6h.26396819.creator-center.6.2aef3e18SexgYY
JP
小さなことに感謝し満足することができれば、その人は幸せな人で,
https://developer.aliyun.com/live/254714?spm=a2c6h.26396819.creator-center.8.276a3e18s8v6UY
KO
작은 것을 가지고도 고마워하고 만족할 줄 안다면 그는 행복한,
https://developer.aliyun.com/live/254712?spm=a2c6h.26396819.creator-center.12.276a3e18OJfwO9
混合语言上下文生成
Prompt
A chance to leave him alone but no, she just wanted to see
https://developer.aliyun.com/live/254713?spm=a2c6h.26396819.creator-center.10.276a3e18xat5yZ
打开文档,首先打开您所使用的文档编辑软件,如打开Microsoft Word或,
https://developer.aliyun.com/live/254707?spm=a2c6h.26396819.creator-center.22.276a3e18HjQhI2
CosyVoice2.0
文档,首先打开您所使用的文档编辑软件,如打开Microsoft Word或
https://developer.aliyun.com/live/254708?spm=a2c6h.26396819.creator-center.20.276a3e18Wpno9K
更多案例:
https://funaudiollm.github.io/cosyvoice2/
03.模型使用
模型下载:
cli下载
modelscope download --model iic/CosyVoice2-0.5B
python SDK下载
#模型下载from modelscope import snapshot_downloadmodel_dir = snapshot_download('iic/CosyVoice2-0.5B')
模型推理
clone代码repo
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git# If you failed to clone submodule due to network failures, please run following command until successcd CosyVoicegit submodule update --init --recursivepip install -r requirements.txt
下载模型到对应路径
from modelscope import snapshot_downloadsnapshot_download('iic/CosyVoice2-0.5B', local_dir='pretrained_models/CosyVoice2-0.5B')
指定python路径
export PYTHONPATH=third_party/Matcha-TTS
CosyVoice2模型推理
from cosyvoice.cli.cosyvoice import CosyVoice, CosyVoice2from cosyvoice.utils.file_utils import load_wavimport torchaudiocosyvoice = CosyVoice2('pretrained_models/CosyVoice2-0.5B', load_jit=True, load_onnx=False, load_trt=False)# zero_shot usageprompt_speech_16k = load_wav('zero_shot_prompt.wav', 16000)for i, j in enumerate(cosyvoice.inference_zero_shot('收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐,笑容如花儿般绽放。', '希望你以后能够做的比我还好呦。', prompt_speech_16k, stream=False)): torchaudio.save('zero_shot_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)# fine grained control, for supported control, check cosyvoice/tokenizer/tokenizer.py#L248prompt_speech_16k = load_wav('zero_shot_prompt.wav', 16000)for i, j in enumerate(cosyvoice.inference_cross_lingual('在他讲述那个荒诞故事的过程中,他突然[laughter]停下来,因为他自己也被逗笑了[laughter]。', prompt_speech_16k, stream=False)): torchaudio.save('fine_grained_control_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)# instruct usagefor i, j in enumerate(cosyvoice.inference_instruct2('收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐,笑容如花儿般绽放。', '用四川话说这句话', prompt_speech_16k, stream=False)): torchaudio.save('instruct_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)
模型WebUI部署
clone创空间代码
git clone https://www.modelscope.cn/studios/iic/CosyVoice2-0.5B.git
安装依赖并推理
cd CosyVoice2-0.5Bpip install -r requirements.txtpython app.py
页面示例
点击链接阅读原文:https://modelscope.cn/models/iic/CosyVoice2-0.5B