👉🏻 Cosyvoice 👈🏻
Fun-Cosyvoice 3.0: Démos; Article; Modelscope; Huggingface; Évaluation
Cosyvoice 2.0: Démos; Article; Modelscope; HuggingFace
Cosyvoice 1.0: Démos; Article; Modelscope; HuggingFace
À la une🔥
Fun-Cosyvoice 3.0 est un système avancé de synthèse vocale basé sur de grands modèles de langage. Il améliore la continuité, la ressemblance avec le locuteur et la prosodie, tout en restant adapté à la synthèse vocale multilingue en zero-shot dans les situations du quotidien.
Fonctionnalités principales
- Langues prises en charge: Prend en charge 9 langues couramment utilisées, dont le chinois, l’anglais, le japonais, le coréen, l’allemand, l’espagnol, le français, l’italien et le russe, ainsi que plus de 18 dialectes et accents chinois. Il prend également en charge le clonage vocal multilingue et interlinguistique en zero-shot.
- Cohérence et naturel du contenu: Maintient la stabilité du contenu parlé tout en préservant la similarité avec le locuteur et une prosodie naturelle.
- Inpainting de la prononciation: Accepte le pinyin chinois et les phonèmes CMU anglais pour un contrôle plus précis de la prononciation dans les flux de production.
- Normalisation du texte: Lit les nombres, les symboles et différents formats de texte sans nécessiter de module frontend traditionnel.
- Bi-Streaming: Prend en charge le streaming du texte en entrée et de l’audio en sortie, avec une latence conçue pour atteindre environ 150ms tout en préservant les détails audio.
- Prise en charge des instructions: Gère les instructions relatives à la langue, au dialecte, à l’émotion, à la vitesse, au volume et aux paramètres de restitution associés.
Feuille de route
-
2025/12
- Publier le modèle de base Fun-Cosyvoice3-0.5B-2512, le modèle RL ainsi que les scripts d’entraînement et d’inférence
- Publier un espace Gradio Modelscope pour le modèle Fun-Cosyvoice3-0.5B
-
2025/08
- Ajouter la prise en charge du runtime Triton TRT-LLM et de l’entraînement GRPO de Cosyvoice2
-
2025/07
- Publier le jeu d’évaluation de Fun-Cosyvoice 3.0
-
2025/05
- Ajouter la prise en charge de vLLM pour Cosyvoice2-0.5B
-
2024/12
- Publier le modèle Cosyvoice2-0.5B à 25Hz
-
2024/09
- Publier le modèle de base Cosyvoice-300M à 25Hz
- Ajouter la fonction de conversion vocale de Cosyvoice-300M
-
2024/08
- Ajouter une inférence avec échantillonnage sensible aux répétitions pour améliorer la stabilité du LLM
- Ajouter la prise en charge de l’inférence en streaming avec cache KV et optimisation SOTA
-
2024/07
- Ajouter la prise en charge de l’entraînement par flow matching
- Ajouter la prise en charge de WeTextProcessing lorsque ttsfrd est indisponible
- Ajouter la prise en charge du serveur et du client FastAPI
Évaluation
| Modèle | Open source | Taille du modèle | test-zh CER (%) ↓ |
test-zh SS (%) ↑ |
test-en WER (%) ↓ |
test-en SS (%) ↑ |
test-hard CER (%) ↓ |
test-hard SS (%) ↑ |
|---|---|---|---|---|---|---|---|---|
| Humain | - | - | 1.26 | 75.5 | 2.14 | 73.4 | - | - |
| Seed-TTS | ❌ | - | 1.12 | 79.6 | 2.25 | 76.2 | 7.59 | 77.6 |
| MiniMax-Speech | ❌ | - | 0.83 | 78.3 | 1.65 | 69.2 | - | - |
| F5-TTS | ✅ | 0.3B | 1.52 | 74.1 | 2.00 | 64.7 | 8.67 | 71.3 |
| Spark TTS | ✅ | 0.5B | 1.2 | 66.0 | 1.98 | 57.3 | - | - |
| CosyVoice2 | ✅ | 0.5B | 1.45 | 75.7 | 2.57 | 65.9 | 6.83 | 72.4 |
| FireRedTTS2 | ✅ | 1.5B | 1.14 | 73.2 | 1.95 | 66.5 | - | - |
| Index-TTS2 | ✅ | 1.5B | 1.03 | 76.5 | 2.23 | 70.6 | 7.12 | 75.5 |
| VibeVoice-1.5B | ✅ | 1.5B | 1.16 | 74.4 | 3.04 | 68.9 | - | - |
| VibeVoice-Realtime | ✅ | 0.5B | - | - | 2.05 | 63.3 | - | - |
| HiggsAudio-v2 | ✅ | 3B | 1.50 | 74.0 | 2.44 | 67.7 | - | - |
| VoxCPM | ✅ | 0.5B | 0.93 | 77.2 | 1.85 | 72.9 | 8.87 | 73.0 |
| GLM-TTS | ✅ | 1.5B | 1.03 | 76.1 | - | - | - | - |
| GLM-TTS RL | ✅ | 1.5B | 0.89 | 76.4 | - | - | - | - |
| Fun-CosyVoice3-0.5B-2512 | ✅ | 0.5B | 1.21 | 78.0 | 2.24 | 71.8 | 6.71 | 75.8 |
| Fun-CosyVoice3-0.5B-2512_RL | ✅ | 0.5B | 0.81 | 77.4 | 1.68 | 69.5 | 5.44 | 75.0 |
Installer
Cloner et installer
-
Cloner le dépôt
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git # If the submodule download fails because of network conditions, run the following command again cd CosyVoice git submodule update --init --recursive -
Installer Conda : veuillez consulter la documentation de Miniconda.
-
Créer un environnement Conda :
conda create -n cosyvoice -y python=3.10 conda activate cosyvoice pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com # If you encounter sox compatibility issues # ubuntu sudo apt-get install sox libsox-dev # centos sudo yum install sox sox-devel
Téléchargement du modèle
Nous recommandons de télécharger les ressources préentraînées Fun-CosyVoice3-0.5B, CosyVoice2-0.5B, CosyVoice-300M, CosyVoice-300M-SFT, CosyVoice-300M-Instruct et CosyVoice-ttsfrd .
# modelscope SDK model download
from modelscope import snapshot_download
snapshot_download('FunAudioLLM/Fun-CosyVoice3-0.5B-2512', local_dir='pretrained_models/Fun-CosyVoice3-0.5B')
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')
snapshot_download('iic/CosyVoice-ttsfrd', local_dir='pretrained_models/CosyVoice-ttsfrd')
# for overseas users, huggingface SDK model download
from huggingface_hub import snapshot_download
snapshot_download('FunAudioLLM/Fun-CosyVoice3-0.5B-2512', local_dir='pretrained_models/Fun-CosyVoice3-0.5B')
snapshot_download('FunAudioLLM/CosyVoice2-0.5B', local_dir='pretrained_models/CosyVoice2-0.5B')
snapshot_download('FunAudioLLM/CosyVoice-300M', local_dir='pretrained_models/CosyVoice-300M')
snapshot_download('FunAudioLLM/CosyVoice-300M-SFT', local_dir='pretrained_models/CosyVoice-300M-SFT')
snapshot_download('FunAudioLLM/CosyVoice-300M-Instruct', local_dir='pretrained_models/CosyVoice-300M-Instruct')
snapshot_download('FunAudioLLM/CosyVoice-ttsfrd', local_dir='pretrained_models/CosyVoice-ttsfrd')
Facultativement, décompressez la ressource ttsfrd et installez son package pour améliorer la normalisation du texte.
Cette étape est facultative. Sans elle, Cosyvoice utilise wetext par défaut.
cd pretrained_models/CosyVoice-ttsfrd/
unzip resource.zip -d .
pip install ttsfrd_dependency-0.1-py3-none-any.whl
pip install ttsfrd-0.4.2-cp310-cp310-linux_x86_64.whl
Utilisation de base
Pour obtenir les meilleurs résultats, utilisez Fun-CosyVoice3-0.5B et suivez les exemples pour chaque modèle pris en charge.
python example.py
Utilisation de vLLM
Cosyvoice2 et Cosyvoice3 prennent en charge vLLM 0.11.x+ avec le moteur V1 et vLLM 0.9.0 en mode legacy. Les versions antérieures ne prennent pas en charge l’inférence de Cosyvoice, tandis que les versions intermédiaires entre ces versions testées peuvent nécessiter une validation supplémentaire.
Comme vLLM a des exigences spécifiques en matière de dépendances, créez un environnement distinct si nécessaire.
conda create -n cosyvoice_vllm --clone cosyvoice
conda activate cosyvoice_vllm
# for vllm==0.9.0
pip install vllm==v0.9.0 transformers==4.51.3 numpy==1.26.4 -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
# for vllm>=0.11.0
pip install vllm==v0.11.0 transformers==4.57.1 numpy==1.26.4 -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
python vllm_example.py
Démarrer la démo web
Utilisez la démo web pour vous familiariser rapidement avec Cosyvoice, puis adaptez l’exemple au modèle sélectionné.
Consultez l’espace de création pour obtenir les détails de la démo actuelle.
# change iic/CosyVoice-300M-SFT for SFT inference, or iic/CosyVoice-300M-Instruct for instruct inference
python3 webui.py --port 50000 --model_dir pretrained_models/CosyVoice-300M
Utilisation avancée
Les scripts d’entraînement et d’inférence destinés aux utilisateurs avancés sont fournis dans examples/libritts.
Préparer pour le déploiement
Pour le déploiement facultatif du service, suivez les étapes ci-dessous.
cd runtime/python
docker build -t cosyvoice:v1.0 .
# change iic/CosyVoice-300M to iic/CosyVoice-300M-Instruct for instruct inference
# for grpc usage
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 --max_conc 4 --model_dir iic/CosyVoice-300M && sleep infinity"
cd grpc && python3 client.py --port 50000 --mode <sft|zero_shot|cross_lingual|instruct>
# for fastapi usage
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/CosyVoice-300M && sleep infinity"
cd fastapi && python3 client.py --port 50000 --mode <sft|zero_shot|cross_lingual|instruct>
Utiliser Nvidia TensorRT-LLM pour le déploiement
TensorRT-LLM peut accélérer considérablement le modèle de langage Cosyvoice2 par rapport à une implémentation standard avec Hugging Face Transformers.
cd runtime/triton_trtllm
docker compose up -d
Pour plus de détails sur le déploiement, consultez l’espace de création.
Discussion et communication
Les questions et discussions techniques peuvent être partagées via l’espace communautaire Cosyvoice.
Vous pouvez également scanner le code QR pour rejoindre le groupe de discussion officiel Cosyvoice.
Remerciements
- Nous avons emprunté une grande partie du code de FunASR.
- Nous avons emprunté une grande partie du code de FunCodec.
- Nous avons emprunté une grande partie du code de Matcha-TTS.
- Nous avons emprunté une grande partie du code de AcademiCodec.
- Nous avons emprunté une grande partie du code de WeNet.
Références
@article{du2024cosyvoice,
title={Cosyvoice: A scalable multilingual zero-shot text-to-speech synthesizer based on supervised semantic tokens},
author={Du, Zhihao and Chen, Qian and Zhang, Shiliang and Hu, Kai and Lu, Heng and Yang, Yexin and others},
journal={arXiv preprint arXiv:2407.05407},
year={2024}
}
@article{du2024cosyvoice,
title={Cosyvoice 2: Scalable streaming speech synthesis with large language models},
author={Du, Zhihao and Wang, Yuxuan and Chen, Qian and Shi, Xian and Lv, Xiang and Zhao, Tianyu and others},
journal={arXiv preprint arXiv:2412.10117},
year={2024}
}
@article{du2025cosyvoice,
title={CosyVoice 3: Towards In-the-wild Speech Generation via Scaling-up and Post-training},
author={Du, Zhihao and Gao, Changfeng and Wang, Yuxuan and Yu, Fan and Zhao, Tianyu and others},
journal={arXiv preprint arXiv:2505.17589},
year={2025}
}
@inproceedings{lyu2025build,
title={Build LLM-Based Zero-Shot Streaming TTS System with Cosyvoice},
author={Lyu, Xiang and Wang, Yuxuan and Zhao, Tianyu and Wang, Hao and Liu, Huadai and Du, Zhihao},
booktitle={ICASSP 2025},
pages={1--2},
year={2025},
organization={IEEE}
}
Écosystème
Cosyvoice fait partie de la FunAudioLLM famille, un ensemble plus vaste d’outils pour la compréhension et la génération de la parole.
| Projet | Description | Étoiles |
|---|---|---|
| FunASR | Reconnaissance industrielle de la parole dans plus de 50 langues, avec diarisation et streaming. | Badge d’étoiles de FunASR |
| Fun-ASR-Nano | Reconnaissance automatique de la parole de bout en bout basée sur un LLM, pour 31 langues, avec prise en charge des mots-clés et du streaming vLLM. | Badge d’étoiles de Fun-ASR-Nano |
| SenseVoice | Reconnaissance automatique de la parole ultra-rapide, avec reconnaissance des émotions et détection des événements audio. | Badge d’étoiles de SenseVoice |
| FunClip | Découpage vidéo par IA, optimisé par la reconnaissance de la parole. | Badge d’étoiles de FunClip |
Avis de non-responsabilité
Le contenu de cette page est fourni à des fins de démonstration académique et technique. Certains exemples proviennent de ressources publiques. Si un contenu porte atteinte à vos droits, veuillez nous contacter pour demander son retrait.