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