---
title: CosyVoice-300M
canonical_url: "https://www.modelscope.cn/studios/fengxiaoyong/CosyVoice-300M"
md_url: "https://www.modelscope.cn/studios/fengxiaoyong/CosyVoice-300M.md"
repository: fengxiaoyong/CosyVoice-300M
chinese_name: CosyVoice-300M
last_updated: 2024-06-28
sdk_type: gradio
sdk_version: 4.31.3
downloads: 0
stars: 3
---

# CosyVoice-300M

> CosyVoice-300M - fengxiaoyong 在 ModelScope 创建的在线 Demo。CosyVoice-300M

fengxiaoyong/CosyVoice-300M 是 ModelScope 魔搭社区上的在线可交互 Demo（创空间），基于 gradio 4.31.3 构建。

- **Repository**: fengxiaoyong/CosyVoice-300M
- **SDK**: gradio
- **SDK version**: 4.31.3
- **Downloads**: 0
- **Stars**: 3
- **Last updated**: 2024-06-28

Source: https://www.modelscope.cn/studios/fengxiaoyong/CosyVoice-300M

---

# CosyVoice

## Install

**Clone and install**

- Clone the repo
``` sh
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
# If you failed to clone submodule due to network failures, please run following command until success
cd CosyVoice
git submodule update --init --recursive
```

- Install Conda: please see https://docs.conda.io/en/latest/miniconda.html
- Create Conda env:

``` sh
conda create -n cosyvoice python=3.8
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
```

**Model download**

We strongly recommand that you download our pretrained `CosyVoice-300M` and `CosyVoice-300M-Instruct` model.

If you are expert in this field, and you are only interested in training your own CosyVoice model from scratch, you can skip this step.

``` python
# SDK模型下载
from modelscope import snapshot_download
snapshot_download('speech_tts/CosyVoice-300M', local_dir='pretrained_models/CosyVoice-300M')
snapshot_download('speech_tts/CosyVoice-300M-Instruct', local_dir='pretrained_models/CosyVoice-300M-Instruct')
```

``` sh
# git模型下载
mkdir -p pretrained_models
git clone https://www.modelscope.cn/speech_tts/CosyVoice-300M.git pretrained_models/CosyVoice-300M
git clone https://www.modelscope.cn/speech_tts/CosyVoice-300M-Instruct.git pretrained_models/CosyVoice-300M-Instruct
```

**Basic Usage**

For sft/zero_shot inference, please use `CosyVoice-300M` or `CosyVoice-300M-Instruct` model. First, add `third_party/AcademiCodec` and `third_party/Matcha-TTS` to your `PYTHONPATH`.

``` sh
export PYTHONPATH=third_party/AcademiCodec:third_party/Matcha-TTS
```

``` python
from cosyvoice.cli.cosyvoice import CosyVoice
from cosyvoice.utils.file_utils import load_wav
import torchaudio

cosyvoice = CosyVoice('speech_tts/CosyVoice-300M')

# sft usage
print(cosyvoice.list_avaliable_spks())
output = cosyvoice.inference_sft('你好，我是通义千问语音合成大模型，请问有什么可以帮您的吗？', '中文女')
torchaudio.save('sft.wav', output['tts_speech'], 22050)

# zero_shot usage
prompt_speech_16k = load_wav('zero_shot_prompt.wav', 16000)
output = cosyvoice.inference_zero_shot('收到好友从远方寄来的生日礼物，那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐，笑容如花儿般绽放。', '希望你以后能够做的比我还好呦。', prompt_speech_16k)
torchaudio.save('zero_shot.wav', output['tts_speech'], 22050)
```

For cross_lingual inference, please use `CosyVoice-300M` model

``` python
cosyvoice = CosyVoice('speech_tts/CosyVoice-300M')

# cross_lingual usage
prompt_speech_16k = load_wav('cross_lingual_prompt.wav', 16000)
output = cosyvoice.inference_cross_lingual('<|en|>And then later on, fully acquiring that company. So keeping management in line, interest in line with the asset that\'s coming into the family is a reason why sometimes we don\'t buy the whole thing.', prompt_speech_16k)
torchaudio.save('cross_lingual.wav', output['tts_speech'], 22050)
```

For instruct inference, please use `CosyVoice-300M-Instruct` model

``` python
cosyvoice = CosyVoice('speech_tts/CosyVoice-300M-Instruct')

# instruct usage
output = cosyvoice.inference_instruct('在面对挑战时，他展现了非凡的<strong>勇气</strong>与<strong>智慧</strong>。', '中文男', 'Theo \'Crimson\', is a fiery, passionate rebel leader. Fights with fervor for justice, but struggles with impulsiveness.')
torchaudio.save('instruct.wav', output['tts_speech'], 22050)
```

**Start web demo**

You can use our web demo page to get familiar with CosyVoice quickly.
We support sft/zero_shot/cross_lingual/instruct inference in web demo.

We also provide Spaces on modelscope for experience. Please visit [CosyVoice-300M](https://www.modelscope.cn/studios/speech_tts/cosyvoice/summary)

Please see the demo website for details.

``` python
# change speech_tts/CosyVoice-300M to speech_tts/CosyVoice-300M-Instruct if you want to use instruct inference
python3 webui.py --port 50000 --model_dir speech_tts/CosyVoice-300M
```

**Advanced Usage**

For advanced user, we have provided train and inference scripts in `examples/libritts/cosyvoice/run.sh`.
You can get familiar with CosyVoice following this recipie.

**Build for deployment**

Optionally, if you want to use grpc for service deployment,
you can run following steps. Otherwise, you can just ignore this step.

``` sh
cd runtime/python
docker build -t cosyvoice:v1.0 .
# change speech_tts/CosyVoice-300M to speech_tts/CosyVoice-300M-Instruct if you want to use instruct inference
docker run -d --runtime=nvidia -p 50000:50000 cosyvoice:v1.0 /bin/bash -c "cd /opt/CosyVoice/CosyVoice/runtime/python && python3 server.py --port 50000 --max_conc 4 --model_dir speech_tts/CosyVoice-300M && sleep infinity"
python3 client.py --port 50000 --mode <sft|zero_shot|cross_lingual|instruct>
```
