What is a speech recognition library?

eSpeak y eSpeak NG: Voces para el Mundo Digital

13/01/2023

Valoración: 4.25 (3845 votos)

En la era digital actual, la capacidad de transformar texto en voz se ha vuelto esencial, desde asistentes virtuales hasta herramientas de accesibilidad. En este contexto, surgen soluciones robustas y versátiles como eSpeak y su sucesor, eSpeak NG. Estos sintetizadores de voz de código abierto no solo ofrecen una funcionalidad impresionante sino que también destacan por su ligereza y su amplio soporte multilingüe, abriendo un mundo de posibilidades para desarrolladores y usuarios por igual.

Where is the eSpeak API file located?
The espeak speak_lib.h include file is located in espeak-ng/speak_lib.h with an optional symlink in espeak/speak_lib.h. This file contains the espeak 1.48.15 API, with a change to the ESPEAK_API macro to fix building on Windows and some minor changes to the documentation comments. This C API is API and ABI compatible with espeak.
Índice de Contenido

¿Qué son eSpeak y eSpeak NG?

eSpeak y eSpeak NG son sintetizadores de voz de software de código abierto, diseñados para convertir texto en habla en diversos sistemas operativos. Su principal ventaja radica en el uso del método de "síntesis por formantes". Esta técnica les permite ofrecer soporte para una gran cantidad de idiomas en un tamaño de archivo sorprendentemente pequeño. Aunque la voz generada es clara y puede reproducirse a altas velocidades, no busca la naturalidad perfecta de otros sintetizadores basados en grabaciones de voz humanas, priorizando la eficiencia y la compacidad.

Originalmente, eSpeak fue desarrollado por Jonathan Duddington y lanzado en 2007 como una reescritura mejorada de un programa anterior (conocido como "speak" desde 1995 para Acorn/RISC_OS). eSpeak NG, por su parte, es una bifurcación significativa del proyecto eSpeak, iniciada a finales de 2015 por Reece H. Dunn. Su objetivo principal ha sido limpiar el código existente, añadir nuevas características y, crucialmente, expandir y mejorar el soporte de idiomas.

Soporte Multilingüe: La Gran Fortaleza

Una de las características más destacadas de eSpeak y, especialmente, de eSpeak NG, es su impresionante capacidad para manejar múltiples idiomas. Mientras que eSpeak ya ofrecía un buen número de lenguas, eSpeak NG ha llevado esto al siguiente nivel, soportando más de 100 idiomas y acentos. Esta vasta cobertura lingüística se logra gracias al método de síntesis por formantes, que permite que los datos de voz sean muy compactos.

Es importante señalar que, si bien el soporte es amplio, la calidad de la voz puede variar entre idiomas, ya que muchos de ellos son borradores iniciales que requieren más trabajo para su mejora. Ambos proyectos acogen con entusiasmo la ayuda de hablantes nativos para afinar las voces existentes y añadir nuevos idiomas. Esta colaboración comunitaria es fundamental para el continuo crecimiento y la mejora de la calidad de la síntesis de voz en diversas lenguas.

Does the eSpeak speech synthesizer support different languages?
The eSpeak speech synthesizer supports several languages, however in many cases these are initial drafts and need more work to improve them. Assistance from native speakers is welcome for these, or other new languages. Please contact me if you want to help.

Idiomas Soportados por eSpeak (Original):

Afrikaans, Albanés, Aragonés, Armenio, Búlgaro, Cantonés, Catalán, Croata, Checo, Danés, Holandés, Inglés, Esperanto, Estonio, Farsi, Finlandés, Francés, Georgiano, Alemán, Griego, Hindi, Húngaro, Islandés, Indonesio, Irlandés, Italiano, Canarés, Kurdo, Letón, Lituano, Lojban, Macedonio, Malayo, Malayalam, Mandarín, Nepalí, Noruego, Polaco, Portugués, Punjabi, Rumano, Ruso, Serbio, Eslovaco, Español, Suajili, Sueco, Tamil, Turco, Vietnamita, Galés.

