Home
Login

CosyVoice:多语言大型语音生成模型,提供推理、训练和部署全栈能力

Apache-2.0Python 14.5kFunAudioLLM Last Updated: 2025-06-12

CosyVoice 项目详细介绍

项目概述

CosyVoice 是由阿里巴巴 FunAudioLLM 团队开发的多语言大型语音生成模型,提供完整的推理、训练和部署全栈解决方案。该项目专注于高质量的语音合成技术,支持多种语言和应用场景。

核心特性

CosyVoice 2.0 最新特性

支持语言

  • 中文、英文、日语、韩语
  • 中文方言:粤语、四川话、上海话、天津话、武汉话等

技术突破

  • 跨语言和多语言混合:支持零样本语音克隆的跨语言和代码切换场景
  • 双向流式支持:集成离线和流式建模技术
  • 超低延迟合成:首包合成延迟低至150毫秒,同时保持高质量音频输出
  • 发音准确性提升:相比1.0版本,发音错误减少30%到50%
  • 基准测试成就:在Seed-TTS评估集的困难测试集上达到最低字符错误率
  • 音色一致性:确保零样本和跨语言语音合成的可靠音色一致性
  • 韵律和音质增强:合成音频对齐改善,MOS评估分数从5.4提升至5.53
  • 情感和方言灵活性:支持更精细的情感控制和口音调整

模型版本

CosyVoice2-0.5B(推荐)

  • 最新版本,性能更优异
  • 支持所有最新特性

CosyVoice-300M 系列

  • CosyVoice-300M:基础模型
  • CosyVoice-300M-SFT:监督微调版本
  • CosyVoice-300M-Instruct:指令微调版本

功能模式

1. 零样本语音克隆(Zero-shot)

  • 仅需几秒钟的音频样本即可克隆声音
  • 支持跨语言语音克隆
  • 保持原始说话者的音色特征

2. 跨语言合成(Cross-lingual)

  • 使用一种语言的音频样本合成另一种语言的语音
  • 支持中、英、日、韩、粤语等多种语言组合

3. 语音转换(Voice Conversion)

  • 将一个说话者的语音转换为另一个说话者的音色
  • 保持原始内容的同时改变音色

4. 监督微调模式(SFT)

  • 使用预定义的说话者身份进行语音合成
  • 稳定可靠的合成质量

5. 指令控制模式(Instruct)

  • 通过自然语言指令控制语音合成
  • 支持情感标签和特殊效果
  • 可控制语音风格、情感表达等

6. 精细控制

  • 支持笑声 [laughter]、呼吸 [breath] 等特殊标记
  • 支持重音控制 <strong></strong>
  • 情感和韵律的精细调节

技术架构

核心技术

  • 离散语音标记:基于监督的离散语音标记技术
  • 渐进式语义解码:使用语言模型(LMs)和流匹配(Flow Matching)
  • 双向流式建模:支持实时和批处理推理
  • 多模态集成:与大语言模型无缝集成

性能优化

  • 流式推理支持:包括KV缓存和SDPA优化
  • 重复感知采样(RAS):提升LLM稳定性
  • TensorRT加速:支持GPU加速推理
  • FP16精度:平衡性能和质量

安装和使用

环境要求

  • Python 3.10
  • CUDA支持的GPU(推荐)
  • Conda环境管理

快速开始

# 克隆仓库
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
cd CosyVoice

# 创建环境
conda create -n cosyvoice -y python=3.10
conda activate cosyvoice
conda install -y -c conda-forge pynini==2.1.5
pip install -r requirements.txt

模型下载

from modelscope import snapshot_download

# 下载CosyVoice2.0(推荐)
snapshot_download('iic/CosyVoice2-0.5B', local_dir='pretrained_models/CosyVoice2-0.5B')

# 下载其他版本
snapshot_download('iic/CosyVoice-300M', local_dir='pretrained_models/CosyVoice-300M')
snapshot_download('iic/CosyVoice-300M-SFT', local_dir='pretrained_models/CosyVoice-300M-SFT')
snapshot_download('iic/CosyVoice-300M-Instruct', local_dir='pretrained_models/CosyVoice-300M-Instruct')

基础使用示例

from cosyvoice.cli.cosyvoice import CosyVoice2
from cosyvoice.utils.file_utils import load_wav
import torchaudio

# 初始化模型
cosyvoice = CosyVoice2('pretrained_models/CosyVoice2-0.5B')

# 零样本语音克隆
prompt_speech = load_wav('./asset/zero_shot_prompt.wav', 16000)
for i, result in enumerate(cosyvoice.inference_zero_shot(
    '收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐。', 
    '希望你以后能够做的比我还好呦。', 
    prompt_speech
)):
    torchaudio.save(f'output_{i}.wav', result['tts_speech'], cosyvoice.sample_rate)

# 指令控制合成
for i, result in enumerate(cosyvoice.inference_instruct2(
    '今天天气真不错,我们去公园散步吧。', 
    '用四川话说这句话', 
    prompt_speech
)):
    torchaudio.save(f'instruct_{i}.wav', result['tts_speech'], cosyvoice.sample_rate)

部署方案

Web界面部署

python3 webui.py --port 50000 --model_dir pretrained_models/CosyVoice2-0.5B

Docker容器部署

cd runtime/python
docker build -t cosyvoice:v1.0 .

# gRPC服务
docker run -d --runtime=nvidia -p 50000:50000 cosyvoice:v1.0 \
  /bin/bash -c "cd /opt/CosyVoice/CosyVoice/runtime/python/grpc && \
  python3 server.py --port 50000 --model_dir iic/CosyVoice2-0.5B"

# FastAPI服务  
docker run -d --runtime=nvidia -p 50000:50000 cosyvoice:v1.0 \
  /bin/bash -c "cd /opt/CosyVoice/CosyVoice/runtime/python/fastapi && \
  python3 server.py --port 50000 --model_dir iic/CosyVoice2-0.5B"

应用场景

商业应用

  • 智能客服:多语言客服系统
  • 有声读物:个性化旁白和角色配音
  • 语音助手:自然的人机交互体验
  • 在线教育:多语言教学内容制作

创意应用

  • 播客制作:自动化播客内容生成
  • 游戏配音:角色语音合成
  • 短视频制作:快速配音解决方案
  • 语音翻译:实时语音到语音翻译

技术集成

  • 与LLM集成:构建完整的对话系统
  • 情感语音聊天:支持情感表达的对话机器人
  • 交互式播客:动态内容生成
  • 表达性有声书:丰富的情感表现力

技术优势

性能指标

  • 延迟:首包合成低至150ms
  • 质量:MOS