Habla electrónicamente

Sintetizador de voz de software compacto y de código abierto

eSpeakNG
Autor(es) original(es)Jonathan Duddington
Desarrollador(es)Alexander Epaneshnikov y otros.
Lanzamiento inicialFebrero de 2006 ; hace 18 años ( 2006-02 )
Versión estable
1.51 [1]  / 2 de abril de 2022 ; hace 2 años ( 2 de abril de 2022 )
Repositoriogithub.com/espeak-ng/espeak-ng/
Escrito endo
Sistema operativoLinux
Windows
macOS
FreeBSD
TipoSintetizador de voz
LicenciaLicencia GPL versión 3
Sitio webgithub.com/espeak-ng/espeak-ng/

eSpeak es un sintetizador de voz de software compacto, multiplataforma , de código abierto y gratuito . Utiliza un método de síntesis de formantes , que ofrece muchos idiomas en un tamaño de archivo relativamente pequeño. eSpeakNG (Next Generation) es una continuación del proyecto del desarrollador original con más comentarios de hablantes nativos.

Debido a su pequeño tamaño y a su gran cantidad de idiomas, eSpeakNG está incluido en NVDA [2], un lector de pantalla de código abierto para Windows, así como para 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] 17 de ellos fueron posteriormente reemplazados por voces propietarias. [7]

La calidad de las voces de los idiomas varía mucho. En eSpeakNG, el predecesor de eSpeak, las versiones iniciales de algunos idiomas se basaban en información encontrada en Wikipedia . [8] Algunos idiomas han recibido más trabajo o comentarios de hablantes nativos que otros. La mayoría de las personas que han ayudado 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 con sistema operativo RISC que admitían inglés británico. [9] El 17 de febrero de 2006, se lanzó Speak 1.05 bajo la licencia GPLv2 , inicialmente para Linux , con una versión SAPI 5 para Windows agregada en enero de 2007. [10] El desarrollo de Speak continuó hasta la versión 1.14, cuando se renombró 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 binarias y de código fuente independientes hasta la versión 1.24 de eSpeak. La versión 1.24.02 de eSpeak fue la primera versión de eSpeak en ser controlada por subversion [11] , con descargas binarias y de código fuente independientes disponibles en SourceForge [10] A partir de la versión 1.27 de eSpeak, eSpeak se actualizó para usar la licencia GPLv3 [11] La última versión oficial de eSpeak fue la 1.48.04 para Windows y Linux, la 1.47.06 para RISC OS y la 1.45.04 para macOS [ 12] La última versión de desarrollo de eSpeak fue la 1.48.15 del 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 creación de eSpeak en Linux y otras plataformas POSIX .

El 4 de octubre de 2015 (6 meses después del lanzamiento de la versión 1.48.15 de eSpeak), esta bifurcación comenzó a divergir de manera más significativa del eSpeak original. [16] [17]

El 8 de diciembre de 2015, hubo discusiones en la lista de correo de eSpeak sobre la falta de actividad de Jonathan Duddington durante los 8 meses anteriores a la última versión de desarrollo de eSpeak. Esto evolucionó a discusiones sobre el desarrollo continuo de eSpeak en ausencia de Jonathan. [18] [19] El resultado de esto fue la creación de la bifurcación espeak-ng (Next Generation), que utiliza la versión de GitHub de eSpeak como base para el desarrollo futuro.

El 11 de diciembre de 2015, se inició la bifurcación de espeak-ng. [20] La primera versión de espeak-ng fue 1.49.0 el 10 de septiembre de 2016, [21] que contenía una importante limpieza de código, correcciones de errores y actualizaciones de lenguaje.

Características

eSpeakNG se puede utilizar como un programa de línea de comandos o como una biblioteca compartida.

Admite lenguaje de marcado de síntesis de voz (SSML).

Las voces de los idiomas se identifican mediante el código ISO 639-1 del idioma . Pueden modificarse mediante "variantes de voz". Se trata de archivos de texto que pueden cambiar características como el rango de tono, añadir efectos como eco, susurro y voz ronca, o realizar ajustes sistemáticos en las frecuencias de los formantes para cambiar el sonido de la voz. Por ejemplo, "af" es la voz afrikaans. "af+f2" es la voz afrikaans modificada con la variante de voz "f2" que cambia los formantes y el rango de tono para dar un sonido femenino.

eSpeakNG utiliza una representación ASCII de nombres de fonemas que se basa vagamente en el sistema Usenet .

Las representaciones fonéticas se pueden incluir en la entrada de texto colocándolas 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 se puede utilizar como traductor de texto a voz de diferentes maneras, dependiendo del paso de traducción de texto a voz que el usuario desee utilizar.

1. Paso: traducción de texto a fonemas

