2024年5月19日日曜日

Stable diffusion WebUI で ERROR: python3-venv is not installed, aborting...

Stable diffusion WebUI で ERROR: python3-venv is not installed, aborting...

概要

最新版を clone したらタイトルのエラーが発生したので対応しました

環境

  • macOS 14.4.1
  • sd-webui 1.6.0
  • Python 3.10.11

対応方法

デフォルトだと python3.10 というコマンドを探すのでこれがないとエラーになります
Homebrew でインストールしてもいいのですがメインの Python はすでに 3.12 になっているので 3.10 にすると困ります
brew link で切り替えるのも手ですが毎回切り替えるのも面倒なので pyenv を使います

  • cd stable-diffusion-webui
  • pyenv local 3.10.11

これで python3.10 コマンドが stable-diffusion-webui 配下で使えるようになります

動作確認

あとは ./webui.sh を実行すれば OK です

最後に

執筆時点の sd-webui では Python 3.10 が推奨っぽいです
最新版にした場合はサポートしている Python のバージョンを確認して pyenv で切り替えると良いかなと思います

参考サイト

2024年5月18日土曜日

Bark 用の学習済み音声モデル(npz)を使ってTTSさせる方法

Bark 用の学習済み音声モデル(npz)を使ってTTSさせる方法

概要

Bark は transformers に対応しているので学習した音声モデルを使うことができます
今回は transformers を使って Python スクリプトで tts してみます

環境

  • macOS 14.4.1 (M2Pro Mac mini)
  • Python 3.12.2
  • bark 0.1.5
  • scipy 1.13.0
  • transformers 4.40.2

サンプルコード

from scipy.io import wavfile
from transformers import AutoProcessor, BarkModel

# モデルのダウンロード
processor = AutoProcessor.from_pretrained("suno/bark-small")
model = BarkModel.from_pretrained("suno/bark-small")

# 学習済み音声モデルの指定
# voice_preset = "v2/ja_speaker_6"
voice_preset = "/Users/user01/one-click-installers-tts-6.0/tts-generation-webui/voices/Alice.npz"

# TTS設定
inputs = processor("こんにちわ、今日はいい天気ですね", voice_preset=voice_preset)

# モデルから音声の作成
audio_array = model.generate(**inputs, semantic_max_new_tokens=100)
audio_array = audio_array.cpu().numpy().squeeze()

# 音声の保存
sample_rate = model.generation_config.sample_rate
wavfile.write("/Users/user01/Downloads/audio.wav", sample_rate, audio_array)

最後に

tts-generator-webui でも同じように学習済み音声モデルを使って TTS できますがどちらがいいのが気になりました
transformers を使い慣れている人は直接 Python を触れる方が良いのかもしれません

参考サイト

2024年5月17日金曜日

Bark で AI 音声作成超入門

Bark で AI 音声作成超入門

概要

Bark は事前に学習された音声モデルを使って与えた文章を読み上げることができる transformers で扱えるツールです
今回はデフォルトの音声モデルを使ってとりあえず文章を読ませてみました
最終的には音声データが作成できます

環境

  • macOS 14.4.1 (M2Pro Mac mini)
  • Python 3.12.2
  • bark 0.1.5

インストール

  • pipenv install bark

サンプルコード

import os

from bark import SAMPLE_RATE, generate_audio, preload_models
from IPython.display import Audio
from scipy.io.wavfile import write as write_wav

# AppleSillicon上で動作させるための設定
os.environ["SUNO_ENABLE_MPS"] = "True"

# 事前学習済みの音声モデルのダウンロード(全部10GBほどあるので注意
preload_models()

# 音声モデルに喋らせる文章の準備
text_prompt = """
     Hello, my name is Suno. And, uh — and I like pizza. [laughs] 
     But I also have other interests such as playing tic tac toe.
"""
audio_array = generate_audio(text_prompt)

# 音声モデルから実際に音声を作成する
write_wav("bark_generation.wav", SAMPLE_RATE, audio_array)

