注意:Bark 是 Suno 开源的文本转语音+模型。如果您正在寻找我们的文本转音乐模型,请访问我们的网页并加入我们的 Discord 社区。
Bark 是由 Suno 创建的基于 Transformer 的文本转音频模型。Bark 可以生成高度逼真的多语言语音以及其他音频——包括音乐、背景噪音和简单的音效。该模型还能产生非语言交流声音,如笑声、叹息和哭泣。为了支持研究社区,我们提供了预训练模型检查点的访问权限,这些模型已准备好进行推理并可用于商业用途。
Bark 是为研究目的而开发的。它不是一个传统的文本转语音模型,而是一个完全生成式的文本转音频模型,其输出可能会以意想不到的方式偏离给定的提示。Suno 不对生成的任何输出负责。使用时请自行承担风险,并请负责任地行事。
2023.05.01
- ©️ Bark 现已根据 MIT 许可证授权,意味着它现在可用于商业用途!
- ⚡ GPU 上速度提升 2 倍。CPU 上速度提升 10 倍。我们还增加了一个较小版本 Bark 的选项,它以略微降低质量为代价提供额外的速度提升。
- 📕 长文本生成、语音一致性增强和其他示例现已记录在新的 notebooks 部分。
- 👥 我们创建了一个语音提示库。我们希望这个资源能帮助您为您的用例找到有用的提示!您也可以加入我们的 Discord,社区在 #audio-prompts 频道中积极分享有用的提示。
- 💬 不断增长的社区支持和新功能访问:
[](https://suno.ai/discord)
2023.04.20
- 🐶 Bark 发布!
from bark import SAMPLE_RATE, generate_audio, preload_models
from scipy.io.wavfile import write as write_wav
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.
"""
audio_array = generate_audio(text_prompt)
# 将音频保存到磁盘
write_wav("bark_generation.wav", SAMPLE_RATE, audio_array)
# 在 notebook 中播放文本
Audio(audio_array, rate=SAMPLE_RATE)
[pizza1.webm](https://user-images.githubusercontent.com/34592747/cfa98e54-721c-4b9c-b962-688e09db684f.webm)
text_prompt = """
추석은 내가 가장 좋아하는 명절이다. 나는 며칠 동안 휴식을 취하고 친구 및 가족과 시간을 보낼 수 있습니다.
"""
audio_array = generate_audio(text_prompt)
[suno_korean.webm](https://user-images.githubusercontent.com/32879321/235313033-dc4477b9-2da0-4b94-9c8b-a8c2d8f5bb5e.webm)
*注意:由于 Bark 会自动从输入文本中识别语言,因此可以(例如)使用德语历史提示与英语文本。这通常会导致带有德语口音的英语音频。*
text_prompt = """
Der Dreißigjährige Krieg (1618-1648) war ein verheerender Konflikt, der Europa stark geprägt hat.
This is a beginning of the history. If you want to hear more, please continue.
"""
audio_array = generate_audio(text_prompt)
[suno_german_accent.webm](https://user-images.githubusercontent.com/34592747/3f96ab3e-02ec-49cb-97a6-cf5af0b3524a.webm)
text_prompt = """
♪ In the jungle, the mighty jungle, the lion barks tonight ♪
"""
audio_array = generate_audio(text_prompt)
[lion.webm](https://user-images.githubusercontent.com/5068315/230684766-97f5ea23-ad99-473c-924b-66b6fab24289.webm)
text_prompt = """
I have a silky smooth voice, and today I will tell you about
the exercise regimen of the common sloth.
"""
audio_array = generate_audio(text_prompt, history_prompt="v2/en_speaker_1")
[sloth.webm](https://user-images.githubusercontent.com/5068315/230684883-a344c619-a560-4ff5-8b99-b4463a34487b.webm)
默认情况下,generate_audio 适用于大约 13 秒的口语文本。有关如何进行长文本生成的示例,请参阅 👉 Notebook 👈
python -m bark --text "Hello, my name is Suno." --output_filename "example.wav"
‼️ 警告 ‼️ 请勿使用 pip install bark。它会安装一个不同的包,该包不由 Suno 管理。
pip install git+https://github.com/suno-ai/bark.git
或
git clone https://github.com/suno-ai/bark
cd bark && pip install .
Bark 从 4.31.0 版本开始可在 🤗 Transformers 库中使用,需要最少的依赖项和额外的包。开始步骤:
pip install git+https://github.com/huggingface/transformers.git
from transformers import AutoProcessor, BarkModel
processor = AutoProcessor.from_pretrained("suno/bark")
model = BarkModel.from_pretrained("suno/bark")
voice_preset = "v2/en_speaker_6"
inputs = processor("Hello, my dog is cute", voice_preset=voice_preset)
audio_array = model.generate(**inputs)
audio_array = audio_array.cpu().numpy().squeeze()
from IPython.display import Audio
sample_rate = model.generation_config.sample_rate
Audio(audio_array, rate=sample_rate)
或者使用第三方库(例如 scipy)将它们保存为 .wav 文件:
import scipy
sample_rate = model.generation_config.sample_rate
scipy.io.wavfile.write("bark_out.wav", rate=sample_rate, data=audio_array)
有关使用 🤗 Transformers 库进行 Bark 模型推理的更多详细信息,请参阅 Bark 文档 或动手实践的 Google Colab。
Bark 已在 CPU 和 GPU(pytorch 2.0+、CUDA 11.7 和 CUDA 12.0)上测试并运行。
在企业级 GPU 和 PyTorch nightly 版本上,Bark 可以大致实时生成音频。在较旧的 GPU、默认的 Colab 或 CPU 上,推理时间可能会显著变慢。对于较旧的 GPU 或 CPU,您可能需要考虑使用较小的模型。详细信息可以在我们的教程部分找到。
完整版本的 Bark 需要大约 12GB 的 VRAM 才能将所有内容同时保存在 GPU 上。
要使用较小版本的模型(应能装入 8GB VRAM),请设置环境变量 SUNO_USE_SMALL_MODELS=True。
如果您没有可用的硬件,或者想试用我们模型的更大版本,您也可以在此处注册我们的模型游乐场的早期访问权限 here。
Bark 是为研究和演示目的而开发的完全生成式文本转音频模型。它遵循类似于 AudioLM 和 Vall-E 的 GPT 风格架构,并使用来自 EnCodec 的量化音频表示。它不是传统的 TTS 模型,而是一个完全生成式的文本转音频模型,能够以意想不到的方式偏离任何给定的脚本。与以前的方法不同,输入文本提示直接转换为音频,而不使用音素作为中间步骤。因此,它可以泛化到语音之外的任意指令,例如音乐歌词、音效或其他非语音声音。
以下是一些已知的非语音声音列表,但我们每天都在发现更多。如果您发现特别有效的模式,请在 Discord 上告诉我们!
[laughter][laughs][sighs][music][gasps][clears throat]— 或 ... 表示犹豫♪ 表示歌词[MAN] 和 [WOMAN] 分别用于使 Bark 偏向男性和女性说话人| 语言 | 状态 |
|---|---|
| 英语 (en) | ✅ |
| 德语 (de) | ✅ |
| 西班牙语 (es) | ✅ |
| 法语 (fr) | ✅ |
| 印地语 (hi) | ✅ |
| 意大利语 (it) | ✅ |
| 日语 (ja) | ✅ |
| 韩语 (ko) | ✅ |
| 波兰语 (pl) | ✅ |
| 葡萄牙语 (pt) | ✅ |
| 俄语 (ru) | ✅ |
| 土耳其语 (tr) | ✅ |
| 简体中文 (zh) | ✅ |
未来语言支持请求请提交 此处 或 Discord 上的 #forums 频道。
Bark 根据 MIT 许可证授权。
我们正在为我们的模型(包括 Bark)开发一个游乐场。
如果您感兴趣,可以在此处注册早期访问 here。
```python
import os
os.environ["SUNO_OFFLOAD_CPU"] = "True"
os.environ["SUNO_USE_SMALL