はじめに
CosyVoiceは多言語の大規模音声生成モデルであり、推論、トレーニングからデプロイまでフルスタックの機能を提供します。FunAudioLLMチームによって開発されたCosyVoiceは、高度な自己回帰変換器とODEベースの拡散モデルにより、高品質な音声合成の実現を目指している。CosyVoiceは多言語音声生成をサポートするだけでなく、人間の発音に匹敵するレベルの感情制御や広東語合成も行う。
無料オンライン体験(音声合成):https://modelscope.cn/studios/iic/CosyVoice-300M
無料オンライン体験(音声読み上げ):https://www.modelscope.cn/studios/iic/SenseVoice
機能一覧
- 多言語音声生成:多言語での音声合成をサポート。
- スピーチのクローン化:特定の話者のスピーチの特徴をクローン化する能力。
- 音声合成:テキストコンテンツを自然で滑らかな音声に変換します。
- 感情制御:音声合成時の感情表現の調整。
- 広東語合成:広東語の音声生成をサポートします。
- 高音質オーディオ出力:HiFTNetボコーダーで高音質オーディオを合成。
ヘルプの使用
設置プロセス
アリ・トンイ・ラボは最近、CosyVoice音声モデルをオープンソース化した。CosyVoiceは、自然な音声生成、多言語、音色、感情制御をサポートし、多言語音声生成、ゼロサンプル音声生成、クロスリンガル音声合成、コマンド実行機能に優れている。
CosyVoiceは、中国語、英語、日本語、広東語、韓国語の5言語の合成をサポートするために、合計15万時間以上のデータトレーニングを使用しており、合成効果は従来の音声合成モデルよりも大幅に優れている。
CosyVoiceはワンショットトーンクローニングをサポートしています。リズムや感情などの詳細を含むアナログトーンを生成するのに必要な生の音声はわずか3~10秒です。また、言語間の音声合成にも適しています。
正式版は当面WindowsとMacをサポートしていないため、今回はこの2つのプラットフォームにそれぞれローカルにCosyVoiceをデプロイした。
Windowsプラットフォーム
まずウィンドウズ・プラットフォームに来て、プロジェクトをクローンする:
git clone https://github.com/v3ucn/CosyVoice_For_Windows
プロジェクトへのアクセス
cd CosyVoice_For_Windows
内蔵モジュールを生成する:
git submodule update --init --recursive
その後、依存関係をインストールする:
conda create -n cosyvoice python=3.11
condaはcosyvoiceをアクティブにする
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
公式に推奨されているPythonのバージョンは3.8である。
その後、ウィンドウズ版のディープスピード・インストーラーをダウンロードしてインストールしてください:
https://github.com/S95Sedan/Deepspeed-Windows/releases/tag/v14.0%2Bpy311
最後に、GPU版のトーチをインストールする。
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
ここではcudaのバージョンは12が選択されているが、11をインストールすることもできる。
その後、モデルがダウンロードされた:
# git modelsをダウンロードし、git lfsがインストールされていることを確認します。
mkdir -p pretrained_models
git clone https://www.modelscope.cn/iic/CosyVoice-300M.git pretrained_models/CosyVoice-300M
git clone https://www.modelscope.cn/iic/CosyVoice-300M-SFT.git pretrained_models/CosyVoice-300M-SFT
git clone https://www.modelscope.cn/iic/CosyVoice-300M-Instruct.git pretrained_models/CosyVoice-300M-Instruct
git clone https://www.modelscope.cn/speech_tts/speech_kantts_ttsfrd.git pretrained_models/speech_kantts_ttsfrd
中国のMagic Hitch倉庫を使用しているため、非常に速い。
最後に環境変数を追加する:
PYTHONPATH=third_party/AcademiCodec;third_party/Matcha-TTSを設定する。
基本的な使い方:
from cosyvoice.cli.cosyvoice import CosyVoice
from cosyvoice.utils.file_utils import load_wav
import torchaudio
cosyVoice = CosyVoice('speech_tts/CosyVoice-300M-SFT')
# sftの使い方
print(cosyvoice.list_avaliable_spks())
出力 = cosyvoice.inference_sft('Hello, I'm Tongyi Generative Speech Large Model.中国人女性')
torchaudio.save('sft.wav', output['tts_speech'], 22050)
cosyvoice = CosyVoice('speech_tts/CosyVoice-300M')
#ゼロショット
prompt_speech_16k = load_wav('zero_shot_prompt.wav', 16000)
output = cosyvoice.inference_zero_shot('Received a birthday gift from my best friend from afar, the unexpected surprise and deep blessing filled my heart with sweet joy, and my smile bloomed like a flower." , 'もっと良い結果を期待しています。'、'将来、私よりうまくやれることを願っています。, prompt_speech_16k)
torchaudio.save('zero_shot.wav', output['tts_speech'], 22050)
#クロスリンガル使用例
prompt_speech_16k = load_wav('cross_lingual_prompt.wav', 16000)
出力 = cosyvoice.inference_cross_lingual(')<|en|>だから、ファミリーに入ってくる資産と経営を一致させ、利害を一致させることが、全部を買わないことがある理由だ。why sometimes we don't buy the whole thing.', prompt_speech_16k)
torchaudio.save('cross_lingual.wav', output['tts_speech'], 22050)
cosyVoice = CosyVoice('speech_tts/CosyVoice-300M-Instruct')
#インストラクトの使い方
output = cosyvoice.reference_instruct('In the face of challenges, he showed remarkable<strong>勇気</strong>とともに<strong>知恵</strong>.'Chinese Man', '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)
ここでは、より直感的で便利なWebuiを推奨する:
python3 webui.py --port 9886 --model_dir ./pretrained_models/CosyVoice-300M
インタビュー http://localhost:9886
なお、公式トーチではバックエンドにsoxを使用しているが、ここではsoundfileに変更している:
torchaudio.set_audio_backend('soundfile')
バグがあるかもしれないので、今後の公式プロジェクトのアップデートに期待していてほしい。
MacOSプラットフォーム
MacOsプラットフォームでは、まずプロジェクトをクローンした方がいい:
git clone https://github.com/v3ucn/CosyVoice_for_MacOs.git
依存関係をインストールします:
cd CosyVoice_for_MacOs
conda create -n cosyvoice python=3.8
condaでcosyvoiceを有効化する
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
その後、Homebrew経由でsoxをインストールする必要がある:
brew install sox
これで設定は完了だが、環境変数の追加をお忘れなく:
export PYTHONPATH=third_party/AcademiCodec:third_party/Matcha-TTS
使い方はWindows版と変わらない。
ここでは、ウェブイをお勧めします。
python3 webui.py --port 50000 --model_dir speech_tts/CosyVoice-300M
インタビュー http://localhost:50000
結語
すべての公平性では、CosyVoiceは、大きな工場に値する、モデルの品質は、国内のAIの最高レベルを表すと言うことではありませんが、Tongyi Labsの名前は偽ではありません、もちろん、また、エンジニアリングの後にコードをオープンソースにすることができれば、それは良いでしょう、私はlibtorchの最適化後、このモデルは、TTSのオープンソースになると信じて良い選択ではありません。
使用プロセス
- 音声生成::
- 1行1文の入力テキストファイル(例:input.txt)を用意する。
- スピーチ生成のために以下のコマンドを実行する:
python generate.py --input input.txt --output output/
- 生成された音声ファイルは
出力
カタログ
- ボイスクローニング::
- 対象話者のサンプル音声ファイル(例:sample.wav)を用意する。
- 音声クローニングのために以下のコマンドを実行する:
python clone.py --sample sample.wav --text input.txt --output output/
- クローンされた音声ファイルは
出力
カタログ
- 感情コントロール::
- 音声を生成する際、コマンドラインパラメータで感情を調整することができる:
python generate.py --input input.txt --output/ --emotion happy
- サポートする感情には、喜び、悲しみ、怒り、中立などがある。
- 音声を生成する際、コマンドラインパラメータで感情を調整することができる:
- 広東語合成::
- 広東語のテキストファイル(例:cantonese_input.txt)を用意する。
- 広東語音声生成のために以下のコマンドを実行する:
python generate.py --input cantonese_input.txt --output output/ --language カントン語
- 生成された広東語音声ファイルは
出力
カタログ
詳しい操作手順
- テキストの準備::
- 入力テキストファイルが正しくフォーマットされていることを確認してください。
- 文章はできるだけ簡潔明瞭にし、複雑な文章は避ける。
- 音声サンプルの準備::
- 音声サンプルは、できるだけ背景雑音が少なく、明瞭な一人用の音声であること。
- サンプルの長さは、最適なクローニングを確実にするために1分未満にすることが推奨される。
- パラメタリゼーション::
- 必要に応じて、感情や言葉遣いなど、生成されるスピーチのパラメーターを調整する。
- パーソナライゼーションは、設定ファイルやコマンドラインパラメーターを変更することで実現できる。
- 結果の検証::
- 生成された音声ファイルは、オーディオプレーヤーで試聴することができる。
- 満足のいく結果が得られない場合は、入力テキストまたは音声サンプルを調整して再生成することができる。