domingo, 8 de noviembre de 2020

Introducción a pyttsx3: un conversor de texto a voz para Python

 


https://ichi.pro/es/post/81905511310787

Introducción a pyttsx3: un conversor de texto a voz para Python

Una alternativa basada en Python para la conversión de texto a voz que funciona sin conexión

 2020-09-18 15:40.


Foto de Panos Sakalakis en Unsplash

Este artículo es una guía para que los tontos aprendan la conversión de texto a voz en Python. Al leer este artículo, conocerá los pasos adecuados para configurarlo y conocer algunas de las funcionalidades básicas disponibles en el módulo. Según el sitio oficial de pyttsx3 :

“… Es una biblioteca de conversión de texto a voz en Python. A diferencia de las bibliotecas alternativas, funciona sin conexión y es compatible con Python 2 y 3 ".

Además, este módulo ha sido probado y se sabe que funciona en los siguientes sistemas:

  • SAPI5 en Windows XP, Windows Vista y Windows 8, 8.1, 10
  • NSSpeechSynthesizer en Mac OS X 10.5 (Leopard) y 10.6 (Snow Leopard)
  • eSpeak en Ubuntu Desktop Edition 8.10 (Intrepid), 9.04 (Jaunty) y 9.10 (Karmic)
  • Inglés (masculino, femenino)
  • Chino (femenino)
  • Japonés (femenino)
  1. Preparar
  2. API básica
  3. Resultados
  4. Conclusión

1. Configuración

La forma correcta de instalar este módulo es clonando el repositorio e instalando a través del archivo de configuración de Python.

Esto se debe principalmente a que la versión publicada en PyPI no es la última versión en el momento de escribir este artículo. Puede realizar una instalación de pip en el futuro si el desarrollador ha publicado la última versión en PyPi. EDITAR : El paquete se actualizó en julio de 2020. Puede instalarlo fácilmente mediante el siguiente comando.

pip install pyttsx3

Primero, clone el repositorio del sitio oficial de GitHub y descomprímalo en un directorio de su elección.

Luego, abra una línea de comando y active el entorno virtual que prefiera. Una vez que haya terminado, cambie el directorio a la raíz de la carpeta maestra. Debería tener un archivo llamado setup.py. Ejecute el siguiente comando:

python setup.py install

pip show pyttsx3

pip show  pypiwin32

pip install  pypiwin32

Las funciones de texto a voz de este módulo se basan en los idiomas instalados en su sistema operativo.

Por defecto, debería venir junto con el paquete de idioma durante la instalación del sistema operativo. Debe instalar el paquete de idioma manualmente si desea utilizar otros idiomas.

Para usuarios de Windows, diríjase a la configuración de Idioma. Debería poder ver la siguiente interfaz de usuario.

Aparte del paquete de idioma predeterminado (inglés), he instalado idiomas adicionales (como chino y japonés). Haga clic en el botón Agregar para agregar un idioma preferido. Debería ver la siguiente ventana emergente.

Asegúrese de que el paquete de idioma tenga el icono de texto a voz.

En el ejemplo anterior, podemos ver que el francés (Francia) admite texto a voz en el paquete de idioma. Puede seleccionarlo y hacer clic en Siguiente para instalar el paquete de idioma.

Pasemos a la siguiente sección para comenzar a probar la API disponible.

2. API básica

En esta sección, exploraremos algunas de las funciones útiles proporcionadas en el módulo. Si instaló este módulo mediante el método pip, algunas de las funciones no estarán disponibles. Por favor, consulte la sección anterior para realizar una instalación adecuada antes de continuar.

Importar

Comencemos con una simple declaración de importación.

import pyttsx3

La inicialización es bastante sencilla, solo puede escribir el siguiente código:

engine = pyttsx3.init()
  • dummy.py- Controlador de prueba que no hace nada. Puede utilizar la estructura como referencia para implementar su propio controlador.
  • espeak.py - Controlador para otras plataformas, como Ubuntu
  • nsss.py - Controlador para MacOS
  • sapi5.py - Controlador para el sistema operativo Windows

engine = pyttsx3.init("sapi5")

Probemos el siguiente código para decir algo simple. Guárdelo en un archivo de Python y ejecútelo.

import pyttsx3
engine = pyttsx3.init()
engine.say('Welcome to Medium')
engine.runAndWait()

Propiedad

El objeto del motor tiene las siguientes variables que se pueden ajustar:

  • rate- Velocidad de habla entera en palabras por minuto. El valor base es 200.
  • voice - Identificador de cadena de la voz activa
  • volume - Volumen de punto flotante en el rango de 0.0 a 1.0 inclusive
  • voices- Lista de pyttsx3.voice.Voiceobjetos descriptores

engine.setProperty('rate', 150)

engine.getProperty('volume')

La propiedad de la voz tiene las siguientes variables:

  • age- Edad entera de la voz en años. Por defecto Nonees desconocido.
  • gender- Género de cuerdas de la voz: masculino, femenino o neutral. Por defecto Nonees desconocido.
  • id- Identificador de cadena de la voz. Se utiliza para configurar la voz activa mediante pyttsx3.engine.Engine.setPropertyValue(). Este atributo siempre está definido.
  • languages- Lista de idiomas de cadena admitidos por esta voz. Por defecto, una lista vacía de desconocidos.
  • name- Nombre de la voz legible por humanos. Por defecto Nonees desconocido.

voices = engine.getProperty('voices')
for voice in voices:
    print("Voice: %s" % voice.name)
    print(" - ID: %s" % voice.id)
    print(" - Languages: %s" % voice.languages)
    print(" - Gender: %s" % voice.gender)
    print(" - Age: %s" % voice.age)
    print("\n")

Intentemos cambiar la voz a Zira (versión femenina). Debe usar la ID como parámetro, y el orden será exactamente lo que acabamos de imprimir. Pasaré 1 como índice para Zira según el siguiente orden:

  • David (masculino inglés)
  • Zira (hombre inglés)
  • Haruka (japonés)
  • Huihui (chino)

engine.setProperty("voice", voices[1].id)

Guardar en un archivo

El desarrollador ha agregado una nueva funcionalidad para guardar la transmisión de audio en un archivo para MacOS y Windows. Puede llamarlo fácilmente a través de la save_to_filefunción. Asegúrese de colocarlo antes de la engine.runAndWait()función. ¡Probémoslo!

engine.save_to_file("How do you do?", "output.mp3")
  • text- El texto para la conversión de texto a voz
  • filename- El nombre del archivo. Puede utilizar la extensión mp3 o wav.

Acabo de probar el programa con los siguientes datos en varios idiomas:

  • Saludos sencillos
  • Texto aleatorio
  • Un párrafo de un cuento o una novela ligera.
  • Un párrafo de un artículo de noticias

Inglés (masculino)

4. Conclusión

Recapitulemos lo que hemos aprendido hoy. Primero, comenzamos con la instalación del módulo Python y el paquete de idioma para el idioma que deseábamos.

Continuamos para conocer algunas de las funciones disponibles proporcionadas por el módulo. Aprendimos a establecer y obtener la propiedad del objeto, así como la función de conversión de texto a voz. Además, también intentamos generar las voces disponibles presentes en el sistema operativo.

Aparte de eso, también vinculé algunos ejemplos que probé en cuatro dominios diferentes para tres idiomas.

Diviértete probándolo por tu cuenta y espero que hayas disfrutado de este artículo. Nos vemos en el próximo artículo.

Referencias

  1. https://pyttsx3.readthedocs.io/en/latest/index.ht

No hay comentarios:

Publicar un comentario