Hay muchos idiomas (especialmente el inglés ) que no tienen reglas claras y unívocas entre la escritura y la pronunciación; por lo tanto, el primer paso en la generación de texto a voz tiene que ser la traducción de texto a fonemas.

  1. El texto de entrada se traduce a fonemas de pronunciación (por ejemplo, el texto de entrada xerox se traduce a zi@r0ks para la pronunciación).
  2. Los fonemas de pronunciación se sintetizan en sonido, por ejemplo, zi@r0ks se expresa como zi@r0ks de manera monótona

Para añadir entonación al habla, es decir, datos de prosodia, son necesarios (por ejemplo, el acento de la sílaba, el tono ascendente o descendente de la frecuencia básica, pausas, etc.) y otra información que permita sintetizar un habla más humana y no monótona. Por ejemplo, en el formato eSpeakNG, la sílaba acentuada se añade utilizando un apóstrofo: z'i@r0ks , que proporciona un habla más natural: z'i@r0ks con entonación

Para comparar, dos muestras con y sin datos de prosodia:

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

Si eSpeakNG se utiliza únicamente para la generación de datos de prosodia, entonces los datos de prosodia se pueden usar como entrada para voces difónicas MBROLA .

2. Paso: síntesis de sonido a partir de datos de prosodia

El eSpeakNG ofrece dos tipos diferentes de síntesis de voz por formantes utilizando dos enfoques diferentes. Con su propio sintetizador eSpeakNG y un sintetizador Klatt : [22]

  1. El sintetizador eSpeakNG crea sonidos de voz sonora, como vocales y consonantes sonoras, mediante síntesis aditiva, sumando ondas sinusoidales para formar el sonido total. Las consonantes sordas, como /s/, se crean reproduciendo sonidos grabados, [23] porque son ricas en armónicos, lo que hace que la síntesis aditiva sea menos efectiva. Las consonantes sonoras, como /z/, se crean mezclando un sonido sonoro sintetizado con una muestra grabada de un sonido sordo.
  2. El sintetizador Klatt utiliza principalmente los mismos datos de formantes que el sintetizador eSpeakNG, pero también produce sonidos mediante síntesis sustractiva , comenzando con el ruido generado, que es rico en armónicos, y luego aplicando filtros digitales y envolventes para filtrar el espectro de frecuencia y la envolvente de sonido necesarios para un sonido consonante (s, t, k) o sonoro (l, m, n) en particular.

Para las voces de MBROLA , eSpeakNG convierte el texto en fonemas y contornos de tono asociados. Pasa estos datos al programa MBROLA mediante el formato de archivo PHO y captura el audio creado en la salida de MBROLA. Luego, eSpeakNG procesa ese 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. Griego antiguo
  5. Árabe 1
  6. Aragonés [27]
  7. Armenio ( Armenio oriental )
  8. Armenio ( Armenio occidental )
  9. Assamese
  10. Azerbaiyano
  11. Bashkir
  12. vasco
  13. Bielorruso
  14. bengalí
  15. Bishnupriya Manipuri
  16. bosnio
  17. Búlgaro [27]
  18. birmano
  19. Cantonés [27]
  20. Catalán [27]
  21. Cherokee
  22. Chino ( mandarín )
  23. Croata [27]
  24. checo
  25. Chuvasio
  26. Danés [27]
  27. Holandés [27]
  28. Inglés ( americano ) [27]
  29. Inglés ( británico )
  30. Inglés ( Caribe )
  31. Inglés ( Lancastriano )
  32. Inglés ( Nueva York ) 5
  33. Inglés ( Pronunciación recibida )
  34. Inglés ( Escocés )
  35. Inglés ( West Midlands )
  36. esperanto [27]
  37. Estonio [27]
  38. finlandés [27]
  39. Francés ( belga ) [27]
  40. Francés ( Canadá )
  41. Francés ( Francia )
  42. Georgiano [27]
  43. Alemán [27]
  44. Griego ( moderno ) [27]
  45. Groenlandés
  46. guaraní
  47. Gujarati
  48. Hakka chino 3
  49. Criollo haitiano
  50. hawaiano
  51. hebreo
  52. Hindi [27]
  53. Húngaro [27]
  54. Islandés [27]
  55. Indonesio [27]
  56. Interlingua
  57. Irlandés [27]
  58. Italiano [27]
  59. Japonés 4 [28]
  60. Canarés [27]
  61. Kazajo
  62. Klingon
  63. Quiché
  64. Konkani [29]
  65. coreano
  66. Kurdo [27]
  67. Kirguistán
  68. quechua
  69. latín
  70. Latgaliano
  71. Letón [27]
  72. Lengua franca nueva
  73. lituano
  74. Lojban [27]
  75. Luxemburgués
  76. macedónio
  77. Malayo [27]
  78. Malabar [27]
  79. maltés
  80. Manipurí
  81. Maorí
  82. Maratí [27]
  83. Náhuatl ( Clásico )
  84. Nepalí [27]
  85. Noruego ( bokmål ) [27]
  86. Nogaí
  87. Oromo
  88. Papiamento
  89. Persa [27]
  90. Persa ( alfabeto latino ) 2
  91. Polaco [27]
  92. Portugués ( brasileño ) [27]
  93. Portugués ( Portugal )
  94. Punjabi [30]
  95. Pyash (un lenguaje construido )
  96. Quenya
  97. Rumano [27]
  98. Ruso [27]
  99. Ruso ( Letonia )
  100. Gaélico escocés
  101. Serbio [27]
  102. Setsuana
  103. Shan (Tai Yai)
  104. Sindarin
  105. Sindhi
  106. Cingalés
  107. Eslovaco [27]
  108. esloveno
  109. Español ( España ) [27]
  110. Español ( Latinoamericano )
  111. Suajili [25]
  112. Sueco [27]
  113. Tamil [27]
  114. Tártaro
  115. Télugu
  116. tailandés
  117. Turcomano
  118. Turco [27]
  119. Uigur
  120. ucranio
  121. Urarina
  122. Urdú
  123. Uzbeko
  124. Vietnamita ( vietnamita central ) [27]
  125. Vietnamita ( Vietnamitas del Norte )
  126. Vietnamita ( Vietnam del Sur )
  127. galés
  1. Actualmente, sólo se admite el árabe totalmente diacritizado .
  2. Persa escrito con caracteres ingleses (latinos) .
  3. Actualmente, solo se admite Pha̍k-fa-sṳ .
  4. Actualmente, solo se admiten Hiragana y Katakana .
  5. Actualmente no publicado; debe compilarse a partir del código fuente más reciente.

