推論
推論は、コマンドライン、HTTP API、および Web UI をサポートしています。
Note
全体として、推論は次のいくつかの部分で構成されています:
- VQGANを使用して、与えられた約10秒の音声をエンコードします。
- エンコードされたセマンティックトークンと対応するテキストを例として言語モデルに入力します。
- 新しいテキストが与えられた場合、モデルに対応するセマンティックトークンを生成させます。
- 生成されたセマンティックトークンをVITS / VQGANに入力してデコードし、対応する音声を生成します。
コマンドライン推論
必要なvqgan
およびllama
モデルを Hugging Face リポジトリからダウンロードします。
1. 音声からプロンプトを生成する:
Note
モデルにランダムに音声の音色を選ばせる場合、このステップをスキップできます。
python tools/vqgan/inference.py \
-i "paimon.wav" \
--checkpoint-path "checkpoints/fish-speech-1.4/firefly-gan-vq-fsq-8x1024-21hz-generator.pth"
fake.npy
ファイルが生成されるはずです。
2. テキストからセマンティックトークンを生成する:
python tools/llama/generate.py \
--text "変換したいテキスト" \
--prompt-text "参照テキスト" \
--prompt-tokens "fake.npy" \
--checkpoint-path "checkpoints/fish-speech-1.4" \
--num-samples 2 \
--compile
このコマンドは、作業ディレクトリにcodes_N
ファイルを作成します。ここで、N は 0 から始まる整数です。
Note
--compile
を使用して CUDA カーネルを融合し、より高速な推論を実現することができます(約 30 トークン/秒 -> 約 500 トークン/秒)。
それに対応して、加速を使用しない場合は、--compile
パラメータをコメントアウトできます。
Info
bf16 をサポートしていない GPU の場合、--half
パラメータを使用する必要があるかもしれません。
3. セマンティックトークンから音声を生成する:
VQGAN デコーダー
python tools/vqgan/inference.py \
-i "codes_0.npy" \
--checkpoint-path "checkpoints/fish-speech-1.4/firefly-gan-vq-fsq-8x1024-21hz-generator.pth"
HTTP API 推論
推論のための HTTP API を提供しています。次のコマンドを使用してサーバーを起動できます:
python -m tools.api \
--listen 0.0.0.0:8080 \
--llama-checkpoint-path "checkpoints/fish-speech-1.4" \
--decoder-checkpoint-path "checkpoints/fish-speech-1.4/firefly-gan-vq-fsq-8x1024-21hz-generator.pth" \
--decoder-config-name firefly_gan_vq
推論を高速化したい場合は、
--compile
パラメータを追加できます。
その後、http://127.0.0.1:8080/
で API を表示およびテストできます。
以下は、tools/post_api.py
を使用してリクエストを送信する例です。
python -m tools.post_api \
--text "入力するテキスト" \
--reference_audio "参照音声へのパス" \
--reference_text "参照音声テキスト" \
--streaming True
上記のコマンドは、参照音声の情報に基づいて必要な音声を合成し、ストリーミング方式で返すことを示しています。
Info
使用可能なパラメータの詳細については、コマンドpython -m tools.post_api -h
を使用してください
WebUI 推論
次のコマンドを使用して WebUI を起動できます:
python -m tools.webui \
--llama-checkpoint-path "checkpoints/fish-speech-1.4" \
--decoder-checkpoint-path "checkpoints/fish-speech-1.4/firefly-gan-vq-fsq-8x1024-21hz-generator.pth" \
--decoder-config-name firefly_gan_vq
推論を高速化したい場合は、
--compile
パラメータを追加できます。
Note
ラベルファイルと参照音声ファイルをメインディレクトリの references
フォルダ(自分で作成する必要があります)に事前に保存しておくことで、WebUI で直接呼び出すことができます。
Note
Gradio 環境変数(GRADIO_SHARE
、GRADIO_SERVER_PORT
、GRADIO_SERVER_NAME
など)を使用して WebUI を構成できます。
お楽しみください!