「日本語でテキストから音声を合成したい」
「笑い声やため息などの感情を表現した音声を作成したい」
このような場合には、Barkがオススメです。
この記事では、Barkについて解説しています。
本記事の内容
- Barkとは?
- Barkのシステム要件
- Barkのインストール
- Barkの動作確認
それでは、上記に沿って解説していきます。
Barkとは?
Barkとは、テキストから音声を生成できるテキスト・オーディオ・モデルです。
このtext-to-speechは、多言語音声に対応しています。
嬉しいことに、日本語も対応しています。
そのため、日本語での文章を音声にすることが可能です。
また、Barkは音楽や効果音を出力することもできます。
それらは、[music]といったプロンプトで表現します。
さらに、Barkでは感情表現まで可能です。
ため息をついたり、笑ったり、咳払いまで音声で表現できます。
例えば、次のようなプロンプトを入力します。
(漢字で読みがオカシイ場合はひらがなで対応)
せんせい。 良心に従って真実を述べ、何事も隠さず、偽りを述べないことを誓います。山田太郎[laughs]
このプロンプトから、次のような音声を生成することができます。
他には、話者指定も可能です。
次のような話者(性別)を指定したプロンプトを入力します。
WOMAN: あなたは誰ですか? MAN: 変なおじさんです。 WOMAN: ヤバいっしょ
この場合は、次のような音声が生成されます。
このような感じで、Barkを使うと音声生成の可能性が広がります。
したがって、 Barkはtext-to-speechと言うよりtext-to-audioと表現できますね。
以上、Barkについて説明しました。
次は、Barkのシステム要件を説明します。
Barkのシステム要件
Barkの公式ページは、GitHub上にあります。
システム要件としては、PyTorchが挙げられています。
一応、CPUでも稼働はするようです。
しかし、CPUや古いGPUは「推論時間が10~100倍遅くなる」可能性があるようです。
そのため、最低限VRAM 8GB以上は必要と考えた方がよさそうです。
あと、PyTorchのバージョンは2.0以降がサポート対象になっています。
以上、Barkのシステム要件を説明しました。
次は、Barkのインストールを説明します。
Barkのインストール
Barkのインストールは、Python仮想環境の利用をオススメします。
Python仮想環境は、次の記事で解説しています。
検証は、次のバージョンのPythonで行います。
> python -V Python 3.10.4
では、Barkのインストールを進めていきましょう。
と言っても、次のコマンドで一撃です。
pip install git+https://github.com/suno-ai/bark.git
ただし、上記の方法だとCPU版のPyTorchがインストールされます。
よって、GPU版のPyTorchを上書きでインストールしましょう。
pip install -U torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
CUDAのバージョンは、各自の環境に合わせてください。
GPU版PyTorchのインストールが完了したら、Barkのインストールは完了です。
以上、Barkのインストールを説明しました。
次は、Barkの動作確認を説明します。
Barkの動作確認
Barkの動作確認は、次のコードで行います。
from bark import SAMPLE_RATE, generate_audio from scipy.io.wavfile import write as write_wav text_prompt = """ おはようございます[laughs] """ audio_array = generate_audio(text_prompt, history_prompt="ja_speaker_0") write_wav("audio.wav", SAMPLE_RATE, audio_array)
上記コードを実行して、エラーなく完了すればOKです。
初回実行時(モデルが無い場合)は、モデルのダウンロードに時間がかかります。
5.3GBのモデルは、必須です。
必須と言っても、自動的にダウンロードされます。
それ以外のファイルは、言語毎にダウンロードされます。
上記のケースだと、英語と日本語のモデルが確認できます。
コードの処理が完了すると、「audio.wav」が同一ディレクトリ上に確認できるでしょう。
再生して、プロンプト通りかどうか確認してみてください。
女性が最後に笑っていれば、動作としては問題ありません。
なお、音声パターンは次のようなルールで指定できます。
{lang_code}_speaker_{0-9}
また、[laughs]以外のパターンについてはGitHubの公式ページで確認できます。
以上、Barkの動作確認を説明しました。