AIパーソナル・ラーニング
と実践的なガイダンス

F5-TTS: 滑らかで感情豊かなクローン音声を生成するサンプルレス・スピーチ・クローニング

はじめに

F5-TTSは、ストリームにマッチした拡散変換器(DiT)に基づく新しい非自己回帰的音声合成(TTS)システムです。F5-TTSは、非常に自然で表現力豊かなゼロサンプル機能、シームレスなコード切り替え、速度制御効率により、多言語データセットでの学習をサポートします。このプロジェクトはオープンソースであり、コミュニティ開発を促進することを目的としています。

このモデルは、デュレーションモデル、音素アライメント、テキストエンコーダなど、従来のTTSシステムの複雑なモジュールを排除し、代わりにテキストを入力音声と同じ長さにパディングし、ノイズ除去法を適用することで音声生成を実現する。

F5-TTSの大きな革新のひとつは、次のようなものだ。 スウェイ・サンプリング 戦略により、推論段階の効率が大幅に改善され、リアルタイム処理機能が可能になった。この特徴は、音声アシスタントや対話型音声システムなど、高速な音声合成を必要とするシナリオに適している。


F5-TTSサポート ゼロサンプル音声クローニングまた、大量のトレーニングデータを必要とせず、幅広い音声やアクセントを生成する能力も備えている。 感情コントロール 歌で応える スピード調整 特徴強力な多言語サポートにより、このシステムは、オーディオブック、eラーニングモジュール、マーケティング資料など、多様なオーディオコンテンツの生成を必要とするアプリケーションに特に適しています。

 

F5-TTS: 滑らかで感情豊かなクローン音声を生成するサンプルレス・スピーチ・クローニング

 

F5-TTS: 滑らかで感情豊かなクローン音声を生成するサンプルレス・スピーチ・クローニング

 

機能一覧

  • テキスト音声変換:入力テキストを自然で滑らかな音声に変換します。
  • ゼロサンプル生成:事前に録音したサンプルなしで高品質の音声を生成します。
  • 感情再生:感情を伴う音声生成のサポート。
  • スピードコントロール:ユーザーは音声生成のスピードをコントロールできる。
  • 多言語サポート:多言語での音声生成をサポート。
  • オープンソースコード:コミュニティでの使用や開発を容易にするために、完全なコードとモデルのチェックポイントが提供されています。

 

ヘルプの使用

設置プロセス

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シェアリングサークルへようこそ、今日はもう一つのオープンソーススピーチクローンプロジェクトの詳細なデモンストレーションを行います。"

 

使用プロセス

トレーニングモデル

  1. 複数のGPUやFP16の使用など、アクセラレーション設定を行う:
    アクセラレート設定
    
  2. トレーニングを開始する:
    test_train.pyを起動する
    

推論

  1. 訓練済みモデルのチェックポイントをダウンロードする。
  2. 単一の推論:
    • コンフィギュレーション・ファイルを修正し、例えば固定持続時間やステップ・サイズなどの要件を満たす:
      python test_infer_single.py
      
  3. バッチ推理:
    • テストデータセットを用意し、パスを更新する:
      bash test_infer_batch.sh
      

詳しい操作手順

  1. 音声合成::
    • テキストが入力されると、システムは自動的にそれを音声に変換し、ユーザーはさまざまな発話スタイルや感情を選択することができる。
  2. ゼロ・サンプル・ジェネレーション::
    • ユーザーは事前に録音されたサンプルを提供する必要がなく、システムは入力テキストに基づいて高品質の音声を生成する。
  3. 感情的再生産::
    • ユーザーはさまざまな感情ラベルを選択することができ、システムは対応する感情の音声を生成する。
  4. スピードコントロール::
    • ユーザーは、さまざまなシナリオのニーズに合わせてパラメータを調整することで、音声生成の速度を制御することができます。
  5. 多言語サポート::
    • システムは多言語での音声生成をサポートしており、ユーザーは必要に応じて異なる言語を選択することができる。
AIイージー・ラーニング

AIを始めるための素人ガイド

AIツールの活用方法を、低コスト・ゼロベースから学ぶことができます。AIはオフィスソフトと同様、誰にとっても必須のスキルです。 AIをマスターすれば、就職活動で有利になり、今後の仕事や勉強の労力も半減します。

詳細を見る
無断転載を禁じます:チーフAIシェアリングサークル " F5-TTS: 滑らかで感情豊かなクローン音声を生成するサンプルレス・スピーチ・クローニング

チーフAIシェアリングサークル

チーフAIシェアリングサークルは、AI学習に焦点を当て、包括的なAI学習コンテンツ、AIツール、実践指導を提供しています。私たちの目標は、高品質のコンテンツと実践的な経験の共有を通じて、ユーザーがAI技術を習得し、AIの無限の可能性を一緒に探求することです。AI初心者でも上級者でも、知識を得てスキルを向上させ、イノベーションを実現するための理想的な場所です。

お問い合わせ
ja日本語