はじめに
Muyan-TTSは、ポッドキャスティングシナリオ用に設計されたオープンソースの音声合成(TTS)モデルです。100,000時間以上のポッドキャスト音声データで事前にトレーニングされており、ゼロサンプル音声合成をサポートして、高品質の自然な音声を生成します。このモデルはLlama-3.2-3Bに基づいて構築されており、以下の機能を組み合わせています。 ソヴィッツ Muyan-TTSはまた、数十分の一人用の音声データから、特定の音色のニーズに合わせてカスタマイズすることもできます。このプロジェクトはApache 2.0ライセンスの下でリリースされており、トレーニングコード、データ処理フロー、モデルウェイトの全てがGitHub、Hugging Face、ModelScopeにホストされています。
機能一覧
- ゼロサンプル音声合成様々なトーン入力に対応し、追加トレーニングなしで高品質なポッドキャストスタイルの音声を生成します。
- パーソナライズされた音声カスタマイズ数分間の一人用音声データを微調整することで、特定の話者の音声を生成します。
- 効率的な推論スピードシングルNVIDIA A100 GPUで1秒間に約0.33秒の音声を生成し、複数のオープンソースTTSモデルを凌駕。
- オープンソースのトレーニングコード開発者によるカスタマイズをサポートし、ベースモデルから微調整モデルまでの完全なトレーニングプロセスを提供します。
- データ処理パイプラインWhisper、FunASR、NISQAと統合し、ポッドキャスト音声データのクリーニングとトランスクライブを実現。
- API導入サポートポッドキャストや他の音声アプリケーションに簡単に統合するためのAPIツールを提供します。
- モデルウェイトオープンMuyan-TTSおよびMuyan-TTS-SFTモデルの重みは、Hugging FaceおよびModelScopeからダウンロードできます。
ヘルプの使用
設置プロセス
Muyan-TTSのインストールはLinux環境で行う必要があり、Ubuntuを推奨します。以下はその詳細な手順です:
- クローン倉庫
ターミナルを開き、以下のコマンドを実行して Muyan-TTS リポジトリをクローンします:git clone https://github.com/MYZY-AI/Muyan-TTS.git cd Muyan-TTS
- 仮想環境の構築
CondaでPython 3.10の仮想環境を作る:conda create -n muyan-tts python=3.10 -y conda activate muyan-tts
- 依存関係のインストール
以下のコマンドを実行して、プロジェクトの依存関係をインストールする:make build
注:FFmpegをインストールする必要がある:
sudo apt update sudo apt install ffmpeg
- 訓練済みモデルのダウンロード
以下のリンクからモデルウェイトをダウンロードしてください:- Muyan-TTS。 ハグする顔, モデルスコープ
- Muyan-TTS-SFT。 ハグする顔, モデルスコープ
- チャイニーズ・ユベール・ベース ハグする顔
ダウンロードしたモデルファイルをpretrained_models
ディレクトリは次のような構造になっている:
pretrained_models ├── chinese-hubert-base ├── Muyan-TTS └── Muyan-TTS-SFT
- インストールの確認
すべての依存関係とモデルファイルが適切にインストールされていることを確認した後、推論またはトレーニングを実行できる。
ベースモデル(ゼロサンプル音声合成)を使用した場合
Muyan-TTSの基本モデルはゼロサンプル音声合成をサポートしており、ポッドキャスト形式の音声をすばやく生成するのに適しています。その手順は次のとおりである:
- 入力テキストとリファレンス音声の準備
テキストを用意するtext
)とリファレンス・スピーチ(ref_wav_path
).例ref_wav_path="assets/Claire.wav" prompt_text="Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige." text="Welcome to the captivating world of podcasts, let's embark on this exciting journey together."
- 推論コマンドを実行する
音声を生成するには、以下のコマンドを使用する。model_type
というのもbase
::python tts.py
あるいは、コアの推論コードを実行するだけでもいい:
async def main(model_type, model_path): tts = Inference(model_type, model_path, enable_vllm_acc=False) wavs = await tts.generate( ref_wav_path="assets/Claire.wav", prompt_text="Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige.", text="Welcome to the captivating world of podcasts, let's embark on this exciting journey together." ) output_path = "logs/tts.wav" with open(output_path, "wb") as f: f.write(next(wavs)) print(f"Speech generated in {output_path}")
生成されたスピーチは
logs/tts.wav
. - リファレンスオーディオの交換
ゼロサンプル・モードではref_wav_path
どんなスピーカーの声にも置き換えることができ、モデルはその音色を模倣して新しい声を生成する。
SFTモデルの使用(パーソナライズされた音声のカスタマイズ)
SFTモデルは、特定の音色の生成に適した一人用の音声データを使って微調整されます。その手順は次のとおりです:
- トレーニングデータの準備
少なくとも数分間の一人用音声データを収集し、WAV形式で保存する。ダウンロード可能なLibriSpeechのdev-cleanデータセットを例にしてください:wget --no-check-certificate https://www.openslr.org/resources/12/dev-clean.tar.gz
開梱後
prepare_sft_dataset.py
で指定されている。librispeech_dir
は解凍パスである。 - トレーニングデータの作成
以下のコマンドを実行して、データを処理し、生成する。data/tts_sft_data.json
::./train.sh
データ形式は以下の通り:
{ "file_name": "path/to/audio.wav", "text": "对应的文本内容" }
- トレーニング構成の調整
コンパイラtraining/sft.yaml
学習率やバッチサイズなどのパラメータを設定する。 - トレーニング開始
train.sh
以下のコマンドが自動的に実行され、トレーニングが開始される:llamafactory-cli train training/sft.yaml
トレーニングが完了すると、モデルの重みは
pretrained_models/Muyan-TTS-new-SFT
. - SoVITSウエイトをコピー
ベースモデルのsovits.pth
新しいモデルディレクトリにコピーする:cp pretrained_models/Muyan-TTS/sovits.pth pretrained_models/Muyan-TTS-new-SFT
- 走り推理
SFTモデルを使用してスピーチを生成するには、次のことを行う必要があります。ref_wav_path
トレーニングで使用したスピーカーと一致:python tts.py --model_type sft
API経由のデプロイメント
Muyan-TTSは、アプリケーションに簡単に統合できるAPI展開をサポートしています。手順は以下の通りです:
- APIサービスの開始
以下のコマンドを実行してサービスを開始する。デフォルトのポートは8020である:python api.py --model_type base
サービスログは
logs/llm.log
. - リクエストを送信
リクエストを送信するには、以下のPythonコードを使用する:import requests payload = { "ref_wav_path": "assets/Claire.wav", "prompt_text": "Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige.", "text": "Welcome to the captivating world of podcasts, let's embark on this exciting journey together.", "temperature": 0.6, "speed": 1.0, } url = "http://localhost:8020/get_tts" response = requests.post(url, json=payload) with open("logs/tts.wav", "wb") as f: f.write(response.content)
ほら
- ハードウェア要件推論にはNVIDIA A100(40GB)または同等のGPUを推奨。
- 言語制限トレーニングデータは主に英語なので、現在のところ英語入力しかサポートしていません。
- データの質SFTモデルの音声品質は、トレーニングデータの明瞭さと一貫性に依存します。
- トレーニング費用データ処理(30,000ドル)、LLM事前トレーニング(19,200ドル)、デコーダトレーニング(0.134万ドル)を含む事前トレーニングの総費用は約50,000ドルであった。
アプリケーションシナリオ
- ポッドキャスト・コンテンツ制作
Muyan-TTSは、独立したクリエイターが高品質の音声を生成できるように、ポッドキャストのスクリプトを素早く自然な音声に変換します。ユーザーはテキストと参照音声を入力するだけで、ポッドキャストスタイルの音声を生成でき、録音コストを削減できます。 - オーディオブック制作
SFTモデルでは、クリエイターは特定の登場人物の声をカスタマイズして、オーディオブックのチャプターを生成することができます。このモデルは長時間の音声生成をサポートしており、長いコンテンツに適しています。 - 音声アシスタント開発
開発者はAPIを通じてMuyan-TTSを音声アシスタントに統合し、自然でパーソナライズされた音声対話体験を提供することができる。 - 教育コンテンツの生成
学校や研修機関は、教材を音声に変換して、語学学習や視覚障害者に適したリスニング練習やコース説明用の音声を生成することができます。
品質保証
- Muyan-TTSはどの言語をサポートしていますか?
トレーニングデータが英語のポッドキャストオーディオで占められているため、現在は英語のみサポートしています。将来的にはデータセットを拡張することで、他の言語もサポートすることができる。 - SFTモデルの音声品質を向上させるには?
背景ノイズを避けるため、高品質で明瞭な一人用の音声データを使用する。トレーニングデータは、ターゲットシーンのスピーチスタイルと一致していることを確認する。 - 遅い推理はどうなのか?
サポートを確実に利用する ブイエルエルエム 加速されたGPU環境。以下nvidia-smi
メモリ使用量をチェックし、モデルがGPUに正しくロードされていることを確認する。 - 商業利用は可能か?
Muyan-TTSは、Apache 2.0ライセンスの下でリリースされており、ライセンスの条件に従って、商用利用がサポートされています。 - テクニカル・サポートはどうすれば受けられますか?
問題は GitHub (課題)に参加するか、Discordコミュニティ(ディスコード) サポートを受ける。