
Jbark是一个功能强大的Python库,它基于原始的Bark To To To To To To To Toexech项目的功能[https://github.com/suno-ai/bark],并添加了简单的语音转换功能。它提供了一个无缝的界面,用于从文本中生成高质量的语音,提取基本语音特征并将这些特征应用于生成的音频。
JBark的主要功能包括:
无论您是开发虚拟助手,创建有声读物,还是从事需要灵活且高质量的语音合成的任何项目,JBark都提供了使您的想法栩栩如生所需的工具。
要安装jbark,请按照以下步骤:
确保系统上安装了3.7或更高版本。
安装jbark及其依赖性:
pip install jbark numpy torch scipy librosa resampy
注意:JBark使用CPU默认情况下进行计算。如果要使用GPU加速度,请确保安装适当的CUDA版本的Pytorch版本。
这是如何使用jbark的一个基本示例:
from jbark import JBark
# Initialize jBark
jbark = JBark ()
# Generate audio from text
text = "Hello, this is a test of jBark text-to-speech."
output_path = "output.wav"
audio_array = jbark . generate_audio ( text , output_path )
# Extract voice characteristics
sample_audio = "sample_voice.wav"
voice_chars = jbark . simple_voice_clone ( sample_audio )
# Generate audio with simple voice conversion
converted_text = "This is speech using simple voice conversion."
converted_output_path = "converted_output.wav"
converted_audio = jbark . generate_with_cloned_voice ( converted_text , voice_chars , converted_output_path )
# List supported languages
languages = jbark . list_supported_languages ()
print ( "Supported languages:" , languages )此示例演示了生成语音,提取语音特征以及将简单的语音转换应用于生成的音频的基本工作流程。
JBark提供了几种自定义的选项:
警告抑制:默认情况下,jbark抑制了常见警告。此行为是内部处理的,不需要用户配置。
语音预设:生成音频时,您可以指定语音预设:
audio_array = jbark . generate_audio ( text , history_prompt = "v2/en_speaker_6" )语音转换参数:您可以通过修改JBark类中的simple_voice_conversion方法来调整音高转移和节奏调整的强度。
__init__(self)初始化JBARK实例,抑制警告,并预加载必要的模型。
generate_audio(self, text_prompt: str, output_path: str = None, history_prompt: str = None) -> numpy.ndarray从给定的文本提示中生成音频。
text_prompt :转换为语音的文本。output_path :可选。保存生成的音频的路径。history_prompt :可选。语音预设要使用。返回:包含音频数据的numpy数组。
simple_voice_clone(self, audio_path: str) -> dict从音频样本中提取基本语音特征。
audio_path :通往音频样本的路径,以进行语音特征提取。返回:包含基本语音特征(音调和节奏)的字典。
generate_with_cloned_voice(self, text_prompt: str, voice_characteristics: dict, output_path: str) -> numpy.ndarray使用基于提取的语音特性的简单语音转换来生成音频。
text_prompt :转换为语音的文本。voice_characteristics :包含语音特征(音高和节奏)的字典。output_path :保存生成的音频的路径。返回:包含音频数据的numpy数组。
simple_voice_conversion(self, audio: numpy.ndarray, voice_characteristics: dict) -> numpy.ndarray根据给定的语音特征将简单的语音转换应用于输入音频。
audio :输入音频阵列。voice_characteristics :包含语音特征(音高和节奏)的字典。返回:转换后的音频阵列。
custom_time_stretch(self, audio: numpy.ndarray, rate: float) -> numpy.ndarray使用重采样的自定义时间拉伸功能。
audio :输入音频阵列。rate :时间延长速率。返回:时间拉伸的音频阵列。
list_supported_languages(self) -> dict返回支持语言的字典。
JBark的设计有模块化和可扩展性。主要组成部分是:
该库遵循一个立面模式,JBark类为基础文本到语音转换系统提供了简化的接口。
Jbark配备了两个测试套件:
基本测试套件( test_jbark.py ):运行基本测试套件:
python test_jbark.py
这将启动一个交互式菜单,使您可以测试jbark库的各种功能。
扩展的测试套件( test2.py ):运行扩展的测试套件:
python test2.py
该套件提供了更全面的测试,包括音频生成,语音克隆,语音转换,语言支持,错误处理和性能测试的变化。
对于调试,您可以使用Python的内置pdb模块或Pycharm或Vscode等IDE。
问:为什么音频发电速度很慢?答:音频生成速度取决于您的硬件。 JBark默认情况下使用CPU进行计算。对于更快的处理,请考虑使用具有更强大CPU或实现GPU支持的机器。
问:简单的语音转换有多有效?答:JBark中简单的语音转换功能提供了基本的音高和节奏调整。虽然它可以改变某些语音特征,但它没有提供与更高级方法相同的语音克隆质量。结果可能会根据输入文本和目标语音特征而有所不同。
问:如何提高语音转换的质量?答:使用高质量的音频样本进行语音特征提取,理想情况下,具有清晰的语音和最小的背景噪声。您还可以尝试在simple_voice_conversion方法中调整音高转换和节奏调整参数以获得更好的结果。
问:如何使用不同的语言模型?答:jbark支持多种语言。您可以在历史记录提示中使用适当的语言代码生成音频时指定所需的语言。例如:
audio = jbark . generate_audio ( "Bonjour!" , history_prompt = "v2/fr_speaker_1" )对于支持语言及其代码的列表,请使用list_supported_languages()方法。
有关更多问题和答案,请访问我们的GitHub问题页面或加入我们的社区论坛。
