Loading...

文章背景图

Bark:Suno 开源的文本到音频生成模型(多语言 TTS/音乐/音效)部署指南

2024-04-05
0
- 字
- 分钟
|

Bark:Suno 开源的文本到音频生成模型(多语言 TTS/音乐/音效)部署指南

Bark 是 Suno 开源的 Transformer 文本到音频生成模型,采用 GPT 风格架构(类似 AudioLM、Vall-E),用 EnCodec 量化音频表示。它不只是 TTS——能生成高真实感多语言语音、音乐、背景噪声、简单音效,甚至笑声/叹息/哭泣等非语言表达。MIT 协议可商用。

一、项目官方信息

项目 信息
GitHub 仓库 suno-ai/bark
在线 Demo Hugging Face Spaces
开源协议 MIT(2023-05 起可商用)
主要语言 Python
Star 数 39k+
公司 Suno(音乐生成公司)
架构 GPT 风格 + EnCodec

二、官方图片

Bark 仓库社交预览图:

Bark

三、环境要求

  • Python 3.9;
  • PyTorch 2.0+,CUDA 11.7 / 12.0;
  • GPU 推荐(完整版需 12GB 显存;small 版 8GB);
  • scipy、tqdm;
  • 首次运行自动从 Hugging Face 下载模型。

四、部署步骤

1. 安装

注意:不要用 pip install bark,那是另一个无关包。

pip install git+https://github.com/suno-ai/bark.git
# 或
git clone https://github.com/suno-ai/bark
cd bark && pip install .

2. 基础推理

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

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)

3. 命令行

python -m bark --text "Hello, my name is Suno." --output_filename "example.wav"

4. HuggingFace Transformers 调用

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()

5. 多语言(自动检测)

text_prompt = """
    추석은 내가 가장 좋아하는 명절이다.
"""
audio_array = generate_audio(text_prompt)

Bark 自动从输入文本判断语言,支持代码切换(中英混读带对应口音)。

6. 指定说话人预设

audio_array = generate_audio(
    "I have a silky smooth voice, and today I will tell you about exercise.",
    history_prompt="v2/en_speaker_1",
)

7. 生成音乐

text_prompt = """
    ♪ In the jungle, the mighty jungle, the lion barks tonight ♪
"""
audio_array = generate_audio(text_prompt)

五、使用方法

支持的语言

英语、德语、西班牙语、法语、印地语、意大利语、日语、韩语、波兰语、葡萄牙语、俄语、土耳其语、中文等。英文质量最佳。

非语言声音标签

  • [laughter]、[laughs]、[sighs]、[music]、[gasps]、[clears throat];
  • — 或 ... 表示犹豫;
  • ♪ 引导歌词;
  • 大写表示强调;
  • [MAN]、[WOMAN] 偏向男/女声。

显存优化

  • 完整版需 12GB 显存;
  • small 版:设置环境变量 SUNO_USE_SMALL_MODELS=True,可在 8GB 显存运行;
  • CPU / 老 GPU 推理慢,建议用 small 版。

长文本

默认 generate_audio 适合约 13 秒语音;长文本参考 notebooks/long_form_generation.ipynb 分段生成。

六、常见问题 FAQ

Q1:Bark 是什么? Suno 开源的文本到音频生成模型,不只 TTS,还能生成音乐、音效、非语言声音。

Q2:怎么安装? pip install git+https://github.com/suno-ai/bark.git,不要用 pip install bark。

Q3:支持中文吗? 支持,自动检测语言;英文质量最好。

Q4:能克隆音色吗? 不能直接自定义克隆,但提供 100+ 说话人预设。

Q5:长文本怎么生成? 参考 notebooks/long_form_generation.ipynb,分段拼接。

Q6:商用免费吗? MIT 协议,免费商用。

Q7:需要多大显存? 完整版 12GB,small 版(SUNO_USE_SMALL_MODELS=True)8GB。

七、跳转链接

评论交流

文章目录