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)

  • 미리 정의된 화자 ID를 사용하여 음성 합성
  • 안정적이고 신뢰할 수 있는 합성 품질

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)

배포 방안

웹 인터페이스 배포

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