Hola, soy Miguel y en esta ocasión les traigo este tutorial.
Índice
No compre audiolibros, implemente audiolibros de texto a voz en Python
Un audiolibro es una grabación o voz en off de un libro u otro trabajo que se lee en voz alta. La lista de audiolibros populares disponibles son:
No necesita comprar una suscripción para un audiolibro si tiene un formato pdf del libro. En este artículo, sabrá cómo desarrollar un audiolibro básico en solo 7 líneas de código Python.
Instalación
Python tiene un océano de bibliotecas que sirven para varios propósitos. En este artículo, necesitaremos dos bibliotecas ( pyttsx3, PyPDF2 ) para desarrollar un audiolibro.
Puede instalar las bibliotecas desde PyPl.
pip install PyPDF2 pip install pyttsx3
Leer XX e documentación completa de la biblioteca pyttsx3 aquí .
1) Lea el archivo PDF
Python tiene la biblioteca PyPDF2 que está construida como un kit de herramientas PDF. Permite la manipulación de PDF en memoria. Esta biblioteca es capaz de:
- Extraer información del documento, como título, autor, etc.
- Dividir documentos por página
- Fusionando documentos por página
- Recortar páginas
- Fusionar varias páginas en una sola página
- Cifrar y descifrar archivos PDF
- ¡y más!
Estamos usando esta biblioteca para dividir el archivo pdf página por página, leer el texto en cada página y enviar el texto a la siguiente capa / paso.
import PyPDF2 pdfReader = PyPDF2.PdfFileReader(open('file.pdf', 'rb'))
2) Inicializar altavoz
Python tiene una biblioteca pyttsx3, que es capaz de convertir texto a voz sin conexión. El texto que estamos leyendo de un archivo pdf usando la biblioteca pypdf2 se alimenta como entrada al motor de conversión de texto a voz.
import pyttsx3 speaker = pyttsx3.init()
3) Reproducir el audiolibro
Extraiga el texto del archivo pdf página por página utilizando la implementación de PyPDF2 . Recorra cada página leyendo el texto y enviándolo al motor de altavoces pyttsx3 . Leerá en voz alta el texto de la página pdf.
Repita el proceso para cada página del archivo pdf y detenga el motor del altavoz pyttsx3 como último.
for page_num in range(pdfReader.numPages): text = pdfReader.getPage(page_num).extractText() speaker.say(text) speaker.runAndWait() speaker.stop()
Plena aplicación
Cambio de voz, velocidad y volumen del altavoz pyttsx3
Puede ajustar la velocidad y el volumen del habla y cambiar la voz en off de hombre a mujer y viceversa, según sus necesidades.
Tasa de velocidad
Inicialice la biblioteca pyttsx3 y use getProperty(‘rate’)
para obtener la tasa de conversación actual. Cambiar la velocidad de hablar usando setProperty(‘rate’, x)
, donde x = 100 es la velocidad normal (1x).
# Initialize the speaker speaker = pyttsx3.init() rate = speaker.getProperty('rate') print(rate) speaker.setProperty('rate', 125)
Voz
Inicialice la biblioteca pyttsx3 y use getProperty(‘voice’)
para obtener el género actual del hablante. Cambie el género del hablante usando setProperty(‘voice’, voice[x].id)
, donde x = 0 para hombres yx = 1 para mujeres.
voices = speaker.getProperty('voices') print(voices) #changing index, changes voices, 0 for male speaker.setProperty('voice', voices[0].id) #changing index, changes voices, 1 for female speaker.setProperty('voice', voices[1].id)
Volumen
Inicialice la biblioteca pyttsx3 y use getProperty(‘volume’)
para obtener el volumen actual. Utilizar setProperty(‘volume’, x)
para cambiar el volumen del altavoz. El volumen varía de 0 a 1, donde 0 es el volumen mínimo y 1 es el volumen máximo.
volume = engine.getProperty('volume') print(volume) engine.setProperty('volume',1.0)
Guardar la voz en un archivo de audio
Utilice el método siguiente para guardar la salida de audio (audiolibro) en el archivo mp3.
engine.save_to_file(text, 'audio.mp3') engine.runAndWait()
Conclusión
En este artículo, hemos cubierto la implementación de un audiolibro básico, que puede leer todo el libro en PDF usando unas pocas líneas de código Python. Para obtener mejores resultados de audio, también puede ajustar la voz, la velocidad y el volumen de la biblioteca de altavoces.
El resultado de audio final del audiolibro no es tan bueno, ya que el texto necesita un procesamiento previo antes de enviarlo al motor del altavoz.
Referencias
[1] Documentación de PyPDF2: https://pypi.org/project/PyPDF2/ [2] documentación de pyttsx3: https://pyttsx3.readthedocs.io/en/latest/Gracias por leer.
Añadir comentario