Véase también

Referencias

  1. ^ "Versión 1.51".
  2. ^ "Cambiar a eSpeak NG en la distribución NVDA · Problema n.° 5651 · nvaccess/nvda". GitHub .
  3. ^ "eSpeak TTS para Android".
  4. ^ "paquete habla-ng: Ubuntu". Plataforma de lanzamiento . 21 de diciembre de 2023.
  5. ^ "Descargar 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. ^ abc "ESpeak: Síntesis de voz - Explorar /Espeak en SourceForge.net".
  11. ^ ab "eSpeak: síntesis de voz / Código / Explorar confirmaciones". sourceforge.net .
  12. ^ "Espeak: Descargas".
  13. ^ http://espeak.sourceforge.net/test/latest.html [ URL básica ]
  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. ^ "Compilación: permite cambiar fácilmente los portaudio 18 y 19. · rhdunn/Espeak@63daaec". GitHub .
  16. ^ "Espeakedit: Corregir el procesamiento de argumentos para tipos argv Unicode · rhdunn/Espeak@61522a1". GitHub .
  17. ^ "Cambiar a eSpeak NG en la distribución NVDA · Problema n.° 5651 · nvaccess/Nvda". GitHub .
  18. ^ "[Espeak-general] Tomando posesión del proyecto espeak y su futuro | eSpeak: síntesis de voz". sourceforge.net .
  19. ^ "[Espeak-general] Votación para el nuevo desarrollador principal de espeak | eSpeak: síntesis de voz". sourceforge.net .
  20. ^ Cambie el nombre del programa espeak a espeak-ng.
  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. ^ "Texto a voz de ESpeak NG". GitHub . 13 de febrero de 2022.
  25. ^ ab Butgereit, L., & Botha, A. (mayo de 2009). Hadeda: La forma ruidosa de practicar el vocabulario ortográfico usando un teléfono celular. En la Conferencia IST-Africa 2009, Kampala, Uganda .
  26. ^ Hamiti, M. y Kastrati, R. (2014). Adaptación de eSpeak para convertir texto en voz en albanés. Revista internacional de cuestiones informáticas (IJCSI) , 11(4), 21.
  27. ^ abcdefghijklmnopqrstu vwxyz aa ab ac ad ae af ag ah ai aj ak al am an ao ap Kayte, S. y Gawali, DB (2015). Síntesis de voz en maratí: una revisión. Revista internacional sobre tendencias recientes e innovadoras en informática y comunicación, 3(6), 3708-3711.
  28. ^ Pronk, R. (2013). Incorporación de compatibilidad con síntesis de idioma japonés al sistema eSpeak . Universidad de Ámsterdam.
  29. ^ Mohanan, S., Salkar, S., Naik, G., Dessai, NF y Naik, S. (2012). Lector de texto para el idioma konkani. Automatización y sistemas autónomos , 4(8), 409-414.
  30. ^ Kaur, R. y Sharma, D. (2016). Un sistema mejorado para convertir texto en voz en idioma punjabi usando eSpeak. Revista internacional de investigación de ingeniería y tecnología , 3(4), 500-504.
  • eSpeakNG en GitHub
Obtenido de "https://es.wikipedia.org/w/index.php?title=ESpeak&oldid=1241288445"