今天跟大家分享一个文本转语音的开源模型:Bark
Bark 是由Suno创建的基于转换器的文本到音频模型。Bark 可以生成高度逼真的多语言语音以及其他音频 - 包括音乐、背景噪音和简单的音效。该模型还可以产生非语言交流,如大笑、叹息和哭泣。
该项目刚开源不久, GitHub Star 数也达到了 4500+,估计很快就破万了。现在详细介绍下该项目的功用吧。
功能概况:
- 非常真实自然的语音
- 英文效果最佳,其他语言还欠佳
- 支持通过文本生成歌曲
- 支持生成背景噪音、简单的音效
- 支持大笑、叹息、哭泣
💻安装
pip install git+https://github.com/suno-ai/bark.git
或者
git clone https://github.com/suno-ai/bark
cd bark && pip install .
🛠️硬件和推理速度
Bark 经过测试,可在 CPU 和 GPU(pytorch 2.0+
、CUDA 11.7 和 CUDA 12.0)上运行。运行 Bark 需要运行 >100M 的参数转换器模型。在现代 GPU 和 PyTorch nightly 上,Bark 可以大致实时地生成音频。在较旧的 GPU、默认 colab 或 CPU 上,推理时间可能会慢 10-100 倍。
支持的语言
语言 | 地位 |
---|---|
英语 (zh) | ✅ |
德语 (de) | ✅ |
西班牙语 | ✅ |
法语 (fr) | ✅ |
印地语(嗨) | ✅ |
意大利语(它) | ✅ |
日语 (ja) | ✅ |
韩文 (ko) | ✅ |
波兰语(复数) | ✅ |
葡萄牙语 (pt) | ✅ |
俄语 (ru) | ✅ |
土耳其语 (tr) | ✅ |
简体中文 (zh) | ✅ |
🤖用法
from bark import SAMPLE_RATE, generate_audio
from IPython.display import Audio
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)
Audio(audio_array, rate=SAMPLE_RATE)
要保存audio_array
为 WAV 文件:
from scipy.io.wavfile import write as write_wav
write_wav("/path/to/audio.wav", SAMPLE_RATE, audio_array)
Bark 支持开箱即用的各种语言,并自动根据输入文本确定语言。当出现代码转换文本提示时,Bark 将尝试使用相应语言的本地口音。英语质量目前是最好的。
text_prompt = """
Buenos días Miguel. Tu colega piensa que tu alemán es extremadamente malo.
But I suppose your english isn't terrible.
"""
audio_array = generate_audio(text_prompt)
🎶音乐
Bark 可以生成所有类型的音频,并且原则上看不出语音和音乐之间的区别。有时 Bark 选择将文本生成为音乐,可以通过在歌词周围添加音符来帮助它。
text_prompt = """
♪ In the jungle, the mighty jungle, the lion barks tonight ♪
"""
audio_array = generate_audio(text_prompt)
👥扬声器提示
您可以提供特定的演讲者提示,例如旁白、男人、女人等。请注意,这些提示并不总是得到尊重,尤其是在给出冲突的音频历史提示时。
text_prompt = """
WOMAN: I would like an oatmilk latte please.
MAN: Wow, that's expensive!
"""
audio_array = generate_audio(text_prompt)
注意:使用Python执行代码时,会默认识别电脑上有无GPU,如果没有GPU则会下载可用于CPU的训练模型,默认模型文件下载地址为当前用户目录.cache文件夹下,可以通过配置XDG_CACHE_HOME环境变量指定模型下载位置
赶快给你的同行朋友们安利一波,一起体验一下它的神奇功用吧。