|
|
@@ -1,6 +1,6 @@
|
|
|
# 推論
|
|
|
|
|
|
-推論は、コマンドライン、HTTP API、およびWeb UIをサポートしています。
|
|
|
+推論は、コマンドライン、HTTP API、および Web UI をサポートしています。
|
|
|
|
|
|
!!! note
|
|
|
全体として、推論は次のいくつかの部分で構成されています:
|
|
|
@@ -12,8 +12,8 @@
|
|
|
|
|
|
## コマンドライン推論
|
|
|
|
|
|
-必要な`vqgan`および`llama`モデルをHugging Faceリポジトリからダウンロードします。
|
|
|
-
|
|
|
+必要な`vqgan`および`llama`モデルを Hugging Face リポジトリからダウンロードします。
|
|
|
+
|
|
|
```bash
|
|
|
huggingface-cli download fishaudio/fish-speech-1.2 --local-dir checkpoints/fish-speech-1.2
|
|
|
```
|
|
|
@@ -28,9 +28,11 @@ python tools/vqgan/inference.py \
|
|
|
-i "paimon.wav" \
|
|
|
--checkpoint-path "checkpoints/fish-speech-1.2/firefly-gan-vq-fsq-4x1024-42hz-generator.pth"
|
|
|
```
|
|
|
+
|
|
|
`fake.npy`ファイルが生成されるはずです。
|
|
|
|
|
|
### 2. テキストからセマンティックトークンを生成する:
|
|
|
+
|
|
|
```bash
|
|
|
python tools/llama/generate.py \
|
|
|
--text "変換したいテキスト" \
|
|
|
@@ -41,27 +43,28 @@ python tools/llama/generate.py \
|
|
|
--compile
|
|
|
```
|
|
|
|
|
|
-このコマンドは、作業ディレクトリに`codes_N`ファイルを作成します。ここで、Nは0から始まる整数です。
|
|
|
+このコマンドは、作業ディレクトリに`codes_N`ファイルを作成します。ここで、N は 0 から始まる整数です。
|
|
|
|
|
|
!!! note
|
|
|
- `--compile`を使用してCUDAカーネルを融合し、より高速な推論を実現することができます(約30トークン/秒 -> 約500トークン/秒)。
|
|
|
+ `--compile`を使用して CUDA カーネルを融合し、より高速な推論を実現することができます(約 30 トークン/秒 -> 約 500 トークン/秒)。
|
|
|
それに対応して、加速を使用しない場合は、`--compile`パラメータをコメントアウトできます。
|
|
|
|
|
|
!!! info
|
|
|
- bf16をサポートしていないGPUの場合、`--half`パラメータを使用する必要があるかもしれません。
|
|
|
+ bf16 をサポートしていない GPU の場合、`--half`パラメータを使用する必要があるかもしれません。
|
|
|
|
|
|
### 3. セマンティックトークンから音声を生成する:
|
|
|
|
|
|
-#### VQGANデコーダー(推奨されません)
|
|
|
+#### VQGAN デコーダー(推奨されません)
|
|
|
+
|
|
|
```bash
|
|
|
python tools/vqgan/inference.py \
|
|
|
-i "codes_0.npy" \
|
|
|
--checkpoint-path "checkpoints/fish-speech-1.2/firefly-gan-vq-fsq-4x1024-42hz-generator.pth"
|
|
|
```
|
|
|
|
|
|
-## HTTP API推論
|
|
|
+## HTTP API 推論
|
|
|
|
|
|
-推論のためのHTTP APIを提供しています。次のコマンドを使用してサーバーを起動できます:
|
|
|
+推論のための HTTP API を提供しています。次のコマンドを使用してサーバーを起動できます:
|
|
|
|
|
|
```bash
|
|
|
python -m tools.api \
|
|
|
@@ -69,14 +72,75 @@ python -m tools.api \
|
|
|
--llama-checkpoint-path "checkpoints/fish-speech-1.2" \
|
|
|
--decoder-checkpoint-path "checkpoints/fish-speech-1.2/firefly-gan-vq-fsq-4x1024-42hz-generator.pth" \
|
|
|
--decoder-config-name firefly_gan_vq
|
|
|
+```
|
|
|
+
|
|
|
+推論を高速化したい場合は、--compile パラメータを追加できます。
|
|
|
+
|
|
|
+その後、`http://127.0.0.1:8000/`で API を表示およびテストできます。
|
|
|
+
|
|
|
+以下は、`tools/post_api.py` を使用してリクエストを送信する例です。
|
|
|
+
|
|
|
+```bash
|
|
|
+python tools/vqgan/inference.py \
|
|
|
+ -i "paimon.wav" \
|
|
|
+ --checkpoint-path "checkpoints/fish-speech-1.2/firefly-gan-vq-fsq-4x1024-42hz-generator.pth"
|
|
|
+```
|
|
|
+
|
|
|
+上記のコマンドは、参照音声の情報に基づいて必要な音声を合成し、ストリーミング方式で返すことを示しています。
|
|
|
+
|
|
|
+`{SPEAKER}`と`{EMOTION}`に基づいて参照音声をランダムに選択する必要がある場合は、以下の手順に従って設定します:
|
|
|
+
|
|
|
+### 1. プロジェクトのルートディレクトリに`ref_data`フォルダを作成します。
|
|
|
|
|
|
-推論を高速化したい場合は、--compileパラメータを追加できます。
|
|
|
+### 2. `ref_data`フォルダ内に次のような構造のディレクトリを作成します。
|
|
|
+
|
|
|
+```
|
|
|
+.
|
|
|
+├── SPEAKER1
|
|
|
+│ ├──EMOTION1
|
|
|
+│ │ ├── 21.15-26.44.lab
|
|
|
+│ │ ├── 21.15-26.44.wav
|
|
|
+│ │ ├── 27.51-29.98.lab
|
|
|
+│ │ ├── 27.51-29.98.wav
|
|
|
+│ │ ├── 30.1-32.71.lab
|
|
|
+│ │ └── 30.1-32.71.flac
|
|
|
+│ └──EMOTION2
|
|
|
+│ ├── 30.1-32.71.lab
|
|
|
+│ └── 30.1-32.71.mp3
|
|
|
+└── SPEAKER2
|
|
|
+ └─── EMOTION3
|
|
|
+ ├── 30.1-32.71.lab
|
|
|
+ └── 30.1-32.71.mp3
|
|
|
+
|
|
|
+```
|
|
|
+
|
|
|
+つまり、まず`ref_data`に`{SPEAKER}`フォルダを配置し、各スピーカーの下に`{EMOTION}`フォルダを配置し、各感情フォルダの下に任意の数の音声-テキストペアを配置します
|
|
|
+
|
|
|
+### 3. 仮想環境で以下のコマンドを入力します.
|
|
|
+
|
|
|
+```bash
|
|
|
+python tools/gen_ref.py
|
|
|
+
|
|
|
+```
|
|
|
+
|
|
|
+参照ディレクトリを生成します。
|
|
|
+
|
|
|
+### 4. API を呼び出します。
|
|
|
+
|
|
|
+```bash
|
|
|
+python -m tools.post_api \
|
|
|
+ --text "入力するテキスト" \
|
|
|
+ --speaker "${SPEAKER1}" \
|
|
|
+ --emotion "${EMOTION1}"
|
|
|
+ --streaming True
|
|
|
+
|
|
|
+```
|
|
|
|
|
|
-その後、http://127.0.0.1:8000/でAPIを表示およびテストできます。
|
|
|
+上記の例はテスト目的のみです。
|
|
|
|
|
|
-## WebUI推論
|
|
|
+## WebUI 推論
|
|
|
|
|
|
-次のコマンドを使用してWebUIを起動できます:
|
|
|
+次のコマンドを使用して WebUI を起動できます:
|
|
|
|
|
|
```bash
|
|
|
python -m tools.webui \
|
|
|
@@ -86,6 +150,6 @@ python -m tools.webui \
|
|
|
```
|
|
|
|
|
|
!!! note
|
|
|
- Gradio環境変数(`GRADIO_SHARE`、`GRADIO_SERVER_PORT`、`GRADIO_SERVER_NAME`など)を使用してWebUIを構成できます。
|
|
|
+ Gradio 環境変数(`GRADIO_SHARE`、`GRADIO_SERVER_PORT`、`GRADIO_SERVER_NAME`など)を使用して WebUI を構成できます。
|
|
|
|
|
|
お楽しみください!
|