はじめに
Bert-VITS2やDALL-E XなどTTSライブラリが増えてきている中で、新しいTTSライブラリの fish-speech
が出たので、触ってみます
環境
- L4 GPU
- fish speech (hash :
79eeafcf2dd231713f6a892c429c726508256eeb
ライブラリのインストール
まずはライブラリ等を入れていきます。基本的に以下のドキュメント通りで動きました
# 创建一个 python 3.10 虚拟环境, 你也可以用 virtualenv conda create -n fish-speech python=3.10 conda activate fish-speech # 安装 pytorch pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # 安装 flash-attn (适用于linux) pip3 install ninja && MAX_JOBS=4 pip3 install flash-attn --no-build-isolation # 安装 fish-speech pip3 install -e .
上記で以下のエラーが出たときは、それぞれ対応していきます
× python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> [6 lines of output] Traceback (most recent call last): File "<string>", line 2, in <module> File "<pip-setuptools-caller>", line 34, in <module> File "/tmp/pip-install-56l9o8h3/flash-attn_943c3669191d4d3e8636e8f9e51fd176/setup.py", line 9, in <module> from packaging.version import parse, Version ModuleNotFoundError: No module named 'packaging' [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed × Encountered error while generating package metadata. ╰─> See above for output. note: This is an issue with the package mentioned above, not pip. hint: See above for details.
必要なライブラリを入れて、再度実行します
pip3 install packaging MAX_JOBS=4 pip3 install flash-attn --no-build-isolation
以下もないと言われたので、インストールしておきます
pip install loguru
モデルのダウンロード
Hugging Faceからモデルをダウンロードします
まずはtokenをセットします
export HUGGING_FACE_HUB_TOKEN=YOUR_TOKEN
ライブラリを入れます
pip install huggingface-hub
モデルをダウンロードします
huggingface-cli download fishaudio/speech-lm-v1 vqgan-v1.pth --local-dir checkpoints huggingface-cli download fishaudio/speech-lm-v1 text2semantic-400m-v0.2-4k.pth --local-dir checkpoints
サンプル音声の作成
TTSをする際にサンプルの音声を wav形式で作る必要があります.
wav以外の場合は(今回はmp3)、ffmpegで以下のように wavに変換します。
ffmpeg -i sample.mp3 sample.wav
サンプル音声からプロンプトを作成する
python tools/vqgan/inference.py \ -i "sample.wav" \ --checkpoint-path "checkpoints/vqgan-v1.pth"
テキストからトークンを作成する
python tools/llama/generate.py \ --text "変換するテキスト" \ --prompt-text "あなたの参考テキスト(サンプル音声のテキスト)" \ --prompt-tokens "fake.npy" \ --checkpoint-path "checkpoints/text2semantic-400m-v0.2-4k.pth" \ --num-samples 2 \ --compile
音声を作成する
python tools/vqgan/inference.py \ -i "codes_0.npy" \ --checkpoint-path "checkpoints/vqgan-v1.pth"
使用リソース
GPUは最大で3GBほどでした
所感
こちらの環境で作成した音声を確認したところ、DALL-E Xより日本語の精度が高くないみたいでした。
指定したテキスト以外にも生成した音声が入っていた + 日本語の発音に違和感がありました