
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問題頁面或加入我們的社區論壇。
