CosyVoiceはオープンソースの多言語音声生成モデルであり、高品質な音声合成(TTS)技術に焦点を当てている。多言語の音声合成をサポートし、ゼロサンプル音声生成、言語横断的な音声クローニング、きめ細かな感情制御などの機能を提供する。
yVoice 2.0は、前バージョンと比較して発音誤差を30%から50%に大幅に低減し、音質とリズムの自然さを大幅に改善し、MOSスコアを5.4から5.53に向上させました。簡素化されたモデルアーキテクチャと最適化されたアルゴリズムにより、リアルタイムインタラクションシナリオ向けの低遅延ストリーミングおよび非ストリーミング音声合成を実現します。このプロジェクトでは、推論、トレーニング、デプロイメントの完全なサポートが提供され、開発者は簡単に使い始めることができるため、音声アシスタント、吹き替え、多言語コンテンツ作成などのアプリケーションに適している。
オープンサービス:CosyVoice:3秒間の突進ボイス・クローニング・オープンソース・プロジェクトがアリによって立ち上げられる。
機能一覧
- ゼロサンプル音声生成:追加トレーニングなしで、短い音声サンプルに基づいてターゲット音声に似た音声を生成します。
- 多言語音声合成:多言語の音声生成をサポートし、音色の一貫性を保ち、グローバルなコンテンツ作成に適しています。
- きめ細かな感情制御:笑い、間、その他の感情表現を追加して、より自然な音声を生成します。
- 方言とアクセントの調整:特定の方言(四川語など)やアクセントの音声を生成し、ローカリゼーション体験を向上させます。
- ストリーミング音声合成:リアルタイム・アプリケーションに最適な、ファースト・パケット遅延150msの低遅延ストリーミング出力をサポート。
- モデルトレーニングサポート:開発者のニーズに合わせて、モデルの事前トレーニングやゼロからのトレーニングの完全なプロセスを提供します。
- 高音質出力:音質とリズムを最適化し、MOSスコアは5.53と業務用レベルに近い。
ヘルプの使用
設置プロセス
CosyVoiceを使用するには、まず必要な環境と依存関係をインストールする必要があります。以下は、ユーザーがプロジェクトの設定と実行を迅速に行えるようにするための、詳細なインストール手順です。
- コンダのインストール
CosyVoiceではCondaを使用して環境を管理することを推奨しています。以下をご覧ください。https://docs.conda.io/en/latest/miniconda.html
Minicondaをダウンロードしてインストールし、仮想環境を作成してアクティベートする:conda create -n cosyvoice python=3.10 conda activate cosyvoice
- 依存関係のインストール
pip を使ってプロジェクトに必要な Python パッケージをインストールする。ネットワーク上の理由から、国内のミラーソース(例えばAliyun)を使うことを推奨します:pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
取り付け
pynini
(テキスト処理用):conda install -y -c conda-forge pynini==2.1.5
- ソックスの互換性問題の解決
soxに関連する問題が発生した場合は、オペレーティングシステムに従ってsoxをインストールしてください:- ウブントゥ::
sudo apt-get install sox libsox-dev
- CentOS::
sudo yum install sox sox-devel
- ウブントゥ::
- 訓練済みモデルのダウンロード
CosyVoiceはいくつかの訓練済みモデル(例えばCosyVoice2-0.5B
そしてCosyVoice-300M
そしてCosyVoice-300M-SFT
歌で応えるCosyVoice-300M-Instruct
).ユーザーはこれらのモデルをGitHubリポジトリからダウンロードしてpretrained_models
ディレクトリに保存されます。ダウンロードCosyVoice-ttsfrd
テキストフロントエンド処理をサポートするリソース。 - プロジェクトコードの複製
Gitを使ってCosyVoiceリポジトリをクローンし、サブモジュールが正しくロードされていることを確認してください:git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git cd CosyVoice git submodule update --init --recursive
使用方法
CosyVoiceは、ゼロサンプル音声生成、言語間合成、命令形音声生成など、さまざまな機能モジュールを提供します。以下はその仕組みです。
ゼロサンプル・スピーチ
ゼロサンプル音声生成では、短い音声サンプルに基づいて、目的の音色の音声を生成することができます。例えば、特定の音色の音声を生成する場合:
from cosyvoice import CosyVoice2
import torchaudio
cosyvoice = CosyVoice2('pretrained_models/CosyVoice2-0.5B', load_jit=False, load_trt=False, fp16=False)
prompt_speech_16k = torchaudio.load('./asset/zero_shot_prompt.wav')[0]
for i, j in enumerate(cosyvoice.inference_zero_shot(
'收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐,笑容如花儿般绽放。',
'希望你以后能够做的比我还好呦。',
prompt_speech_16k,
stream=False)):
torchaudio.save(f'zero_shot_{i}.wav', j['tts_speech'], cosyvoice.sample_rate)
- 手続き::
- 16kHzのキュー・オーディオを用意する(例.
zero_shot_prompt.wav
). - 各論
inference_zero_shot
メソッドに、ターゲット・テキスト、キュー・テキスト、オーディオを渡す。 - 生成された音声ファイルを保存します。
- 16kHzのキュー・オーディオを用意する(例.
- 銘記する公式サイトの結果を再現するには
text_frontend=False
.
クロスランゲージ音声合成
異言語合成は、一貫した音色を持つ多言語音声の生成をサポートします。例えば、笑いのある音声の生成など:
for i, j in enumerate(cosyvoice.inference_cross_lingual(
'在他讲述那个荒诞故事的过程中,他突然[laughter]停下来,因为他自己也被逗笑了[laughter]。',
prompt_speech_16k,
stream=False)):
torchaudio.save(f'fine_grained_control_{i}.wav', j['tts_speech'], cosyvoice.sample_rate)
- 手続き::
- キューオーディオを準備する。
- テキストにセンチメント・タグを追加する(例
[laughter]
) を参照。cosyvoice/tokenizer/tokenizer.py#L248
. - 生成された音声ファイルを保存します。
コマンドベースのスピーチ生成
コマンド生成は方言やスタイルの指定に対応しています。例えば、四川方言の音声を生成することができます:
for i, j in enumerate(cosyvoice.inference_instruct2(
'收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐,笑容如花儿般绽放。',
'用四川话说这句话',
prompt_speech_16k,
stream=False)):
torchaudio.save(f'instruct_{i}.wav', j['tts_speech'], cosyvoice.sample_rate)
- 手続き::
- ターゲットテキストと指示(例:「四川省で話す」)を提供する。
- プロンプト・オーディオを使ってスピーチを生成します。
- 出力ファイルを保存する。
ストリーミング合成
ストリーミング合成はリアルタイムアプリケーションに適しており、ファーストパケットのレイテンシは150msと低い。 stream=True
ストリーミング出力を有効にすることができます。具体的なコードについては、上記の例を参照してください。
その他の考慮事項
- モデルの選択推奨用途
CosyVoice2-0.5B
最適な音質とパフォーマンスを実現するモデル。 - 環境設定Pythonのバージョンが3.10で、依存関係が正しくインストールされていることを確認してください。
- テスト中にコンポーネントを調整するサブモジュールのクローニングに失敗した場合は、複数回実行してください。
git submodule update --init --recursive
うまくいくまではね。 - 文書参照詳しくは
cosyvoice/tokenizer/tokenizer.py
および公式文書https://funaudiollm.github.io/cosyvoice2
.
アプリケーションシナリオ
- 音声アシスタント開発
CosyVoiceの低遅延ストリーミング合成と多言語サポートは、インテリジェント音声アシスタントの開発に最適です。開発者はゼロサンプル生成でパーソナライズされたトーンを素早くカスタマイズし、自然でスムーズな音声応答を生成することで、ユーザーとのインタラクション体験を向上させることができます。 - 多言語コンテンツ制作
コンテンツ制作者は、クロスランゲージ合成を使用して、多言語のボイスオーバーを素早く生成することができます。例えば、ビデオやポッドキャストの音声を英語、中国語、その他の言語で生成することで、一貫したトーンを維持し、制作コストを削減することができます。 - 教育と語学学習
CosyVoiceは方言や感情のコントロールをサポートし、言語学習アプリケーションで使用することで、学習者がリスニングや発音の練習をする際に、特定のアクセントや感情を持つ音声を生成することができます。 - 映画、テレビ、ゲームの吹き替え
映画、テレビ、ゲームの開発者は、きめ細かな感情コントロールを使用して、笑いや間などのエフェクトを含む音声を生成することで、キャラクターの表現を強化し、作品への没入感を向上させることができます。
品質保証
- CosyVoiceはどの言語をサポートしていますか?
CosyVoiceは複数の言語での音声合成をサポートしています。cosyvoice/tokenizer/tokenizer.py
一般的な言語といくつかの方言をカバー。 - 音声生成の待ち時間を短縮するには?
ストリーミング合成モード(stream=True
のような)高性能ハードウェアと最適化されたモデルを使用することで、ファースト・パケットの待ち時間を150msに短縮することができる。CosyVoice2-0.5B
). - モデルのトレーニングは必要ですか?
CosyVoiceは事前にトレーニングされたモデルを提供しており、直接ダウンロードして使用することができます。カスタマイズが必要な場合は、公式ドキュメントを参照して一からトレーニングしてください。 - カスタムトーンを追加するには?
利用するinference_zero_shot
メソッドに、ターゲットオーディオサンプルとキューテキストを渡して、カスタムトーンを生成します。トーン情報の保存はcosyvoice.add_zero_shot_spk
.