# 音声の再生
Audio(audio_array, rate=SAMPLE_RATE)

モデルは ~/.cache/suno/bark_v0/fine_2.pt などにダウンロードされます

動作確認

サンプルコードを実行すると自動で音声が再生されます
サンプルコードは英語ですが日本語でも普通に再生されました

最後に

bark で TTS をとりあえず試してみました
これを応用して自分の声の音声モデルを作成すれば自分のクローンが作れます
また歌を歌ってもらうこともできるようです

初回にダウンロードするモデルのデータがかなり大きいのでディスクの容量に注意してください
M2 Mac の場合 GPU 対応していないので少し時間がかかります
低スペックのマシンだと音声を生成するのにかなり時間がかかるかもしれません
喋らせる文章が長ければ長いほど実行にも時間がかかります

成功した場合の音声ファイルは 1MB 弱ですが失敗すると100MBほどになりビープ音みたいな感じになることもあったので失敗する場合は再度実行してみてください

参考サイト

2024年5月16日木曜日

AudioCraft を M2 mac mini 上で動かしてみた

AudioCraft を M2 mac mini 上で動かしてみた

概要

AudioCraft は音を生成することができる MusicGen や AudioGen を簡単に扱うことができるツールです
今回は M2 mac 上にインストールして AudioGen を使ってみました

環境

  • macOS 14.4.1
  • Python 3.9.17
  • AudioCraft 1.3.0 (795f8dc)

Python3.9 インストール

  • pyenv install 3.9.17

プロジェクトクローン

  • git clone https://github.com/facebookresearch/audiocraft
  • cd audiocraft
  • pyenv local 3.9.17

プロジェクトセットアップ

pytorch はバージョン 2.1.0 である必要があります

  • pip install "torch==2.1.0"
  • pip install -r requirements.txt

MusicGen 用のデモアプリの起動

MusicGen にはデモアプリが付属しているので今回はそれを使います

  • python -m demos.musicgen_app --share

http://127.0.0.1:7860 で起動します

動作確認

Input Text に作成したい音楽のテキストを入力してみます
今回は「happy rock」と入力しました
あとは「Submit」をクリックするだけです

初回は各種モデルをダウンロードするので時間がかかります
モデルのサイズは全部で 5GB ほどあるのでディスク容量に注意しましょう

音楽が完成すると右側でダウンロードや直接再生ができます
デフォルトでは10秒間分の音楽のみ生成してくれます

最後に

AudioCraft の MusicGen を試してみました
sd-webui の音楽版という感じでテキストから音楽を作成することができます
今回は10秒でしたがもっと長い音楽も生成することができます

AudioGen 用のデモもあるのですが AudioGen は WebUI ではないようです

参考サイト

2024年5月15日水曜日

tts-generator-webui で bark 用の音声モデルを使ってテキストの読み上げをやってみる

tts-generator-webui で bark 用の音声モデルを使ってテキストの読み上げをやってみる

概要

前回 Bark 用のモデルを生成してみました
今回はそれを使ってテキストの読み上げを行います

環境

  • macOS 14.4.1 (M2Pro Mac mini)
  • tts-generator-webui 6.0

方法

tts-generator-webui を起動します
最初に「Generation (Bark)」タブに移動します

次に「Audio Voice」で学習させた Bark 用の音声モデルファイルを指定します (npz)
次に「Prompt」に読み上げさせる文章を指定します
あとは画面下部にある「Generate」をクリックするだけです

初回生成時は Bark 関連のモデルがダウンロードされるので時間がかかります
5GB ほどあるのでディスクの容量に注意しましょう

ちょっとポイント

読み上げる文章が短い場合には Max length パラメータを調整しましょう
最大で18秒かけて文章を読み上げてくれますが文字が少ないのに length が長いとうまく読み上げてくれないことがあるので文字数に応じて length を調整するようにしてください

自然に読み上げてみてそれにかかった秒数を指定するのが良いかなと思います

動作確認

