Open Audio (旧Fish Speech)とは
- TTS-Arena2最高モデル
- 数十秒の音声ファイルがあれば、その人の声質で好きな言葉をしゃべらせられる
ポイント
- PyTorch 2.8.0を使う
- GPUを使う場合は、CUDA12.9を使う
- Python 3.12を使う
- 最初は推論時に
--compileオプションを指定しない
関連情報
OpenAudio (旧 Fish-Speech)の公式サイト
https://speech.fish.audio/ja/
実行手順
事前準備
- Git for Windowsをインストールする
- Anacondaをインストールする
- uvやDockerでもよい。その場合は以下、読み替えてください
- GPUを使う場合、CUDA 12.9をインストールする
- 現時点ではCUDA 12.9までに対応するようだ(2026/1/4時点)
- 私はGeForce GTX 1650を使用した
プリセットの声質でテキストから音声を合成する
- Anaconda Navigatorを起動して、「anaconda_prompt」を開く
- 公式プロジェクトをgit cloneする
>git clone https://github.com/fishaudio/fish-speech.git >cd fish-speech - Python 3.12の環境を作って、アクティベートする
>conda create -n fish-speech python=3.12 >conda activate fish-speech - PyTorchなどの依存ライブラリをインストールする
- CUDA 12.9
# GPU版のインストール (CUDAバージョンを選択: cu126, cu128, cu129) >pip install -e .[cu129] - (ここがポイント!)PyTorchのバージョンが新しすぎるので、2.8.0に下げる
- CUDA 12.9を使う場合、
>pip install torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu129- なお、PyTorch 2.9では下記のエラーが発生する
AttributeError: module 'torchaudio' has no attribute 'list_audio_backends'
- 重みのダウンロード
>hf download fishaudio/openaudio-s1-mini --local-dir checkpoints/openaudio-s1-mini - (参照音声からVQトークンを取得)はまずはスキップする
- テキストからセマンティックトークンを生成
>python fish_speech/models/text2semantic/inference.py --text "(nervous)こんにちは世界。おはよう。"- temp/codes_0.npyが生成される
- セマンティックトークンとはtoken単位(日本語だと文字単位と同程度の単位)の意味を表すベクトル
- Windowsでは
--compileオプションはまずは指定しないこと-
compileすると高速になる -
compileするためにはtritonのインストールが別途、必要 - まずはワンパスを通してから高速化にトライする
-
- セマンティックトークンから音声を生成
>python fish_speech/models/dac/inference.py -i temp/codes_0.npy- fake.wavが生成されるのでメディアプレーヤーなどで再生する
- 音声合成おわり
声質を模倣して、音声を合成する
- 参照音声からVQトークンを取得する
>python fish_speech/models/dac/inference.py -i "ref_audio_name.wav" --checkpoint-path "checkpoints/openaudio-s1-mini/codec.pth"- 参照音声: 模倣する声のこと
- ファイル名
ref_audio_name.wavを付けて用意しておく
- ファイル名
- fake.wavとfake.npyが生成される
- 参照音声: 模倣する声のこと
- テキストからセマンティックトークンを生成
>python fish_speech/models/text2semantic/inference.py --text "(nervous)こんにちは世界。おはよう。" --prompt-tokens "fake.npy" --prompt-text "紅葉、もみじは、主に落葉広葉樹が落葉の前に葉の色が変わる現象のこと。"- prompt-textは参照音声(模倣する声)の読み上げているテキストを指定する
- セマンティックトークンから音声を生成
>python fish_speech/models/dac/inference.py -i temp/codes_0.npy- fake.wavが生成される
-
--textで指定した内容を読み上げる