eSpeak NG, al ser una evolución, no solo mantiene este listado sino que lo expande significativamente, ofreciendo una cobertura aún más global.

Características Clave de eSpeak y eSpeak NG

Más allá de su soporte multilingüe, estos sintetizadores ofrecen un conjunto de características que los hacen herramientas muy útiles:

  • Voces Personalizables: Incluyen diferentes voces cuyas características pueden ser alteradas, permitiendo cierta personalización del sonido.
  • Salida de Audio Flexible: Pueden generar la salida de voz directamente como un archivo WAV, lo que facilita su integración en otras aplicaciones o su uso posterior.
  • Soporte de Marcado: Ofrecen soporte (aunque no completo) para SSML (Speech Synthesis Markup Language) y HTML, permitiendo un control más granular sobre la pronunciación y entonación del texto.
  • Tamaño Compacto: El programa y sus datos, incluyendo muchos idiomas, ocupan solo unos pocos Mbytes, lo que los hace ideales para sistemas con recursos limitados.
  • Integración con MBROLA: Pueden ser utilizados como interfaz para las voces difónicas de MBROLA, combinando las ventajas de ambos sistemas. eSpeak (y NG) convierte el texto a fonemas con información de tono y duración, que luego MBROLA puede usar.
  • Conversión de Texto a Fonemas: Tienen la capacidad de traducir texto a códigos fonéticos, lo que los convierte en una excelente base para otros motores de síntesis de voz.
  • Desarrollo en C: Ambos proyectos están escritos en C, lo que garantiza eficiencia y compatibilidad.
  • Herramientas de Desarrollo: Disponen de herramientas para producir y ajustar datos fonéticos, facilitando la adición o mejora del soporte de idiomas.

Disponibilidad y Plataformas Compatibles

Tanto eSpeak como eSpeak NG están diseñados para ser versátiles en cuanto a su disponibilidad y las plataformas que soportan:

  • Programa de Línea de Comandos: Disponibles como programas de línea de comandos para Linux y Windows, lo que permite sintetizar texto desde un archivo o desde la entrada estándar.
  • Versión de Biblioteca Compartida: Ofrecen una versión de biblioteca compartida (DLL en Windows) para su uso por otros programas, facilitando la integración en aplicaciones.
  • Versión SAPI5 para Windows: Cuentan con una versión SAPI5 para Windows, lo que les permite ser utilizados con lectores de pantalla y otros programas que soportan la interfaz SAPI5 de Windows.

En cuanto a las plataformas, han sido portados a una amplia gama de sistemas operativos:

  • Linux
  • Windows (desde Windows 8 para NG)
  • Android (desde 4.0 para NG)
  • Mac OSX
  • Solaris
  • BSD (para NG)

eSpeak NG: La Evolución de la Síntesis

eSpeak NG representa un avance significativo respecto a su predecesor. Aunque mantiene la filosofía de diseño compacto y eficiente, incorpora mejoras sustanciales:

  • Más de 100 Idiomas: Como se mencionó, ha expandido el soporte lingüístico a más de un centenar de idiomas y acentos.
  • Soporte Klatt Formant Synthesis: Además de la síntesis por formantes estándar, eSpeak NG también soporta la síntesis por formantes de Klatt.
  • Limpieza del Código Base: El proyecto NG se ha centrado en limpiar y mejorar la base de código existente.
  • Nuevas Funcionalidades: Añade nuevas funcionalidades, como la capacidad de especificar el nombre del dispositivo de audio de salida desde la línea de comandos.
  • Cambios en la Estructura de Datos: Los datos de eSpeak (voces, diccionarios, fonemas) se han movido a espeak-ng-data para evitar conflictos con eSpeak original, y han sufrido cambios que los hacen incompatibles.
  • Integración de Lógica de Construcción: A diferencia de eSpeak, que utilizaba espeakedit, el proyecto eSpeak NG ha movido la lógica para construir los archivos binarios de diccionario, fonemas y entonación directamente a la librería libespeak-ng.so, accesible desde la línea de comandos y la API C.

Consideraciones Técnicas para Desarrolladores