Generate 後に音声が完了するとそのまま再生することができるので再生して確認しましょう

最後に

Bark 用の音声モデルを使ってテキストの読み上げを行ってみました
最大で18秒分しか生成できないので長文を読ませる場合には何度か生成する必要があります
日本語にも対応していました (音声モデルも日本語の音源から生成しています)

Bark で使用したモデルファイル (npz) は RVC で生成したモデルファイル (pth) では使えないので注意しましょう

どちらも音声モデルから新しい音声を生成する手法ですが

  • Bark はテキストから音声を生成するのに対して
  • RVC は音声から声の部分だけを挿げ替えて音声を生成する

ので使用するモデルも変わってきます

また StableDiffusion のように生成ごとに結果が変わるのでうまく読み上げてくれるまでガチャする必要があります

2024年5月14日火曜日

tts-generator-webui で bark 用の音声モデルを作成する

tts-generator-webui で bark 用の音声モデルを作成する

概要

Bark 用の音声モデルを生成するのに有名なサンプルで https://github.com/serp-ai/bark-with-voice-clone がありますがこれだといろいろとハマるところがあります
tts-generator-webui には bark の Generate と Voice Clone が WebUI として実装されているので簡単に生成することができます
今回は Bark 用の音声モデル npz ファイルを生成する方法を紹介します

環境

  • macOS 14.4.1 (M2Pro Mac mini)
  • tts-generator-webui 6.0

準備

事前に1分程度の音声ファイルを準備しましょう
ファイルは BGM などのないシンプルな音声ファイルが望ましいです

モデル生成

tts-generator-webui を起動します
次に「Bark Voice Clone」タブを選択します
「Input Audio」に準備した音声ファイルを指定します

M2 mac の場合 GPU は使えないので「Use GPU」のチェックは外しましょう

そして「Generate Voice」をクリックします
しばらくすると npz ファイルが作成されます

またモデルの生成が完了したら「Use as histroy」をクリックしておきましょう
そのまま Generate の画面に移動しますが念の為モデルが保存されているか確認するためです

Tips

音源ファイルが長すぎるとうまくいかないことがあるので可能な限り短い音源を準備しましょう
自分は 2 分程度であればうまくモデルを生成することができました

最後に

tts-generator-webui で Bark 用の音声モデルを生成してみました
次回はこの音声モデルを使ってテキストを読み上げてみたいと思います

2024年5月13日月曜日

tts-generator-webui を M2 mac mini 上で動かす方法

tts-generator-webui を M2 mac mini 上で動かす方法

概要

tts-generator-webui を M2 mac mini 上で動かしてみました
voice-generator-webui よりもこちらのほうが良いかなと思います

環境

  • macOS 14.4.1 (M2Pro Mac mini)
  • tts-generator-webui 6.0

ダウンロード

https://github.com/rsxdalv/one-click-installers-tts/archive/refs/tags/v6.0.zip これをダウンロードします

ダウンロードしたら解答しましょう

  • unzip one-click-installers-tts-6.0.zip

インストール/起動

必要なものをすべてインストールしてくれるスクリプトがあるのでそれを実行します

  • cd one-click-installers-tts-6.0
  • chmod +x start_macos.sh
  • ./start_macos.sh

途中 GPU を選択する部分があるので Apple M Series を選択しましょう

A) NVIDIA
B) AMD
C) Apple M Series
D) None (I want to run in CPU mode)

Input> C

conda や Python などを自動で installer_files 配下にダウンロード、インストールしてくれます
Python のバージョンは 3.10.14 でした (installer_files/env/bin/python

必要なライブラリがインストールされ localhost:3000 で起動すれば OK です

動作確認

以下のような感じで起動すれば OK です
各音声モデルジェネレータごとにタブで分かれているのでわかりやすいです

React 版は localhost:7860/ で動作しているようです

最後に

tts-generator-webui を M2 mac 上で動作させてみました
次回はこれを使って音声モデルから適当な文章を喋らせてみようと思います

参考サイト