AudioWebUI(AudioCraft、TTS、RVC、Whisper)をセットアップ

スポンサーリンク

Ubuntu22.04のデスクトップ環境でAudioCraftを試したいので、Dockerを使用して実現します。下記のGitHubのクローンを作成して進めます。AudioWEBUIをセットアップすれば、AudioCraftを使用することができるようです。ほかにも、text to speech、RVC、Whisperも含んでいます。

実機(ローカル)にUbuntuはインストールしたばかりですが、DockerとDocker Composeをインストール済みです。さらにGPUをコンテナで使用するため、NVIDIA container toolkitをインストール済みです。

GitHub - LajaSoft/audio-webui-docker: docker compose wrapper for audio-webui
docker compose wrapper for audio-webui. Contribute to LajaSoft/audio-webui-docker development by creating an account on ...
git clone https://github.com/LajaSoft/audio-webui-docker.git

プロジェクトに移動して、コンテナを起動します。

cd audio-webui-docker
docker compose up

audio-webui-docker-app-1 | https://developer.nvidia.com/ngc/nvidia-deep-learning-container-license
audio-webui-docker-app-1 |
audio-webui-docker-app-1 | A copy of this license is made available in this container at /NGC-DL-CONTAINER-LICENSE for your convenience.
audio-webui-docker-app-1 |
audio-webui-docker-app-1 | /opt/nvidia/nvidia_entrypoint.sh: line 67: /app/run.sh: Permission denied
audio-webui-docker-app-1 | /opt/nvidia/nvidia_entrypoint.sh: line 67: exec: /app/run.sh: cannot execute: Permission denied
audio-webui-docker-app-1 exited with code 126

エラーメッセージは、/app/run.shが実行可能なパーミッションを持っていないことを示しています。これは、コンテナ内の/app/run.shファイルが実行可能なパーミッションを持たないためです。

以下の手順で問題を解決できます。

  1. ローカルマシン上で、run.shファイルのパーミッションを確認します。これは、コンテナをビルドする前にローカルで実行する必要があります。
  2. run.shに実行パーミッションを付与します。Ubuntuなので、ターミナルで次のコマンドを実行できます。
sudo chmod +x run.sh

しかし権限を変更しても同じエラーがなおりません。

コマンドで権限を変更したにもかかわらず、同じエラーが発生する場合、いくつかの考えられる原因と対処法を調べてきました。

  1. Docker キャッシュ: 以前にビルドしたイメージがキャッシュされている可能性があります。Docker キャッシュをクリアして、イメージを再ビルドしてみる。
docker compose build --no-cache
docker compose up
  1. Dockerfile の確認: Dockerfilerun.sh のパスやコピー方法が正しく設定されているか確認してみる。特に COPY コマンドで run.sh がコピーされる部分を確認してみる。
  2. ユーザー権限: コンテナ内でスクリプトを実行するユーザーが run.sh を実行する権限を持っているか確認してみる。必要であれば、Dockerfile でユーザー権限を設定できます。
  3. エントリーポイント: エントリーポイント (ENTRYPOINT インストラクション) でスクリプトを実行する設定がされている場合、その設定が正しいか確認する。
  4. スクリプトの内容: run.sh スクリプトが依存する他のファイルやサービスが正しく設定されているかも確認する。
  5. デバッグ: より詳細な情報が必要な場合は、run.sh スクリプトの冒頭にデバッグ用のコード(例えば ls -l /appwhoami など)を追加して、コンテナのログに出力させてみる。

しかし、ほかに重要なコンテナはないので、次のコマンドで未使用、または不要なDockerオブジェクトをシステムから削除します。イメージも削除することにしました。

docker system prune
docker rmi $(docker images -q)

その後、次のコマンドを再実行します。

docker compose up

今度はうまくいきました。ブラウザでアクセスします。

http://loclahost:7860

AudioCraftができればいいと思っていましたが、他にも機能があるようです。テキストから音声ファイルを作成するText to Speechや、音声データから、文字起こししてくれるWhisperなどです。PCのスペックは、メモリ16GB、NVIDIAのグラボがGTX1060です。グラボの発売日が、2016年7月で古いパソコンですが動作しました。

タイトルとURLをコピーしました