Para aquellos interesados en integrar o contribuir a eSpeak NG, hay algunos puntos clave a considerar:

  • Ubicación de la API: El archivo de inclusión speak_lib.h de eSpeak se encuentra ahora en espeak-ng/speak_lib.h, con un enlace simbólico opcional en espeak/speak_lib.h. Esta API C es compatible con la API y ABI de eSpeak 1.48.15.
  • Compatibilidad de Binarios: Los binarios de espeak-ng usan las mismas opciones de línea de comandos que espeak, con algunas adiciones. Se crean enlaces simbólicos de espeak a espeak-ng y de speak a speak-ng para mantener la compatibilidad.
  • Licencia: eSpeak NG Text-to-Speech se distribuye bajo la licencia GPL versión 3 o posterior.

Tabla Comparativa: eSpeak vs. eSpeak NG

Para entender mejor las diferencias y mejoras, veamos una comparación clave:

CaracterísticaeSpeak (Original)eSpeak NG (Nueva Generación)
Fecha de Lanzamiento2007 (reescritura)2015 (bifurcación oficial)
Idiomas SoportadosVarios (listado específico)Más de 100 y acentos
Métodos de SíntesisFormantesFormantes, Klatt Formant Synthesis
Estado del CódigoMantenimiento limitadoDesarrollo activo, limpieza de código
Herramienta de Edición de Fonemasespeakedit (GUI)Lógica integrada en libespeak-ng.so
Ubicación de Datosespeak-dataespeak-ng-data (incompatible)
LicenciaGPLGPL v3 o posterior
Compatibilidad API Cspeak_lib.hspeak_lib.h (compatible con eSpeak 1.48.15)

Preguntas Frecuentes (FAQ)

¿Es eSpeak NG completamente gratuito?

Sí, eSpeak NG es un software de código abierto y se distribuye bajo la licencia GPL versión 3 o posterior, lo que significa que es de uso y modificación libres.

¿Puedo contribuir al desarrollo de eSpeak NG?

¡Absolutamente! El proyecto eSpeak NG da la bienvenida a las contribuciones. Se busca activamente la ayuda de hablantes nativos para mejorar la calidad de las voces en diferentes idiomas, así como de desarrolladores para el código base. Puedes consultar la guía de contribución en su documentación oficial.

Is Google Speech API Free?
The Google Speech API is free up to 60 minutes, but after that a fee is charged every 15 minutes. I need to write a commercial application for the company I work for (I'm an intern), so it needs to be able to handle many calls, preferably for free. I'm also a beginner in Python, soeasy to implement and well documentedis a must.

¿La voz de eSpeak NG suena natural?

eSpeak NG utiliza síntesis por formantes, que prioriza la claridad, la velocidad y el tamaño compacto sobre la naturalidad. La voz es inteligible y funcional, pero no tan suave o natural como la de sintetizadores basados en grabaciones de voz humana. Es ideal para aplicaciones donde la eficiencia es clave.

¿Dónde puedo encontrar la documentación para desarrolladores?

La documentación de eSpeak NG incluye una guía de usuario, una guía de construcción y un índice completo con información detallada para colaboradores y desarrolladores. Puedes encontrarla en el sitio web del proyecto.

¿Puedo usar eSpeak NG para un proyecto comercial?

Dado que eSpeak NG se publica bajo la licencia GPL v3 o posterior, su uso en proyectos comerciales es posible, pero debes asegurarte de cumplir con los términos de dicha licencia, que generalmente implican que tu software también debe ser de código abierto si lo distribuyes.

En resumen, eSpeak y eSpeak NG representan una solución poderosa y flexible para la síntesis de voz, especialmente cuando la eficiencia, el tamaño compacto y el soporte multilingüe son prioridades. Su naturaleza de código abierto no solo los hace accesibles sino que también fomenta una comunidad activa que trabaja en su mejora continua, prometiendo un futuro aún más brillante para la conversión de texto a voz.

Si quieres conocer otros artículos parecidos a eSpeak y eSpeak NG: Voces para el Mundo Digital puedes visitar la categoría Librerías.

Subir