Articulo de referencia

eSpeak

[[Microsoft Windows|Windows]] [[macOS]] [[FreeBSD]]"},"platform":{"wt":""},"language":{"wt":""},"genre":{"wt":"[[Speech synthesis|Speech synthesizer]]"},"license":{"wt":"[[GNU G...

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áHola Mundo en inglés.

Método de síntesis

Introducción a ESpeakNG por eSpeakNG en inglés

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.

  1. 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).
  2. Los fonemas de pronunciación se sintetizan en sonido, por ejemplo, zi@r0ks se sonoriza como{{#parsoidfragment:27}} zi@r0ks de forma monótona

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.{{#parsoidfragment:30}} z'i@r0ks con entonación

Para comparar dos muestras con y sin datos de prosodia:

  1. [[DIs Iz m0noUntoUn spi:tS]] se escribede forma monótona
  2. [[DIs Iz 'Int@n,eItI2d sp'i:tS]] se escribeforma entonada

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 ]

  1. 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.
  2. 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 ]

  1. Afrikáans [ 25 ]
  2. Albanés [ 26 ]
  3. amárico
  4. Antigua Grecia
  5. Árabe [ a ]
  6. Aragonés [ 27 ]
  7. Armenio ( Oriental )
  8. Armenio ( occidental )
  9. Assamese
  10. azerbaiyano
  11. Baskir
  12. vasco
  13. bielorruso
  14. Criollo Belter
  15. bengalí
  16. Bishnupriya Manipuri
  17. bosnio
  18. Búlgaro [ 27 ]
  19. birmano
  20. Cantonés [ 27 ]
  21. Catalán [ 27 ]
  22. Cherokee
  23. Chino (Hakka) [ b ]
  24. Chino ( mandarín )
  25. Chuvash
  26. Croata [ 27 ]
  27. checo
  28. Danés [ 27 ]
  29. Holandés [ 27 ]
  30. Inglés ( estadounidense ) [ 27 ]
  31. Inglés ( británico )
  32. Inglés ( Caribeño )
  33. Inglés ( Lancasteriano )
  34. Inglés ( Ciudad de Nueva York ) [ c ]
  35. Inglés ( Pronunciación estándar )
  36. Inglés ( escocés )
  37. Inglés ( Midlands Occidentales )
  38. Esperanto [ 27 ]
  39. Estonio [ 27 ]
  40. Finlandés [ 27 ]
  41. Francés ( belga ) [ 27 ]
  42. Francés ( Francia )
  43. Francés ( Suizo )
  44. Georgiano [ 27 ]
  45. Alemán [ 27 ]
  46. Griego ( Moderno ) [ 27 ]
  47. Groenlandia
  48. guaraní
  49. Gujarati
  50. criollo haitiano
  51. hawaiano
  52. hebreo
  53. Hindi [ 27 ]
  54. Húngaro [ 27 ]
  55. Islandés [ 27 ]
  56. Indonesio [ 27 ]
  57. Interlingua
  58. Irlandés [ 27 ]
  59. Italiano [ 27 ]
  60. Japonés [ d ] [ 28 ]
  61. Kannada [ 27 ]
  62. Kazajo
  63. Kʼicheʼ
  64. klingon
  65. Konkani [ 29 ]
  66. coreano
  67. Kurdo [ 27 ]
  68. Kirguistán
  69. Latgaliano
  70. latín
  71. Letón [ 27 ]
  72. Lingua Franca Nueva
  73. lituano
  74. Lojban [ 27 ]
  75. luxemburgués
  76. macedónio
  77. Malayo [ 27 ]
  78. Malayalam [ 27 ]
  79. maltés
  80. Maorí
  81. Maratí [ 27 ]
  82. Náhuatl ( clásico )
  83. Nepalí [ 27 ]
  84. Nogai
  85. Noruego ( Bokmål ) [ 27 ]
  86. Oriya
  87. Oromo
  88. Papiamento
  89. Persa [ 27 ]
  90. Persa ( latín )
  91. Polaco [ 27 ]
  92. Portugués ( brasileño ) [ 27 ]
  93. Portugués ( Portugal )
  94. Punjabi [ 30 ]
  95. Pyash (un lenguaje construido )
  96. quechua
  97. Quenya
  98. Rumano [ 27 ]
  99. Ruso [ 27 ]
  100. Ruso ( Letonia )
  101. Sami (Lule)
  102. gaélico escocés
  103. Serbio [ 27 ]
  104. Setswana
  105. Shan (Tai Yai)
  106. Sindarin
  107. Sindhi
  108. Sinhala
  109. Eslovaco [ 27 ]
  110. esloveno
  111. Español ( latinoamericano )
  112. Español ( España ) [ 27 ]
  113. Suajili [ 25 ]
  114. Sueco [ 27 ]
  115. Tamil [ 27 ]
  116. Tártaro
  117. Telugu
  118. tailandés
  119. Turco [ 27 ]
  120. turcomanos
  121. ucranio
  122. Urdu
  123. Uigur
  124. uzbeko
  125. Vietnamita ( Central ) [ 27 ]
  126. Vietnamita ( del norte )
  127. Vietnamita ( del sur )
  128. galés

Notas

  1. Actualmente, solose admite el árabe con diacríticos completos.
  2. Actualmente, solose admite Pha̍k-fa-sṳ .
  3. Actualmente no publicado; debe compilarse a partir del código fuente más reciente.
  4. Actualmente, solose admiten Hiragana y Katakana .

Véase también

Referencias

  1. https://github.com/espeak-ng/espeak-ng/releases/tag/1.52.0 .{{cite web}}: Falta o está vacío |title=( ayuda )
  2. "Cambio a eSpeak NG en la distribución NVDA · Problema n.° 5651 · nvaccess/nvda" . GitHub .
  3. "eSpeak TTS - Aplicaciones de Android en Google Play" . play.google.com .
  4. «paquete espeak-ng : Ubuntu» . Plataforma de lanzamiento . 21 de diciembre de 2023. 
  5. "Descarga voces para Lector inmersivo, Modo lectura y Lectura en voz alta" .
  6. Blog de Google, Dando voz a más idiomas en Google Translate , mayo de 2010
  7. Blog de Google, Escúchanos ahora , diciembre de 2010.
  8. "Sintetizador de voz eSpeak" . espeak.sourceforge.net .
  9. "eSpeak: Sintetizador de voz" . espeak.sourceforge.net .
  10. 1 2 3 "ESpeak: Síntesis de voz - Explore /Espeak en SourceForge.net" .
  11. 1 2 "eSpeak: síntesis de voz / Código / Explorar confirmaciones" . sourceforge.net .
  12. "Espeak: Descargas" .
  13. "las últimas versiones de desarrollo de espeak y espeakedit" .
  14. van Leussen, Jan-Wilem; Tromp, Maarten (26 de julio de 2007). "Latín al habla". pag. 6. CiteSeerX 10.1.1.396.7811 .  
  15. "Build: Permitir cambiar fácilmente entre portaudio 18 y 19. · rhdunn/Espeak@63daaec" . GitHub .
  16. "Espeakedit: Corrección del procesamiento de argumentos para tipos argv unicode · rhdunn/Espeak@61522a1" . GitHub .
  17. "Cambio a eSpeak NG en la distribución NVDA · Problema n.° 5651 · nvaccess/Nvda" . GitHub .
  18. " [ Espeak-general ] Asumiendo la responsabilidad del proyecto espeak y su futuro | eSpeak: síntesis de voz" . sourceforge.net .
  19. " [ Espeak-general ] Vota por el nuevo desarrollador principal de espeak | eSpeak: síntesis de voz" . sourceforge.net .
  20. ^ "Cambiar el nombre del programa espeak a espeak-ng. · Número 2 · espeak-ng/espeak-ng" . GitHub .
  21. «Versión 1.49.0 · espeak-ng/espeak-ng» . GitHub .
  22. Klatt, Dennis H. (1979). "Software para un sintetizador de formantes en cascada/paralelo" (PDF) . J. Acoustical Society of America, 67(3) marzo de 1980.
  23. "espeak-ng" . GitHub .
  24. "ESpeak NG Text-to-Speech" . GitHub . 13 de febrero de 2022.
  25. 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 .
  26. 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.
  27. 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.
  28. Pronk, R. (2013). Agregar soporte de síntesis de idioma japonés al sistema eSpeak . Universidad de Ámsterdam.
  29. 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.
  30. 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.
  • eSpeakNG en GitHub