eSpeak es un sintetizador de voz por software , gratuito , de código abierto, multiplataforma y compacto . Utiliza un método de síntesis de formantes , lo que permite obtener voz en muchos idiomas con un tamaño de archivo relativamente pequeño. eSpeakNG (Next Generation) es una continuación del proyecto original del desarrollador, con más comentarios de hablantes nativos.
Debido a su pequeño tamaño y a la gran cantidad de idiomas, eSpeakNG está incluido en el lector de pantalla de código abierto NVDA [ 2 ] para Windows, así como en Android, [ 3 ] Ubuntu [ 4 ] y otras distribuciones de Linux. Su predecesor, eSpeak, fue recomendado por Microsoft en 2016 [ 5 ] y fue utilizado por Google Translate para 27 idiomas en 2010; [ 6 ] posteriormente, 17 de estos fueron reemplazados por voces propietarias. [ 7 ]
La calidad de las voces de los idiomas varía enormemente. En eSpeak, el predecesor de eSpeakNG, las versiones iniciales de algunos idiomas se basaban en información de Wikipedia . [ 8 ] Algunos idiomas han recibido más trabajo o comentarios de hablantes nativos que otros. La mayoría de las personas que han contribuido a mejorar los distintos idiomas son usuarios ciegos de la conversión de texto a voz.
Historia
En 1995, Jonathan Duddington lanzó el sintetizador de voz Speak para computadoras RISC OS que admitía inglés británico. [ 9 ] El 17 de febrero de 2006, Speak 1.05 fue lanzado bajo la licencia GPLv2 , inicialmente para Linux , con una versión para Windows SAPI 5 añadida en enero de 2007. [ 10 ] El desarrollo de Speak continuó hasta la versión 1.14, cuando se le cambió el nombre a eSpeak.
El desarrollo de eSpeak continuó desde la versión 1.16 (no hubo una versión 1.15) [ 10 ] con la adición de un programa eSpeakEdit para editar y construir los datos de voz de eSpeak. Estos solo estaban disponibles como descargas separadas de código fuente y binario hasta eSpeak 1.24. La versión 1.24.02 de eSpeak fue la primera versión de eSpeak en ser controlada por versiones usando subversion , [ 11 ] con descargas separadas de código fuente y binario disponibles en SourceForge. [ 10 ] Desde eSpeak 1.27, eSpeak se actualizó para usar la licencia GPLv3 . [ 11 ] La última versión oficial de eSpeak fue 1.48.04 para Windows y Linux, 1.47.06 para RISC OS y 1.45.04 para macOS . [ 12 ] La última versión de desarrollo de eSpeak fue la 1.48.15 el 16 de abril de 2015. [ 13 ]
eSpeak utiliza el esquema Usenet para representar fonemas con caracteres ASCII. [ 14 ]
eSpeak NG
El 25 de junio de 2010, [ 15 ] Reece Dunn inició una bifurcación de eSpeak en GitHub utilizando la versión 1.43.46. Esto comenzó como un esfuerzo para facilitar la compilación de eSpeak en Linux y otras plataformas POSIX .
El 4 de octubre de 2015 (6 meses después del lanzamiento de eSpeak 1.48.15), esta bifurcación comenzó a divergir más significativamente del eSpeak original. [ 16 ] [ 17 ]
El 8 de diciembre de 2015, se debatió en la lista de correo de eSpeak la falta de actividad de Jonathan Duddington durante los ocho meses anteriores a la última versión de desarrollo de eSpeak. Esto derivó en conversaciones sobre la posibilidad de continuar el desarrollo de eSpeak en ausencia de Jonathan. [ 18 ] [ 19 ] El resultado fue la creación de la bifurcación espeak-ng (Next Generation), que utiliza la versión de eSpeak de GitHub como base para el desarrollo futuro.
El 11 de diciembre de 2015 se inició la bifurcación espeak-ng. [ 20 ] La primera versión de espeak-ng fue la 1.49.0 el 10 de septiembre de 2016, [ 21 ] que contenía una limpieza de código significativa, correcciones de errores y actualizaciones del lenguaje.
Características
eSpeakNG se puede utilizar como un programa de línea de comandos o como una biblioteca compartida.
Es compatible con el lenguaje de marcado de síntesis de voz (SSML).
Las voces de los idiomas se identifican mediante el código ISO 639-1 . Se pueden modificar mediante "variantes de voz". Estos son archivos de texto que permiten cambiar características como el rango tonal, añadir efectos como eco, susurro y voz ronca, o realizar ajustes sistemáticos en las frecuencias de los formantes para modificar el sonido de la voz. Por ejemplo, "af" es la voz del afrikáans. "af+f2" es la voz del afrikáans modificada con la variante "f2", que cambia los formantes y el rango tonal para obtener un sonido femenino.
eSpeakNG utiliza una representación ASCII de los nombres de los fonemas que se basa libremente en el sistema Usenet .
Las representaciones fonéticas se pueden incluir en la entrada de texto entre corchetes dobles. Por ejemplo: espeak-ng -v en "Hola [[w3:ld]] " diráⓘ en inglés.
Método de síntesis
eSpeakNG puede utilizarse como traductor de texto a voz de diferentes maneras, dependiendo del paso de traducción de texto a voz que el usuario desee utilizar.
Paso 1: traducción de texto a fonema.
Existen muchos idiomas (en particular el inglés ) que no tienen reglas directas de correspondencia uno a uno entre la escritura y la pronunciación; por lo tanto, el primer paso en la generación de texto a voz debe ser la traducción de texto a fonema.
- El texto introducido se traduce a fonemas de pronunciación (por ejemplo, el texto introducido xerox se traduce a zi@r0ks para su pronunciación).
- Los fonemas de pronunciación se sintetizan en sonido, por ejemplo, zi@r0ks se sonoriza comoⓘ
Para añadir entonación al habla, es necesario contar con datos prosódicos (por ejemplo, acento de sílaba, tono ascendente o descendente de la frecuencia fundamental, pausa, etc.) y otra información que permita sintetizar un habla más humana y menos monótona. Por ejemplo, en el formato eSpeakNG, la sílaba acentuada se añade mediante un apóstrofo: z'i@r0ks, lo que proporciona un habla más natural.ⓘ
Para comparar dos muestras con y sin datos de prosodia:
- [[DIs Iz m0noUntoUn spi:tS]] se escribeⓘ
- [[DIs Iz 'Int@n,eItI2d sp'i:tS]] se escribeⓘ
Si eSpeakNG se utiliza únicamente para la generación de datos de prosodia, dichos datos pueden utilizarse como entrada para las voces difonicas de MBROLA .
Paso 2: síntesis de sonido a partir de datos de prosodia.
El eSpeakNG proporciona dos tipos diferentes de síntesis de voz de formantes utilizando sus dos enfoques diferentes. Con su propio sintetizador eSpeakNG y un sintetizador Klatt : [ 22 ]
- El sintetizador eSpeakNG crea sonidos de habla sonora, como vocales y consonantes sonoras, mediante síntesis aditiva, combinando ondas sinusoidales para generar el sonido final. Las consonantes sordas, como /s/, se crean reproduciendo grabaciones de audio [ 23 ] , ya que son ricas en armónicos, lo que reduce la eficacia de la síntesis aditiva. Las consonantes sonoras, como /z/, se crean mezclando un sonido sonoro sintetizado con una muestra grabada de sonido sordo.
- El sintetizador Klatt utiliza principalmente los mismos datos de formantes que el sintetizador eSpeakNG. Sin embargo, también produce sonidos mediante síntesis sustractiva , partiendo de ruido generado, rico en armónicos, y aplicando filtros digitales y envolventes para filtrar el espectro de frecuencia y la envolvente de sonido necesarios para obtener sonidos consonánticos (s, t, k) o sonoros (l, m, n) específicos.
Para las voces de MBROLA , eSpeakNG convierte el texto en fonemas y sus correspondientes contornos de tono. Luego, envía esta información al programa MBROLA mediante el formato de archivo PHO, capturando el audio generado por MBROLA. Posteriormente, eSpeakNG procesa dicho audio.
Idiomas
eSpeakNG realiza síntesis de texto a voz para los siguientes idiomas: [ 24 ]
- Afrikáans [ 25 ]
- Albanés [ 26 ]
- amárico
- Antigua Grecia
- Árabe [ a ]
- Aragonés [ 27 ]
- Armenio ( Oriental )
- Armenio ( occidental )
- Assamese
- azerbaiyano
- Baskir
- vasco
- bielorruso
- Criollo Belter
- bengalí
- Bishnupriya Manipuri
- bosnio
- Búlgaro [ 27 ]
- birmano
- Cantonés [ 27 ]
- Catalán [ 27 ]
- Cherokee
- Chino (Hakka) [ b ]
- Chino ( mandarín )
- Chuvash
- Croata [ 27 ]
- checo
- Danés [ 27 ]
- Holandés [ 27 ]
- Inglés ( estadounidense ) [ 27 ]
- Inglés ( británico )
- Inglés ( Caribeño )
- Inglés ( Lancasteriano )
- Inglés ( Ciudad de Nueva York ) [ c ]
- Inglés ( Pronunciación estándar )
- Inglés ( escocés )
- Inglés ( Midlands Occidentales )
- Esperanto [ 27 ]
- Estonio [ 27 ]
- Finlandés [ 27 ]
- Francés ( belga ) [ 27 ]
- Francés ( Francia )
- Francés ( Suizo )
- Georgiano [ 27 ]
- Alemán [ 27 ]
- Griego ( Moderno ) [ 27 ]
- Groenlandia
- guaraní
- Gujarati
- criollo haitiano
- hawaiano
- hebreo
- Hindi [ 27 ]
- Húngaro [ 27 ]
- Islandés [ 27 ]
- Sí
- Indonesio [ 27 ]
- Interlingua
- Irlandés [ 27 ]
- Italiano [ 27 ]
- Japonés [ d ] [ 28 ]
- Kannada [ 27 ]
- Kazajo
- Kʼicheʼ
- klingon
- Konkani [ 29 ]
- coreano
- Kurdo [ 27 ]
- Kirguistán
- Latgaliano
- latín
- Letón [ 27 ]
- Lingua Franca Nueva
- lituano
- Lojban [ 27 ]
- luxemburgués
- macedónio
- Malayo [ 27 ]
- Malayalam [ 27 ]
- maltés
- Maorí
- Maratí [ 27 ]
- Náhuatl ( clásico )
- Nepalí [ 27 ]
- Nogai
- Noruego ( Bokmål ) [ 27 ]
- Oriya
- Oromo
- Papiamento
- Persa [ 27 ]
- Persa ( latín )
- Polaco [ 27 ]
- Portugués ( brasileño ) [ 27 ]
- Portugués ( Portugal )
- Punjabi [ 30 ]
- Pyash (un lenguaje construido )
- quechua
- Quenya
- Rumano [ 27 ]
- Ruso [ 27 ]
- Ruso ( Letonia )
- Sami (Lule)
- gaélico escocés
- Serbio [ 27 ]
- Setswana
- Shan (Tai Yai)
- Sindarin
- Sindhi
- Sinhala
- Eslovaco [ 27 ]
- esloveno
- Español ( latinoamericano )
- Español ( España ) [ 27 ]
- Suajili [ 25 ]
- Sueco [ 27 ]
- Tamil [ 27 ]
- Tártaro
- Telugu
- tailandés
- Turco [ 27 ]
- turcomanos
- ucranio
- Urdu
- Uigur
- uzbeko
- Vietnamita ( Central ) [ 27 ]
- Vietnamita ( del norte )
- Vietnamita ( del sur )
- galés
Notas
- ↑ Actualmente, solose admite el árabe con diacríticos completos.
- ↑ Actualmente, solose admite Pha̍k-fa-sṳ .
- ↑ Actualmente no publicado; debe compilarse a partir del código fuente más reciente.
- ↑ Actualmente, solose admiten Hiragana y Katakana .
Véase también
Referencias
- ↑ https://github.com/espeak-ng/espeak-ng/releases/tag/1.52.0 .
{{cite web}}: Falta o está vacío|title=( ayuda ) - ↑ "Cambio a eSpeak NG en la distribución NVDA · Problema n.° 5651 · nvaccess/nvda" . GitHub .
- ↑ "eSpeak TTS - Aplicaciones de Android en Google Play" . play.google.com .
- ↑ «paquete espeak-ng : Ubuntu» . Plataforma de lanzamiento . 21 de diciembre de 2023.
- ↑ "Descarga voces para Lector inmersivo, Modo lectura y Lectura en voz alta" .
- ↑ Blog de Google, Dando voz a más idiomas en Google Translate , mayo de 2010
- ↑ Blog de Google, Escúchanos ahora , diciembre de 2010.
- ↑ "Sintetizador de voz eSpeak" . espeak.sourceforge.net .
- ↑ "eSpeak: Sintetizador de voz" . espeak.sourceforge.net .
- 1 2 3 "ESpeak: Síntesis de voz - Explore /Espeak en SourceForge.net" .
- 1 2 "eSpeak: síntesis de voz / Código / Explorar confirmaciones" . sourceforge.net .
- ↑ "Espeak: Descargas" .
- ↑ "las últimas versiones de desarrollo de espeak y espeakedit" .
- ↑ van Leussen, Jan-Wilem; Tromp, Maarten (26 de julio de 2007). "Latín al habla". pag. 6. CiteSeerX 10.1.1.396.7811 .
- ↑ "Build: Permitir cambiar fácilmente entre portaudio 18 y 19. · rhdunn/Espeak@63daaec" . GitHub .
- ↑ "Espeakedit: Corrección del procesamiento de argumentos para tipos argv unicode · rhdunn/Espeak@61522a1" . GitHub .
- ↑ "Cambio a eSpeak NG en la distribución NVDA · Problema n.° 5651 · nvaccess/Nvda" . GitHub .
- ↑ " [ Espeak-general ] Asumiendo la responsabilidad del proyecto espeak y su futuro | eSpeak: síntesis de voz" . sourceforge.net .
- ↑ " [ Espeak-general ] Vota por el nuevo desarrollador principal de espeak | eSpeak: síntesis de voz" . sourceforge.net .
- ^ "Cambiar el nombre del programa espeak a espeak-ng. · Número 2 · espeak-ng/espeak-ng" . GitHub .
- ↑ «Versión 1.49.0 · espeak-ng/espeak-ng» . GitHub .
- ↑ Klatt, Dennis H. (1979). "Software para un sintetizador de formantes en cascada/paralelo" (PDF) . J. Acoustical Society of America, 67(3) marzo de 1980.
- ↑ "espeak-ng" . GitHub .
- ↑ "ESpeak NG Text-to-Speech" . GitHub . 13 de febrero de 2022.
- 1 2 Butgereit, L., & Botha, A. (2009, mayo). Hadeda: La forma ruidosa de practicar vocabulario de ortografía usando un teléfono celular . En la Conferencia IST-Africa 2009, Kampala, Uganda .
- ↑ Hamiti, M., & Kastrati, R. (2014). Adaptación de eSpeak para la conversión de texto a voz en albanés . International Journal of Computer Science Issues (IJCSI) , 11(4), 21.
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 Kayte, S., & Gawali, DB (2015). Síntesis de voz en marathi: una revisión. Revista internacional sobre tendencias recientes e innovadoras en computación y comunicación, 3(6), 3708-3711.
- ↑ Pronk, R. (2013). Agregar soporte de síntesis de idioma japonés al sistema eSpeak . Universidad de Ámsterdam.
- ↑ Mohanan, S., Salkar, S., Naik, G., Dessai, NF, & Naik, S. (2012). Lector de texto para el idioma konkani. Automation and Autonomous System , 4(8), 409-414.
- ↑ Kaur, R., & Sharma, D. (2016). Un sistema mejorado para convertir texto en voz para el idioma punjabi usando eSpeak . Revista Internacional de Investigación en Ingeniería y Tecnología , 3(4), 500-504.
Enlaces externos
- eSpeakNG en GitHub
- Software libre programado en C
- Software gratuito de síntesis de voz
- Accesibilidad de GNOME
- sintetizadores de software de código abierto