语言:
- 英语
- 德语
- 西班牙语
- 法语
- 印地语
- 意大利语
- 日语
- 韩语
- 波兰语
- 葡萄牙语
- 俄语
- 土耳其语
- 中文
缩略图: >-
https://user-images.githubusercontent.com/5068315/230698495-cbb1ced9-c911-4c9a-941d-a1a4a1286ac6.png
库: bark
许可证: mit
标签:
- bark
- 音频
- 文本转语音
管道标签: 文本转语音
推理: true
Bark
Bark是由Suno创建的基于Transformer的文本转音频模型。Bark可以生成高度逼真的多语言语音以及其他音频——包括音乐、背景噪音和简单的音效。该模型还能产生非语言交流,如笑声、叹息和哭泣。为了支持研究社区,我们提供了可用于推理的预训练模型检查点。
原始GitHub仓库和模型卡可以在这里找到。
此模型仅供研究用途。模型输出未经审查,作者不认可生成内容中的观点。使用风险自负。
发布两个检查点:
示例
亲自尝试Bark!
🤗 Transformers 使用
您可以从4.31.0版本开始使用🤗 Transformers库本地运行Bark。
- 首先安装🤗 Transformers库和scipy:
pip install --upgrade pip
pip install --upgrade transformers scipy
- 通过
Text-to-Speech
(TTS)管道运行推理。只需几行代码即可通过TTS管道推断bark模型!
from transformers import pipeline
import scipy
synthesiser = pipeline("text-to-speech", "suno/bark")
speech = synthesiser("你好,我的狗比你酷!", forward_params={"do_sample": True})
scipy.io.wavfile.write("bark_out.wav", rate=speech["sampling_rate"], data=speech["audio"])
- 通过Transformers建模代码运行推理。您可以使用处理器+生成代码将文本转换为单声道24 kHz语音波形,以获得更细粒度的控制。
from transformers import AutoProcessor, AutoModel
processor = AutoProcessor.from_pretrained("suno/bark")
model = AutoModel.from_pretrained("suno/bark")
inputs = processor(
text=["你好,我叫Suno。呃——我喜欢披萨。[笑] 但我还有其他爱好,比如玩井字棋。"],
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())
有关使用🤗 Transformers库进行Bark模型推理的更多详细信息,请参阅Bark文档。
Suno 使用
您也可以通过原始[Bark库]((https://github.com/suno-ai/bark)本地运行Bark:
-
首先安装bark
库
-
运行以下Python代码:
from bark import SAMPLE_RATE, generate_audio, preload_models
from IPython.display import Audio
preload_models()
text_prompt = """
你好,我叫Suno。呃——我喜欢披萨。[笑]
但我还有其他爱好,比如玩井字棋。
"""
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是由三个Transformer模型组成的系列,将文本转换为音频。
文本到语义标记
语义到粗粒度标记
粗粒度到细粒度标记
- 输入:EnCodec的前两个码本
- 输出:EnCodec的8个码本
架构
模型 |
参数数量 |
注意力机制 |
输出词汇大小 |
文本到语义标记 |
80/300 M |
因果 |
10,000 |
语义到粗粒度标记 |
80/300 M |
因果 |
2x 1,024 |
粗粒度到细粒度标记 |
80/300 M |
非因果 |
6x 1,024 |
发布日期
2023年4月
更广泛的影响
我们预计该模型的文本转音频功能可用于改进各种语言的辅助工具。
虽然我们希望此次发布能使用户发挥创造力并构建有益的应用,但我们承认任何文本转音频模型都有双重用途的潜力。虽然用Bark克隆已知人物的声音并不简单,但仍可能被用于恶意目的。为了进一步减少Bark的意外使用,我们还发布了一个简单的分类器,以高精度检测Bark生成的音频(参见主仓库的笔记本部分)。