究極の音声・音楽生成ツールセットがここに!
「Bark」「MusicGen」「RVC」「Tortoise」「MAGNeT」「Demucs」「Maha TTS」「Stable Audio」「Vocos」「MMS」など、業界最前線の音声・音楽生成モデルを一つに統合した夢のようなツールセットが登場しました!さらに、以下のエクステンションも利用可能です:
- (Extension) Riffusion
- (Extension) AudioCraft Mac
- (Extension) AudioCraft Plus
- (Extension) XTTSv2
- (Extension) MARS5
- (Extension) F5-TTS
- (Extension) Parler TTS
このプロジェクトは、以下の3つのカテゴリでクリエイターが求める幅広い機能を提供します:
1. Text-to-Speech (音声合成)
自然な音声生成やクローン音声作成に対応したモデルが含まれています。
- Bark
- Tortoise
- Maha TTS
- StyleTTS2
- Vall-E X
- Parler TTS
2. Audio/Music Generation (音楽・音声生成)
クリエイターの音楽制作をサポートするツール。多彩な音楽やサウンドデザインを可能にします。
- MusicGen
- Stable Audio
- AudioCraft Mac (Extension)
- AudioCraft Plus (Extension)
- Riffusion (Extension)
3. Audio Conversion/Tools (音声変換・ツール)
音声分離や翻訳、変換ツールが多数搭載されています。
- RVC
- Demucs
- MAGNeT
- SeamlessM4T
- MMS
- XTTSv2 (Extension)
- MARS5 (Extension)
- F5-TTS (Extension)
このプロジェクトは、音声合成、音楽生成、翻訳、分離などの機能をすべて詰め込んでおり、初心者からプロフェッショナルまで幅広いニーズに応えます。これがあれば、あなたの創造力を最大限に引き出せること間違いなしです。
まずは初心者にも安心な方法から
このプロジェクトを試す最も簡単な方法は、Windows用の起動スクリプトを利用することです。プロジェクトをダウンロードした後、start_tts_webui.bat
ファイルをダブルクリックするだけでセットアップと起動が自動的に行われます。特別なコマンドや複雑な設定は不要です。初心者の方や手軽に試したい方には、この方法をおすすめします。
なんでDocker?
この記事では、Dockerを使った方法をご紹介します。なぜなら、Dockerには以下のようなメリットがあるからです:
- 環境の一貫性
Dockerは仮想化された環境でアプリケーションを実行します。これにより、ホストOSの違いによる問題を避け、どんな環境でも同じように動作します。 - 依存関係の管理が簡単
通常、音声生成や機械学習モデルは、PythonやCUDAなど多くの依存関係が必要です。Dockerを使えば、すべての依存関係があらかじめ設定された環境をそのまま利用できるため、煩雑なセットアップから解放されます。 - 安全性と柔軟性
Dockerコンテナ内で実行されるため、ホスト環境を汚す心配がありません。複数のバージョンを試すことも簡単です。 - メンテナンスの簡略化
Dockerイメージは一度設定すれば、再現性が高く、トラブルシューティングも簡単です。新しいバージョンがリリースされても、古い環境を壊さずに更新が可能です。
以下のGithubページを参考にして実践していきます。
プロジェクトのセットアップ手順
プロジェクトの準備
- WSLの起動
まず、WSL(Ubuntu 24.04)を起動します。WSLを使用してプロジェクトをローカルのパソコンにコピーします。 - GitHubからリポジトリをクローン
GitHubのリポジトリをクローンするには、以下のコマンドを使用してください。<リポジトリURL>
を実際のリポジトリのURLに置き換えて実行します:git clone <リポジトリURL>
例えば、リポジトリURLがhttps://github.com/username/repo.git
の場合は以下のようになります:git clone https://github.com/username/repo.git
- プロジェクトディレクトリに移動
クローンしたプロジェクトのディレクトリに移動します:cd repo
- 事前条件の確認
- DockerとDocker Composeは、すでにインストールされている必要があります。以下のコマンドで確認してください:
docker --version
docker compose version
バージョン情報が表示されれば、インストール済みです。
- DockerとDocker Composeは、すでにインストールされている必要があります。以下のコマンドで確認してください:
NVIDIA Container Toolkitのインストール
GPUを使用するプロジェクトの場合、ホストのGPUをDockerコンテナから利用するためにNVIDIA Container Toolkitが必要です。以下の手順に従ってセットアップしてください。実際のインストール方法は変わる可能性がありますので以下の公式サイトを参考にしてください。
1. NVIDIAドライバの確認
まず、ホストPCにNVIDIAドライバがインストールされていることを確認します。以下のコマンドを実行し、GPUが認識されているか確認してください:
nvidia-smi
GPUの情報が表示されれば問題ありません。インストールされていない場合は、NVIDIAの公式サイトからドライバをダウンロードし、インストールしてください。
2. NVIDIA Container Toolkitのセットアップ
次に、NVIDIA Container Toolkitをインストールします。
- リポジトリの追加
WSL (Ubuntu 24.04) にリポジトリを追加します:distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-docker.gpg \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
- ツールキットのインストール
リポジトリを追加した後、以下のコマンドでNVIDIA Container Toolkitをインストールします:sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
- Dockerデーモンの設定
NVIDIAランタイムをDockerのデフォルトランタイムに設定するため、以下の設定を追加します:sudo nano /etc/docker/daemon.json
次の内容をファイルに追加(または編集)してください:{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
保存後、Dockerデーモンを再起動します:sudo systemctl restart docker
3. NVIDIA Container Toolkitの動作確認
以下のコマンドを実行し、Dockerコンテナ内でGPUが認識されているか確認します:
docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi
実行結果にGPUの情報が表示されれば、セットアップは完了です。
プロジェクトでGPUを使用する
NVIDIA Container Toolkitがインストールされていれば、Dockerコンテナを起動する際にGPUを使用できます。以下のコマンドを使用してください:
docker run --gpus all <your_docker_image>
特定のGPUを指定する場合:
docker run --gpus '"device=0"' <your_docker_image>
これで完了!
この手順で、WSL環境内にプロジェクトを準備することができます。実際の作業は以下の通りです。
git clone https://github.com/rsxdalv/tts-generation-webui.git
次に、プロジェクトのディレクトリに移動します。
cd tts-generation-webui
私はVSCodeを使用していたので、GUI操作でこのディレクトリに移動しました。ファイル内容が簡単に確認できるため、VSCodeは非常に便利です。
Dockerイメージのダウンロードと確認
プロジェクトのDockerイメージをダウンロードするため、以下のコマンドを実行します。
docker pull ghcr.io/rsxdalv/tts-generation-webui:main
ダウンロードが完了したら、イメージのサイズを確認してみましょう。以下のコマンドで現在のイメージ一覧が表示されます。
docker images
確認したところ、かなりの容量があることがわかります。
コンテナの起動と動作確認
Docker Composeを使用してコンテナを起動します。以下のコマンドを実行してください。
docker compose up -d
その後、コンテナが正常に起動しているかを確認します。以下のコマンドを使えば、現在稼働中のコンテナの状態が表示されます。
docker ps
状態を確認すると、問題なくコンテナが起動していることがわかります。
ログの確認とDocker利用のメリット
コンテナが正常に動作しているかを確認するために、以下のコマンドでログを確認します:
docker logs tts-generation-webui
ログの一部を確認すると、次のような情報が表示されます:
==========
== CUDA ==
==========
CUDA Version 11.8.0
Container image Copyright (c) 2016-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
This container image and its contents are governed by the NVIDIA Deep Learning Container License.
By pulling and using the container, you accept the terms and conditions of this license:
https://developer.nvidia.com/ngc/nvidia-deep-learning-container-license
A copy of this license is made available in this container at /NGC-DL-CONTAINER-LICENSE for your convenience.
> tts-generation-webui-react@0.1.0 start
> next start
▲ Next.js 13.5.6
- Local: http://localhost:3000
✓ Ready in 213ms
/usr/local/lib/python3.10/dist-packages/gradio/components/dropdown.py:226: UserWarning: The value passed into gr.Dropdown() is not in the list of choices. Please update the list of choices to include: None or set allow_custom_value=True.
warnings.warn(
このログには、以下のような重要な情報が含まれています:
- CUDAサポート
ログの冒頭には、CUDAバージョンが表示されています。このプロジェクトでは、GPUを活用した高速な処理が可能ですが、CUDAやNVIDIAドライバに依存する環境構築は手動では非常に煩雑です。Dockerを使用することで、これらの依存関係があらかじめ設定された環境を簡単に利用できます。 - ライセンス管理
NVIDIA Deep Learning Container Licenseに基づいて提供されているコンテナイメージが利用されていることが示されています。Dockerを使用することで、このようなライセンス条件が事前に適用された状態の環境を安全に利用できます。 - アプリケーションの起動状態
Next.js
を利用したフロントエンドがhttp://localhost:3000
で動作していることが確認できます。このように、Dockerはアプリケーションが正しく動作するためのセットアップを統合して提供するため、手動で環境を整える手間を大幅に削減します。 - Python環境の整備
ログに示されているPythonライブラリやエラー警告(UserWarning
)は、アプリケーションが正常に動作している証拠です。Dockerコンテナ内でPython環境が適切に設定されているため、個別にパッケージをインストールする手間が省けます。
先ほどインストーラーを使うのが一番簡単だと説明したが、実は…
プロジェクトに含まれるインストーラー(start_tts_webui.bat
)は、一見すると初心者にとって最も簡単な方法に思えます。しかし、実際には、動作環境をしっかり確認し、適切なCUDAバージョンを手動でインストールする必要があることがわかりました。それゆえ、初心者にはハードルが高い場合があり、特にGPUを活用したい場合はさらなる環境調整が必要になる可能性があります。
Dockerを選択した理由
私がDockerを使用した理由は、環境構築における以下のような課題を解決できるからです:
- CUDAや依存関係の自動管理
Dockerイメージには、プロジェクトの動作に必要なCUDAバージョンや依存関係が事前に設定されています。これにより、ホスト環境のバージョン違いや手動設定によるトラブルを回避できます。 - 環境の一貫性
Dockerを使えば、どの環境でも同じ設定でプロジェクトを動かせます。たとえば、LinuxやWindows、MacOSといった異なるOSでも統一された環境が保証されます。 - トラブルシューティングの簡易化
問題が発生した際も、docker logs
コマンドで詳細なログを確認できるため、原因の特定と解決が容易です。
これらの理由から、私はDockerを選択しました。初心者にとっても、長期的な安定運用を考えるとDockerは非常に良いな選択肢です。
venvを活用する方法について
さらに、このプロジェクトはLinuxやWindows環境で**venv
を利用した実行**も可能です。プロジェクトに含まれているスクリプトstart_tts_webui.sh
は、LinuxユーザーがPython仮想環境でプロジェクトを直接実行するためのものです。同様に、Windowsでは仮想環境を作成し、必要な依存関係をインストールすることで実行できます。
venvを選ぶメリット:
- 軽量な設定が可能で、Dockerのような追加ツールを必要としない。
- システム全体に影響を与えることなく、プロジェクトごとに独立した環境を作成できる。
- ローカルでのデバッグやカスタマイズが容易。
ただし、この方法もPythonやCUDAなどの環境構築にある程度の知識が必要なため、初心者にはDockerがより手軽で安全な選択肢となるでしょう。
この記事では、環境構築の選択肢としてDocker、インストーラー、そしてvenv
のそれぞれの特徴を紹介しました。どの方法を選ぶかは、読者自身のスキルや利用環境に合わせて判断してください。実際のインストール手順は割愛しますが、公式ドキュメントやサンプルコードを参考に進めてみてください。
ブラウザでアクセスする方法
Dockerコンテナを起動後、以下のアドレスにアクセスすれば、Webインターフェースが表示されます:
http://localhost:3000
- アドレスの意味
localhost
は、自分のPCを指します。他のデバイスからアクセスしたい場合は、ホストPCのIPアドレスを使用してください。3000
は、プロジェクトが使用しているポート番号です。この番号が他のアプリケーションと競合する場合は、docker-compose.yml
の設定で変更できます。
- 画面が表示されない場合の対処法
- コンテナが起動しているか確認:以下のコマンドでコンテナが正常に動作しているか確認します:
docker ps
状態が「Up」になっていない場合、docker logs
を確認してください。 - ポートの競合を解消する:
3000
ポートを別のアプリケーションが使用している場合、競合が原因でアクセスできないことがあります。その場合、Docker設定ファイル内で別のポート番号に変更してください。
- コンテナが起動しているか確認:以下のコマンドでコンテナが正常に動作しているか確認します:
- 正常に表示される画面
ブラウザにアクセスすると、音声・音楽生成を操作できるWebインターフェースが表示されます。ここから、各機能を試したりカスタマイズを行うことができます。