はじめに
F5-TTSは、ストリームにマッチした拡散変換器(DiT)に基づく新しい非自己回帰的音声合成(TTS)システムです。F5-TTSは、非常に自然で表現力豊かなゼロサンプル機能、シームレスなコード切り替え、速度制御効率により、多言語データセットでの学習をサポートします。このプロジェクトはオープンソースであり、コミュニティ開発を促進することを目的としています。
このモデルは、デュレーションモデル、音素アライメント、テキストエンコーダなど、従来のTTSシステムの複雑なモジュールを排除し、代わりにテキストを入力音声と同じ長さにパディングし、ノイズ除去法を適用することで音声生成を実現する。
F5-TTSの大きな革新のひとつは、次のようなものだ。 スウェイ・サンプリング 戦略により、推論段階の効率が大幅に改善され、リアルタイム処理機能が可能になった。この特徴は、音声アシスタントや対話型音声システムなど、高速な音声合成を必要とするシナリオに適している。
F5-TTSサポート ゼロサンプル音声クローニングまた、大量のトレーニングデータを必要とせず、幅広い音声やアクセントを生成する能力も備えている。 感情コントロール 歌で応える スピード調整 特徴強力な多言語サポートにより、このシステムは、オーディオブック、eラーニングモジュール、マーケティング資料など、多様なオーディオコンテンツの生成を必要とするアプリケーションに特に適しています。
機能一覧
- テキスト音声変換:入力テキストを自然で滑らかな音声に変換します。
- ゼロサンプル生成:事前に録音したサンプルなしで高品質の音声を生成します。
- 感情再生:感情を伴う音声生成のサポート。
- スピードコントロール:ユーザーは音声生成のスピードをコントロールできる。
- 多言語サポート:多言語での音声生成をサポート。
- オープンソースコード:コミュニティでの使用や開発を容易にするために、完全なコードとモデルのチェックポイントが提供されています。
ヘルプの使用
設置プロセス
conda create -n f5-tts python=3.10 conda アクティブ化 f5-tts sudo apt update sudo apt install -y ffmpeg pip uninstall torch torchvision torchaudio transformers # PyTorchをインストールする(CUDAサポート付き) pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # transformers をインストール pip transformers をインストール git clone https://github.com/SWivid/F5-TTS.git cd F5-TTS pip install -e . # Gradioアプリ(Webインターフェイス)を起動する f5-tts_infer-gradio # ポート/ホストを指定する f5-tts_infer-gradio --port 7860 --host 0.0.0.0 # 共有リンクを起動する f5-tts_infer-gradio --share
F5-TTSワンクリックインストールコマンド
conda create -n f5-tts python=3.10 -y && \ conda activate f5-tts && \ sudo apt update && sudo apt install -y ffmpeg && \ pip uninstall -y torch torchvision torchaudio transformers && \ pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 transformers && \ git clone https://github.com/SWivid/F5-TTS.git && \ cd F5-TTS && \ pip install -e . pip install -e . && \ f5-tts_infer-gradio --port 7860 --host 0.0.0.0
F5-TTS グーグル コラボ ランニング
注:イントラネットへの侵入を達成するためのキーを申請するには、ngrokの登録が必要です。
pip install pyngrok transformers gradio # 必要なライブラリをインポートする import os from pyngrok import ngrok apt-get update && apt-get install -y ffmpeg !pip uninstall -y torch torchvision torchaudio transformers !pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 transformers # プロジェクトのクローンとインストール !git clone https://github.com/SWivid/F5-TTS.git F5-TTS !pip install -e . !ngrok config add-authtoken 2hKI7tLqJVdnbgM8pxM4nyYP7kQ_3vL3RWtqXQUUdwY5JE4nj # ngrokとgradioの設定 grとしてgradioをインポートする from pyngrok import ngrok スレッディングをインポートする import time インポートソケット インポートリクエスト def is_port_in_use(port): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:: return s.connect_ex(('localhost', port)). with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:: return s.connect_ex(('localhost', port)) == 0 return s.connect_ex(('localhost', port)) == 0 def wait_for_server(port, timeout=60): start_time = time. start_time = time.time() while time.time() - start_time < timeout. if is_port_in_use(port). start_time = time. response = requests.get(f'http://localhost:{port}') if response.status_code == 200:: if response.status_code == 200 真を返す ただし パス time.sleep(2) return False # ngrokが実行されていないことを確認する ngrok.kill() # 新しいスレッドでGradioを開始する def run_gradio(): import sys import f5_tts.infer.infer_gradio sys.argv = ['f5-tts_infer-gradio', '--port', '7860', '--host', '0.0.0.0']. f5_tts.infer.infer_gradio.main() thread = threading.Thread(target=run_gradio) thread.daemon = True thread.start() # Gradioサービスの開始を待つ print("Gradioサービスの開始待ち...") print("Gradioサービスの開始待ち...") if wait_for_server(7860). print("Gradioサービス開始") # ngrokの起動 public_url = ngrok.connect(7860) print(f "アクセス情報 ===") print(f "Ngrok URL: {public_url}") print("===============\n") print(f "Ngrok URL: {public_url}") print("Gradioサービス起動タイムアウト") # アプリケーションを実行し続ける while True. time.sleep(1) time.sleep(1) except KeyboardInterrupt: ngrok.kill() ngrok.kill() ngrok.kill() !f5-tts_infer-cli ---モデル "F5-TTS" --ref_audio "/content/test.MP3" \. --ref_text "チーフAIシェアリングサークルへようこそ!Microsoftは、大規模なモデルベースの画面解析ツールであるOmniParserをリリースしました。" "このツールは、ユーザーインターフェースの自動化を強化するように設計されています。" \ --gen_text "チーフAIシェアリングサークルへようこそ、今日はもう一つのオープンソーススピーチクローンプロジェクトの詳細なデモンストレーションを行います。"
使用プロセス
トレーニングモデル
- 複数のGPUやFP16の使用など、アクセラレーション設定を行う:
アクセラレート設定
- トレーニングを開始する:
test_train.pyを起動する
推論
- 訓練済みモデルのチェックポイントをダウンロードする。
- 単一の推論:
- コンフィギュレーション・ファイルを修正し、例えば固定持続時間やステップ・サイズなどの要件を満たす:
python test_infer_single.py
- コンフィギュレーション・ファイルを修正し、例えば固定持続時間やステップ・サイズなどの要件を満たす:
- バッチ推理:
- テストデータセットを用意し、パスを更新する:
bash test_infer_batch.sh
- テストデータセットを用意し、パスを更新する:
詳しい操作手順
- 音声合成::
- テキストが入力されると、システムは自動的にそれを音声に変換し、ユーザーはさまざまな発話スタイルや感情を選択することができる。
- ゼロ・サンプル・ジェネレーション::
- ユーザーは事前に録音されたサンプルを提供する必要がなく、システムは入力テキストに基づいて高品質の音声を生成する。
- 感情的再生産::
- ユーザーはさまざまな感情ラベルを選択することができ、システムは対応する感情の音声を生成する。
- スピードコントロール::
- ユーザーは、さまざまなシナリオのニーズに合わせてパラメータを調整することで、音声生成の速度を制御することができます。
- 多言語サポート::
- システムは多言語での音声生成をサポートしており、ユーザーは必要に応じて異なる言語を選択することができる。