
JBark es una poderosa biblioteca de Python que se basa en las capacidades del proyecto de texto de corteza original a la especie [https://github.com/suno-ai/bark], agregando características simples de conversión de voz. Proporciona una interfaz perfecta para generar discursos de alta calidad a partir del texto, extraer características de voz básicas y aplicar estas características al audio generado.
Las características clave de JBark incluyen:
Ya sea que esté desarrollando un asistente virtual, creando audiolibros o trabajando en cualquier proyecto que requiera síntesis de habla flexible y de alta calidad, JBark proporciona las herramientas que necesita para dar vida a sus ideas.
Para instalar JBark, siga estos pasos:
Asegúrese de tener Python 3.7 o más tarde instalado en su sistema.
Instale JBark y sus dependencias:
pip install jbark numpy torch scipy librosa resampy
Nota: JBark usa CPU para cálculos de forma predeterminada. Si desea utilizar la aceleración de GPU, asegúrese de instalar la versión apropiada habilitada para CUDA de Pytorch.
Aquí hay un ejemplo básico de cómo usar 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 )Este ejemplo demuestra el flujo de trabajo básico de generar discurso, extraer características de voz y aplicar una conversión de voz simple al audio generado.
JBark ofrece varias opciones para la personalización:
Supresión de advertencia : por defecto, JBark suprime las advertencias comunes. Este comportamiento se maneja internamente y no requiere la configuración del usuario.
Presets de voz : al generar audio, puede especificar un preajuste de voz:
audio_array = jbark . generate_audio ( text , history_prompt = "v2/en_speaker_6" ) Parámetros de conversión de voz : puede ajustar la resistencia del cambio de tono y el ajuste de tempo modificando el método simple_voice_conversion en la clase JBark .
__init__(self)Inicializa la instancia de JBark, suprime las advertencias y precarga los modelos necesarios.
generate_audio(self, text_prompt: str, output_path: str = None, history_prompt: str = None) -> numpy.ndarrayGenera audio a partir del mensaje de texto dado.
text_prompt : el texto para convertir a discurso.output_path : opcional. Ruta para guardar el audio generado.history_prompt : Opcional. Voz Preset para usar.Devuelve: matriz Numpy que contiene los datos de audio.
simple_voice_clone(self, audio_path: str) -> dictExtrae características de voz básicas de una muestra de audio.
audio_path : ruta a la muestra de audio para la extracción característica de voz.Devoluciones: diccionario que contiene características de voz básicas (tono y tempo).
generate_with_cloned_voice(self, text_prompt: str, voice_characteristics: dict, output_path: str) -> numpy.ndarrayGenera audio utilizando una conversión de voz simple basada en características de voz extraídas.
text_prompt : el texto para convertir a discurso.voice_characteristics : diccionario que contiene características de voz (tono y tempo).output_path : ruta para guardar el audio generado.Devuelve: matriz Numpy que contiene los datos de audio.
simple_voice_conversion(self, audio: numpy.ndarray, voice_characteristics: dict) -> numpy.ndarrayAplica una conversión de voz simple al audio de entrada basado en las características de voz dadas.
audio : matriz de audio de entrada.voice_characteristics : diccionario que contiene características de voz (tono y tempo).Devuelve: matriz de audio convertida.
custom_time_stretch(self, audio: numpy.ndarray, rate: float) -> numpy.ndarrayFunción de estiramiento de tiempo personalizado utilizando el remuestreo.
audio : matriz de audio de entrada.rate : Tasa de estiramiento de tiempo.Devuelve: matriz de audio estacada en el tiempo.
list_supported_languages(self) -> dictDevuelve un diccionario de idiomas compatibles.
JBark está diseñado con modularidad y extensibilidad en mente. Los componentes principales son:
La biblioteca sigue un patrón de fachada, donde la clase JBark proporciona una interfaz simplificada para los sistemas subyacentes de texto a voz y conversión de voz.
Jbark viene con dos suites de prueba:
Básica Test Suite ( test_jbark.py ): para ejecutar el conjunto de pruebas básicas:
python test_jbark.py
Esto iniciará un menú interactivo que le permite probar varias características de la biblioteca JBark.
Suite de prueba expandida ( test2.py ): para ejecutar el conjunto de pruebas expandidas:
python test2.py
Este conjunto proporciona pruebas más completas, incluidas variaciones en la generación de audio, clonación de voz, conversión de voz, soporte de idiomas, manejo de errores y pruebas de rendimiento.
Para la depuración, puede usar el módulo pdb incorporado de Python o un IDE como PyCharm o VScode.
P: ¿Por qué la generación de audio es lenta? R: La velocidad de generación de audio depende de su hardware. JBark usa CPU para cálculos de forma predeterminada. Para un procesamiento más rápido, considere usar una máquina con una CPU más potente o implementar soporte de GPU.
P: ¿Qué tan efectiva es la simple conversión de voz? R: La función de conversión de voz simple en JBark proporciona ajustes básicos de tono y tempo. Si bien puede alterar algunas características de voz, no proporciona el mismo nivel de calidad de clonación de voz que los métodos más avanzados. Los resultados pueden variar según el texto de entrada y las características de voz objetivo.
P: ¿Cómo puedo mejorar la calidad de la conversión de voz? R: Use muestras de audio de alta calidad para la extracción característica de voz, idealmente con un claro habla y un ruido de fondo mínimo. También puede experimentar ajustando los parámetros de desplazamiento de tono y ajuste de tempo en el método simple_voice_conversion para obtener mejores resultados.
P: ¿Cómo uso diferentes modelos de idiomas? R: JBark admite múltiples idiomas. Puede especificar el lenguaje deseado al generar audio utilizando el código de idioma apropiado en el mensaje del historial. Por ejemplo:
audio = jbark . generate_audio ( "Bonjour!" , history_prompt = "v2/fr_speaker_1" ) Para obtener una lista de idiomas compatibles y sus códigos, use el método list_supported_languages() .
Para obtener más preguntas y respuestas, visite nuestra página de problemas de GitHub o únase a nuestro foro de la comunidad.
