
Jbark est une puissante bibliothèque Python qui s'appuie sur les capacités du projet d'origine du texte de texte d'écorce [https://github.com/suno-ai/bark], ajoutant des fonctionnalités de conversion vocale simples. Il fournit une interface transparente pour générer une parole de haute qualité à partir de texte, extraire les caractéristiques vocales de base et appliquer ces caractéristiques à l'audio généré.
Les caractéristiques clés de JBark comprennent:
Que vous développiez un assistant virtuel, que vous créiez des livres audio ou que vous travailliez sur tout projet qui nécessite une synthèse de parole flexible et de haute qualité, JBark fournit les outils dont vous avez besoin pour donner vie à vos idées.
Pour installer JBark, suivez ces étapes:
Assurez-vous que Python 3.7 ou ultérieurement installé sur votre système.
Installez JBark et ses dépendances:
pip install jbark numpy torch scipy librosa resampy
Remarque: JBark utilise le processeur pour les calculs par défaut. Si vous souhaitez utiliser l'accélération GPU, assurez-vous d'installer la version appropriée compatible Cuda de Pytorch.
Voici un exemple de base de la façon d'utiliser 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 )Cet exemple démontre le flux de travail de base de la génération de la parole, de l'extraction des caractéristiques vocales et de l'application de la conversion vocale simple à l'audio généré.
JBark offre plusieurs options pour la personnalisation:
Suppression d'avertissement : par défaut, JBark supprime les avertissements communs. Ce comportement est géré en interne et ne nécessite pas de configuration de l'utilisateur.
Présets vocaux : lors de la génération d'audio, vous pouvez spécifier un préréglage vocal:
audio_array = jbark . generate_audio ( text , history_prompt = "v2/en_speaker_6" ) Paramètres de conversion vocale : vous pouvez ajuster la force du changement de hauteur et le réglage du tempo en modifiant la méthode simple_voice_conversion dans la classe JBark .
__init__(self)Initialise l'instance JBark, supprime les avertissements et précharge les modèles nécessaires.
generate_audio(self, text_prompt: str, output_path: str = None, history_prompt: str = None) -> numpy.ndarrayGénère l'audio à partir de l'invite de texte donnée.
text_prompt : le texte à convertir en discours.output_path : facultatif. Chemin pour enregistrer l'audio généré.history_prompt : Facultatif. Préréglage de voix à utiliser.Renvoie: tableau Numpy contenant les données audio.
simple_voice_clone(self, audio_path: str) -> dictExtrait les caractéristiques de la voix de base d'un échantillon audio.
audio_path : chemin vers l'échantillon audio pour l'extraction des caractéristiques vocales.Renvoie: Dictionnaire contenant des caractéristiques vocales de base (hauteur et tempo).
generate_with_cloned_voice(self, text_prompt: str, voice_characteristics: dict, output_path: str) -> numpy.ndarrayGénère l'audio en utilisant une conversion vocale simple basée sur les caractéristiques vocales extraites.
text_prompt : le texte à convertir en discours.voice_characteristics : Dictionnaire contenant des caractéristiques vocales (hauteur et tempo).output_path : chemin pour enregistrer l'audio généré.Renvoie: tableau Numpy contenant les données audio.
simple_voice_conversion(self, audio: numpy.ndarray, voice_characteristics: dict) -> numpy.ndarrayApplique une conversion vocale simple en audio d'entrée en fonction des caractéristiques vocales données.
audio : tableau audio d'entrée.voice_characteristics : Dictionnaire contenant des caractéristiques vocales (hauteur et tempo).Renvoie: tableau audio converti.
custom_time_stretch(self, audio: numpy.ndarray, rate: float) -> numpy.ndarrayFonction d'étirement du temps personnalisé à l'aide de rééchantillonnage.
audio : tableau audio d'entrée.rate : Taux d'étirement du temps.Renvoie: tableau audio étiré dans le temps.
list_supported_languages(self) -> dictRenvoie un dictionnaire de langues prises en charge.
Jbark est conçu avec la modularité et l'extensibilité à l'esprit. Les principaux composants sont:
La bibliothèque suit un motif de façade, où la classe JBark fournit une interface simplifiée aux systèmes de conversion de texte vocale et de conversion vocale sous-jacents.
Jbark est livré avec deux suites de test:
Suite de test de base ( test_jbark.py ): Pour exécuter la suite de test de base:
python test_jbark.py
Cela lancera un menu interactif vous permettant de tester diverses fonctionnalités de la bibliothèque JBark.
Suite de test étendue ( test2.py ): Pour exécuter la suite de test élargie:
python test2.py
Cette suite fournit des tests plus complets, y compris des variations de génération audio, de clonage vocal, de conversion vocale, de support linguistique, de gestion des erreurs et de tests de performances.
Pour le débogage, vous pouvez utiliser le module pdb intégré de Python ou un IDE comme PyCharm ou Vscode.
Q: Pourquoi la génération audio est-elle lente? R: La vitesse de génération audio dépend de votre matériel. JBARK utilise le processeur pour les calculs par défaut. Pour un traitement plus rapide, envisagez d'utiliser une machine avec un CPU plus puissant ou implémentez le support GPU.
Q: Quelle est l'efficacité de la conversion vocale simple? R: La fonction de conversion vocale simple dans JBark fournit des ajustements de base de hauteur et de tempo. Bien qu'il puisse modifier certaines caractéristiques vocales, il ne fournit pas le même niveau de qualité de clonage vocal que les méthodes plus avancées. Les résultats peuvent varier en fonction du texte d'entrée et des caractéristiques vocales cibles.
Q: Comment puis-je améliorer la qualité de la conversion vocale? R: Utilisez des échantillons audio de haute qualité pour l'extraction des caractéristiques vocales, idéalement avec une parole claire et un bruit de fond minimal. Vous pouvez également expérimenter avec l'ajustement des paramètres de décalage de hauteur et de réglage du tempo dans la méthode simple_voice_conversion pour de meilleurs résultats.
Q: Comment utiliser différents modèles de langue? R: JBARK prend en charge plusieurs langues. Vous pouvez spécifier le langage souhaité lors de la génération de l'audio en utilisant le code de langue approprié dans l'invite de l'historique. Par exemple:
audio = jbark . generate_audio ( "Bonjour!" , history_prompt = "v2/fr_speaker_1" ) Pour une liste de langues prises en charge et de leurs codes, utilisez la méthode list_supported_languages() .
Pour plus de questions et réponses, visitez notre page GitHub Issues ou rejoignez notre forum communautaire.
