En este tutorial, demostramos una solución completa de extremo a extremo para convertir el texto en audio utilizando un modelo de texto a voz de código abierto (TTS) disponible en la cara abrazada. Aprovechando las capacidades de la Biblioteca Coqui TTS, el tutorial lo guía a través de una inicialización de un modelo TTS de última generación (en nuestro caso, “TTS_MODELS/EN/LJSPEECH/TACOTRON2-DDC”), procesando su texto de entrada y guardando la síntesis resultante como un archivo de audio WAV de alta calidad. Además, integramos las herramientas de procesamiento de audio de Python, incluidos los administradores de módulo de onda y contexto, para analizar atributos clave del archivo de audio como duración, frecuencia de muestreo, ancho de muestra y configuración de canales. Esta guía paso a paso está diseñada para atender a principiantes y desarrolladores avanzados que desean comprender cómo generar el habla a partir del texto y realizar un análisis de diagnóstico básico en la salida.
! Pip Instale TTS instala la biblioteca Coqui TTS, lo que le permite aprovechar los modelos de texto a voz de código abierto para convertir el texto en audio de alta calidad. Esto asegura que todas las dependencias necesarias estén disponibles en su entorno de Python, lo que le permite experimentar rápidamente con varias funcionalidades de TTS.
from TTS.api import TTS
import contextlib
import wave
Importamos módulos esenciales: TTS de la API TTS para la síntesis de texto a la voz utilizando modelos de cara de abrazo y los módulos de onda y contexting incorporados para abrir y analizar de forma segura los archivos de audio WAV.
def text_to_speech(text: str, output_path: str = "output.wav", use_gpu: bool = False):
"""
Converts input text to speech and saves the result to an audio file.
Parameters:
text (str): The text to convert.
output_path (str): Output WAV file path.
use_gpu (bool): Use GPU for inference if available.
"""
model_name = "tts_models/en/ljspeech/tacotron2-DDC"
tts = TTS(model_name=model_name, progress_bar=True, gpu=use_gpu)
tts.tts_to_file(text=text, file_path=output_path)
print(f"Audio file generated successfully: {output_path}")
La función Text_To_Speech acepta una cadena de texto, junto con una ruta de archivo de salida opcional y un indicador de uso de GPU, y utiliza el modelo Coqui TTS (especificado como “TTS_MODELS/EN/LJSPEECH/TACOTRON2-DDC”) para sintetizar el texto proporcionado en un archivo de audio wav. Tras una conversión exitosa, imprime un mensaje de confirmación que indica dónde se ha guardado el archivo de audio.
def analyze_audio(file_path: str):
"""
Analyzes the WAV audio file and prints details about it.
Parameters:
file_path (str): The path to the WAV audio file.
"""
with contextlib.closing(wave.open(file_path, 'rb')) as wf:
frames = wf.getnframes()
rate = wf.getframerate()
duration = frames / float(rate)
sample_width = wf.getsampwidth()
channels = wf.getnchannels()
print("\nAudio Analysis:")
print(f" - Duration : {duration:.2f} seconds")
print(f" - Frame Rate : {rate} frames per second")
print(f" - Sample Width : {sample_width} bytes")
print(f" - Channels : {channels}")
La función Analyze_Audio abre un archivo WAV especificado y extrae parámetros de audio clave, como duración, velocidad de fotogramas, ancho de muestra y número de canales, utilizando el módulo de onda de Python. Luego imprime estos detalles en un resumen perfectamente formateado, lo que le ayuda a verificar y comprender las características técnicas de la salida de audio sintetizada.
if __name__ == "__main__":
sample_text = (
"Marktechpost is an AI News Platform providing easy-to-consume, byte size updates in machine learning, deep learning, and data science research. Our vision is to showcase the hottest research trends in AI from around the world using our innovative method of search and discovery"
)
output_file = "output.wav"
text_to_speech(sample_text, output_path=output_file)
analyze_audio(output_file)
El if __name__ == “__main__”: el bloque sirve como el punto de entrada del script cuando se ejecuta directamente. Este segmento define un texto de muestra que describe una plataforma de noticias AI. Se llama a la función Text_To_Speech para sintetizar este texto en un archivo de audio llamado “output.wav”, y finalmente, la función analze_audio se invoca para imprimir los parámetros detallados del audio.
Salida de la función principal
En conclusión, la implementación ilustra cómo aprovechar de manera efectiva las herramientas y bibliotecas de TTS de código abierto para convertir el texto en audio mientras realiza el análisis de diagnóstico al mismo tiempo en el archivo de audio resultante. Al integrar los modelos de abrazadera a través de la Biblioteca Coqui TTS con las robustas capacidades de procesamiento de audio de Python, obtiene un flujo de trabajo integral que sintetiza el habla de manera eficiente y verifica su calidad y rendimiento. Ya sea que busque construir agentes de conversación, automatizar respuestas de voz o simplemente explorar los matices de la síntesis del habla, este tutorial sienta una base sólida que puede personalizar y expandirse fácilmente según sea necesario.
Aquí está el Cuaderno de colab. Además, no olvides seguirnos Gorjeo y únete a nuestro Canal de telegrama y LinkedIn GRsalpicar. No olvides unirte a nuestro 85k+ ml de subreddit.
Nikhil es consultor interno en MarktechPost. Está buscando un doble grado integrado en materiales en el Instituto Indio de Tecnología, Kharagpur. Nikhil es un entusiasta de AI/ML que siempre está investigando aplicaciones en campos como biomateriales y ciencias biomédicas. Con una sólida experiencia en la ciencia material, está explorando nuevos avances y creando oportunidades para contribuir.