🚀 Bark
Barkは、Sunoによって作成された、Transformerベースのテキストから音声への変換モデルです。Barkは、非常にリアルな多言語音声や、音楽、背景音、簡単な効果音などのその他の音声を生成することができます。また、笑い声、ため息、泣き声などの非言語的なコミュニケーション音も生成できます。研究コミュニティをサポートするために、推論に使用できる事前学習済みのモデルチェックポイントを提供しています。
オリジナルのGitHubリポジトリとモデルカードはこちらで確認できます。
このモデルは研究目的のみを想定しています。モデルの出力は検閲されておらず、著者は生成された内容に含まれる意見を支持するものではありません。自己責任で使用してください。
2つのチェックポイントがリリースされています:
✨ 主な機能
- 非常にリアルな多言語音声を生成することができます。
- 音楽、背景音、簡単な効果音などのその他の音声も生成できます。
- 笑い声、ため息、泣き声などの非言語的なコミュニケーション音も生成できます。
🚀 クイックスタート
試してみる
自分でBarkを試してみましょう!
📦 インストール
🤗 Transformersを使用する場合
バージョン4.31.0以降の🤗 Transformersライブラリを使用して、Barkをローカルで実行することができます。
- まず、🤗 Transformersライブラリとscipyをインストールします。
pip install --upgrade pip
pip install --upgrade transformers scipy
💻 使用例
🤗 Transformersを使用する場合
基本的な使用法
Text-to-Speech
(TTS)パイプラインを介して推論を実行します。わずか数行のコードで、TTSパイプラインを介してBarkモデルを推論することができます!
from transformers import pipeline
import scipy
synthesiser = pipeline("text-to-speech", "suno/bark")
speech = synthesiser("Hello, my dog is cooler than you!", forward_params={"do_sample": True})
scipy.io.wavfile.write("bark_out.wav", rate=speech["sampling_rate"], data=speech["audio"])
高度な使用法
Transformersのモデリングコードを介して推論を実行します。processor + generateコードを使用して、より細かい制御を行い、テキストをモノラル24kHzの音声波形に変換することができます。
from transformers import AutoProcessor, AutoModel
processor = AutoProcessor.from_pretrained("suno/bark")
model = AutoModel.from_pretrained("suno/bark")
inputs = processor(
text=["Hello, my name is Suno. And, uh — and I like pizza. [laughs] But I also have other interests such as playing tic tac toe."],
return_tensors="pt",
)
speech_values = model.generate(**inputs, do_sample=True)
音声サンプルの再生または保存
ipynbノートブックで音声サンプルを再生するには、次のコードを使用します。
from IPython.display import Audio
sampling_rate = model.generation_config.sample_rate
Audio(speech_values.cpu().numpy().squeeze(), rate=sampling_rate)
または、サードパーティのライブラリ(例:scipy
)を使用して、.wav
ファイルとして保存することもできます。
import scipy
sampling_rate = model.config.sample_rate
scipy.io.wavfile.write("bark_out.wav", rate=sampling_rate, data=speech_values.cpu().numpy().squeeze())
Sunoを使用する場合
元のBarkライブラリを介して、Barkをローカルで実行することもできます。
- まず、
bark
ライブラリをインストールします。
- 次のPythonコードを実行します。
from bark import SAMPLE_RATE, generate_audio, preload_models
from IPython.display import Audio
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.
"""
speech_array = generate_audio(text_prompt)
Audio(speech_array, rate=SAMPLE_RATE)
pizza.webm
audio_array
をWAVファイルとして保存するには、次のコードを使用します。
from scipy.io.wavfile import write as write_wav
write_wav("/path/to/audio.wav", SAMPLE_RATE, audio_array)
🔧 技術詳細
モデルの詳細
ここでリリースされたモデルに関する追加情報は以下の通りです。
Barkは、テキストを音声に変換する3つのTransformerモデルのシリーズです。
テキストからセマンティックトークンへ
セマンティックトークンから粗いトークンへ
粗いトークンから細かいトークンへ
- 入力:EnCodecの最初の2つのコードブック
- 出力:EnCodecの8つのコードブック
アーキテクチャ
モデル |
パラメータ数 |
アテンション |
出力語彙サイズ |
テキストからセマンティックトークン |
80/300 M |
因果的 |
10,000 |
セマンティックトークンから粗いトークン |
80/300 M |
因果的 |
2x 1,024 |
粗いトークンから細かいトークン |
80/300 M |
非因果的 |
6x 1,024 |
リリース日
2023年4月
📚 ドキュメント
広範な影響
このモデルのテキストから音声への変換機能は、さまざまな言語のアクセシビリティツールの改善に役立つことが期待されます。
このリリースにより、ユーザーが創造性を発揮し、良い影響を与えるアプリケーションを構築できることを願っていますが、テキストから音声への変換モデルは二重使用の可能性があることを認識しています。Barkで既知の人物を声でクローンすることは簡単ではありませんが、悪意のある目的で使用される可能性もあります。Barkの意図しない使用の可能性をさらに減らすために、Barkで生成された音声を高精度で検出する簡単な分類器もリリースしています(メインリポジトリのノートブックセクションを参照)。
📄 ライセンス
このモデルはMITライセンスの下で公開されています。