はじめに
F5-TTSは、ストリームにマッチした拡散変換器(Diffusion)に基づく新しい非自己回帰的音声合成(TTS)システムである。 変圧器F5-TTSは、非常に自然で効率的な合成で、多言語データセットでのトレーニングをサポートしています)。F5-TTSは、非常に自然で表現力豊かなゼロサンプル機能、シームレスなコード切り替え、スピードコントロールの効率化により、多言語データセットでの学習をサポートします。このプロジェクトはオープンソースであり、コミュニティ開発を促進することを目的としています。
このモデルは、デュレーションモデル、音素アライメント、テキストエンコーダなど、従来のTTSシステムの複雑なモジュールを排除し、代わりにテキストを入力音声と同じ長さにパディングし、ノイズ除去法を適用することで音声生成を実現する。
F5-TTSの大きな革新のひとつは、次のようなものだ。 スウェイ・サンプリング 戦略により、推論段階の効率が大幅に改善され、リアルタイム処理機能が可能になった。この特徴は、音声アシスタントや対話型音声システムなど、高速な音声合成を必要とするシナリオに適している。
F5-TTSサポート ゼロサンプル音声クローニングまた、大量のトレーニングデータを必要とせず、幅広い音声やアクセントを生成する能力も備えている。 感情コントロール 歌で応える スピード調整 特徴強力な多言語サポートにより、このシステムは、オーディオブック、eラーニングモジュール、マーケティング資料など、多様なオーディオコンテンツの生成を必要とするアプリケーションに特に適しています。
機能一覧
- テキスト音声変換:入力テキストを自然で滑らかな音声に変換します。
- ゼロサンプル生成:事前に録音したサンプルなしで高品質の音声を生成します。
- 感情再生:感情を伴う音声生成のサポート。
- スピードコントロール:ユーザーは音声生成のスピードをコントロールできる。
- 多言語サポート:多言語での音声生成をサポート。
- オープンソースコード:コミュニティでの使用や開発を容易にするために、完全なコードとモデルのチェックポイントが提供されています。
ヘルプの使用
設置プロセス
conda create -n f5-tts python=3.10 conda activate 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 install transformers git clone https://github.com/SWivid/F5-TTS.git cd F5-TTS pip install -e . # Launch a Gradio app (web interface) f5-tts_infer-gradio # Specify the port/host f5-tts_infer-gradio --port 7860 --host 0.0.0.0 # Launch a share link 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 . && \ 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 %cd F5-TTS !pip install -e . !ngrok config add-authtoken 2hKI7tLqJVdnbgM8pxM4nyYP7kQ_3vL3RWtqXQUUdwY5JE4nj # 配置 ngrok 和 gradio import gradio as gr from pyngrok import ngrok import threading import time import socket import requests def is_port_in_use(port): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: return s.connect_ex(('localhost', port)) == 0 def wait_for_server(port, timeout=60): start_time = time.time() while time.time() - start_time < timeout: if is_port_in_use(port): try: response = requests.get(f'http://localhost:{port}') if response.status_code == 200: return True except: pass 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 服务启动...") if wait_for_server(7860): print("Gradio 服务已启动") # 启动 ngrok public_url = ngrok.connect(7860) print(f"\n=== 访问信息 ===") print(f"Ngrok URL: {public_url}") print("===============\n") else: print("Gradio 服务启动超时") # 保持程序运行 while True: try: time.sleep(1) except KeyboardInterrupt: ngrok.kill() break !f5-tts_infer-cli \ --model "F5-TTS" \ --ref_audio "/content/test.MP3" \ --ref_text "欢迎来到首席AI分享圈,微软发布了一款基于大模型的屏幕解析工具OmniParser.这款工具是专为增强用户界面自动化而设计的它." \ --gen_text "欢迎来到首席AI分享圈,今天将为大家详细演示另一款开源语音克隆项目。"
使用プロセス
トレーニングモデル
- 複数のGPUやFP16の使用など、アクセラレーション設定を行う:
accelerate config
- トレーニングを開始する:
accelerate launch test_train.py
推論
- 訓練済みモデルのチェックポイントをダウンロードする。
- 単一の推論:
- コンフィギュレーション・ファイルを修正し、例えば固定持続時間やステップ・サイズなどの要件を満たす:
python test_infer_single.py
- コンフィギュレーション・ファイルを修正し、例えば固定持続時間やステップ・サイズなどの要件を満たす:
- バッチ推理:
- テストデータセットを用意し、パスを更新する:
bash test_infer_batch.sh
- テストデータセットを用意し、パスを更新する:
詳しい操作手順
- 音声合成::
- テキストが入力されると、システムは自動的にそれを音声に変換し、ユーザーはさまざまな発話スタイルや感情を選択することができる。
- ゼロ・サンプル・ジェネレーション::
- ユーザーは事前に録音されたサンプルを提供する必要がなく、システムは入力テキストに基づいて高品質の音声を生成する。
- 感情的再生産::
- ユーザーはさまざまな感情ラベルを選択することができ、システムは対応する感情の音声を生成する。
- スピードコントロール::
- ユーザーは、さまざまなシナリオのニーズに合わせてパラメータを調整することで、音声生成の速度を制御することができます。
- 多言語サポート::
- システムは多言語での音声生成をサポートしており、ユーザーは必要に応じて異なる言語を選択することができる。