
JBarkは、元のBark Text-to-Speechプロジェクト[https://github.com/suno-ai/bark]の機能に基づいた強力なPythonライブラリです。テキストから高品質の音声を生成し、基本的な音声特性を抽出し、これらの特性を生成されたオーディオに適用するためのシームレスなインターフェイスを提供します。
JBarkの主要な機能は次のとおりです。
仮想アシスタントを開発したり、オーディオブックを作成したり、柔軟で高品質の音声合成を必要とするプロジェクトに取り組んでいる場合でも、JBarkはアイデアを実現するために必要なツールを提供します。
JBarkをインストールするには、次の手順に従ってください。
Python 3.7以降がシステムにインストールされていることを確認してください。
jbarkとその依存関係をインストールします。
pip install jbark numpy torch scipy librosa resampy
注:JBarkは、デフォルトで計算にCPUを使用します。 GPUアクセラレーションを使用する場合は、Pytorchの適切なCUDA対応バージョンを必ずインストールしてください。
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には2つのテストスイートが付属しています。
基本的なテストスイート( test_jbark.py ):基本的なテストスイートを実行するには:
python test_jbark.py
これにより、インタラクティブなメニューが起動して、JBarkライブラリのさまざまな機能をテストできます。
拡張テストスイート( test2.py ):拡張されたテストスイートを実行するには:
python test2.py
このスイートは、オーディオ生成、音声クローニング、音声変換、言語サポート、エラー処理、パフォーマンステストのバリエーションなど、より包括的なテストを提供します。
デバッグには、Pythonの内蔵pdbモジュールまたはPycharmやVSCodeなどのIDEを使用できます。
Q:オーディオ生成が遅いのはなぜですか? A:オーディオ生成速度はハードウェアに依存します。 JBarkは、デフォルトで計算にCPUを使用します。より速い処理のために、より強力なCPUを備えたマシンの使用またはGPUサポートの実装を検討してください。
Q:単純な音声変換はどの程度効果的ですか? A:JBarkのシンプルな音声変換機能は、基本的なピッチとテンポの調整を提供します。いくつかの音声特性を変更することはできますが、より高度な方法と同じレベルの音声クローン品質を提供しません。結果は、入力テキストとターゲット音声の特性によって異なる場合があります。
Q:音声変換の品質を改善するにはどうすればよいですか? A:音声特性抽出には高品質のオーディオサンプルを使用して、理想的には明確な音声と最小限のバックグラウンドノイズを使用します。また、より良い結果を得るために、 simple_voice_conversionメソッドのピッチシフトおよびテンポ調整パラメーターの調整を実験することもできます。
Q:異なる言語モデルを使用するにはどうすればよいですか? A:JBarkは複数の言語をサポートしています。履歴プロンプトで適切な言語コードを使用して、オーディオを生成するときに目的の言語を指定できます。例えば:
audio = jbark . generate_audio ( "Bonjour!" , history_prompt = "v2/fr_speaker_1" )サポートされている言語とそのコードのリストについては、 list_supported_languages()メソッドを使用してください。
その他の質問と回答については、GitHubの問題ページにアクセスするか、コミュニティフォーラムに参加してください。
