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
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)
- Preparar
- API básica
- Resultados
- 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 Ubuntunsss.py
- Controlador para MacOSsapi5.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 activavolume
- Volumen de punto flotante en el rango de 0.0 a 1.0 inclusivevoices
- Lista depyttsx3.voice.Voice
objetos 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 defectoNone
es desconocido.gender
- Género de cuerdas de la voz: masculino, femenino o neutral. Por defectoNone
es desconocido.id
- Identificador de cadena de la voz. Se utiliza para configurar la voz activa mediantepyttsx3.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 defectoNone
es 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_file
funció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 vozfilename
- 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)
- Bienvenido a Medium
- A diferencia de las bibliotecas alternativas, funciona sin conexión y es compatible con Python 2 y 3
- A la Liebre le divirtió mucho la idea de correr una carrera con la Tortuga, pero por el gusto de hacerlo estuvo de acuerdo. Entonces el Zorro, que había accedido a actuar como juez, marcó la distancia y arrancó a los corredores.
- Iniciado en 1988, el Proyecto Genoma Humano tiene la intención de mapear los 23 cromosomas que proporcionan el modelo para la especie humana.
- Bienvenido a Medium
- A diferencia de las bibliotecas alternativas, funciona sin conexión y es compatible con Python 2 y 3
- A la Liebre le divirtió mucho la idea de correr una carrera con la Tortuga, pero por el gusto de hacerlo estuvo de acuerdo. Entonces el Zorro, que había accedido a actuar como juez, marcó la distancia y arrancó a los corredores.
- Iniciado en 1988, el Proyecto Genoma Humano tiene la intención de mapear los 23 cromosomas que proporcionan el modelo para la especie humana.
- こ ん に ち は! 今日 は い い 天 気 で す ね。
- そ の 店 は 若 い 人 た ち で 混 ん で い た。
- 27 日 付 の 、 南 ア 紙 タ イ ム ズ に よ る と 、 2 人 は 、 貴重 な 野生 動物 の 所持 な ど を 、 禁 じ た 同 国 の 法律 に 、 、 違反 し た 疑 い が あ る る
- そ の デ タ ラ メ な 思考 を も と に 、 不 自然 な ほ ど 進 は 、 半 ば ウ キ ウ キ 、 草原 を 歩 く。 れ も 、 こ こ の の 旅 先 、 来 る る 前 は は は は は
- 您好 , 欢迎 光临
- 老娘 叫 安娜斯塔西 亚尼古拉耶维 奇切尔亚尼 克伊 凡 诺夫娜 亚历山大 彼得罗夫斯基 康斯坦丁萨 维里奥 诺维奇 波波莎 奥尔良 基伊万诺耶 夫娜
- 走 了 一段 路 , 该 穿越 森林 了。 林 子里 空气 新鲜 , 味道 甜美。 还没 走到 一百 码 远 , 公主 见到 四 棵大树 之间 , 极 粗 的 银链 上 吊着 一座 美丽 的 银 制 城堡。 吊 得 非常 稳当 , 如有 一阵 微风 吹过 , 就会 轻微 摆动 , 催人 入眠。
- 12 月 4 日 消息 , , 12 月 3 日 , 在 巴黎 世界 教育 论坛 上 , 马云 呼吁 改变 教育 前 先 改革 考试。 他 表示 文凭 只是 学费 的 收据 , 真正 的 文凭 是 生活 中 奋斗 来 的。
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.
No hay comentarios:
Publicar un comentario