Cómo un desarrollador ciego construyó un sintetizador de voz sin ayuda



Todos, de una forma u otra, nos hemos encontrado con usuarios con problemas de visión. Los responsables de la interfaz de usuario, sin importar el sitio, la aplicación móvil o cualquier otro software, lo más probable es que conozcan la necesidad de tener en cuenta las necesidades de estas personas y, por lo tanto, crearon modos de mayor contraste, fuentes más grandes, etc.



Pero, ¿y si el usuario es completamente ciego y todos estos modos no le facilitan la vida? Aquí es donde los lectores de pantalla y los sintetizadores de sonido entran en escena, de lo que no pueden prescindir. Y me gustaría contarles sobre uno de ellos hoy.



Se llama de RhVoice y se mencionó en varias publicaciones sobre Habré. Pero, ¿sabías que muchos lo consideran el mejor sintetizador gratuito de habla rusa (y no solo), y fue escrito solo por una desarrolladora completamente ciega: Olga Yakovleva?



Hoy restauramos la justicia histórica y aprendemos un poco sobre el sintetizador en sí en general, y Olga en particular.



Abramos todas las tarjetas de inmediato : sintetizador github El



código del sintetizador se distribuye de forma gratuita bajo la GPL, lo que significa que cualquiera puede integrarlo en su producto. Disponible en tres plataformas: Windows, Linux y Android. Olga lidera el desarrollo sola y trabaja en Linux. El mejor sintetizador (de código abierto) del habla rusa, es considerado por los propios usuarios y no son solo personas con problemas de visión. En su trabajo, el sintetizador utiliza síntesis paramétrica estadística y se basó en los desarrollos de proyectos existentes, como HTSy estudios científicos publicados. Es una red neuronal profunda híbrida que funciona con un modelo de Markov oculto. La tarea de tales redes es resolver parámetros desconocidos basados ​​en observables. Se puede considerar que esta es la red bayesiana más simple. El propio HTS se basó en los desarrollos de otro proyecto: HTK . Pero aquí lo que más nos interesa es que algunos de los desarrollos se han publicado para uso gratuito, incluida una descripción de los algoritmos y las técnicas aplicadas.



El sintetizador en sí se posiciona como una herramienta para el trabajo diario. Se puede utilizar para propósitos más creativos, como sonar libros, pero es aún mejor cuando la gente habla.



Olga comenzó su proyecto hace casi 10 años, cuando comenzó a estudiar Linux y no encontró un sintetizador conveniente para ella allí. Ella escribe todo el código ella misma, usando una pantalla Braille especial para esto. Este es un dispositivo especial diseñado para mostrar información de texto en forma de caracteres Braille de seis puntos. También utiliza JAWS, un lector de pantalla que rastrea su historia hasta DOS y también fue creado con la participación activa de los ciegos.



Ahora que se ha dado la introducción, profundicemos un poco más en el mundo de los sintetizadores de voz.



¿Qué es un sintetizador de voz y qué incluye?



Tradicionalmente, se considera que cualquier sintetizador consta de dos partes: un componente de lenguaje y un componente de generación de señales de voz. El componente de idioma analiza el texto recibido del lector de pantalla. Su tarea es dividir el texto en oraciones, las oraciones en frases, palabras y sílabas. Al final, se construye una transcripción de todas las palabras y se crea un mapa de sonidos a partir de ella (como todos saben, no siempre es así como se escribe y se dice). Este análisis se puede hacer con diferente profundidad de estudio. RhVoice, por ejemplo, carece de recursos para operaciones complejas como definir un rol en una oración o parte del discurso. Pero en cualquier caso, al final del análisis, obtenemos un conjunto de sonidos que el componente de generación de señales de voz debe ensamblar utilizando la base de sonidos pregrabados. Nos detendremos en cada uno de los componentes con más detalle más adelante.





Demostración de cómo trabajar con un sintetizador



La historia de Olga



Olga vive en Cheboksary, se graduó de la facultad de matemáticas de la Universidad Estatal de Chuvash y trabaja como programadora. Como todas las personas ciegas, estudió en escuelas especializadas. Al principio había 6 clases en una escuela en Nizhny Novgorod, porque en ese momento no había lugares en Cheboksary donde se aceptara a niños completamente ciegos. Pero seis años después, aún logró regresar a su ciudad natal y Olga terminó sus estudios en Cheboksary. En la misma escuela, Olga se enamoró de las matemáticas, lo que luego le permitió ingresar a la Facultad de Matemáticas. En algún momento, pensó en ingresar al IWT, pero aquí la incertidumbre en sus propias habilidades jugó un papel. Sí, y entre los egresados ​​de la Facultad de Matemáticas había varios ciegos, y en la entrevista introductoria, el decano dijo que sus programadores están preparados incluso mejor que en las TIC.



Olga recibió su primera experiencia de trabajo con computadoras no en la escuela, sino en la universidad, en la biblioteca de la cual compraron computadoras especiales equipadas para uso de ciegos, con el programa JAWS instalado (un lector de pantalla que lleva su historia desde 1989). Allí estudió el famoso libro de texto de Windows 95 de Sarah Morley. Lo más probable es que ahora se sorprenda, porque ¿qué es un libro de texto tan famoso, sobre el que nunca ha oído hablar? La respuesta está en su título: "Windows 95 para ciegos y deficientes visuales".... La principal diferencia entre estos libros de texto y los que todos conocemos es el énfasis en la descripción de varios objetos y opciones para administrarlos. Dado que para una persona ciega, la instrucción del formulario "haga clic en la lista desplegable y seleccione el elemento de menú deseado" es algo inútil. No ven la pantalla, el cursor del mouse y aún más: no saben cómo se ven la ventana y la lista desplegable. Por cierto, debido a esto, surge otro matiz no obvio: las personas ciegas pueden ser rehenes del bitness del sintetizador utilizado. Entonces, hace cinco años, durante la transición a Windows 8, muchos enfrentaron la falta de soporte para aplicaciones de 64 bits de los sintetizadores de voz y cambiaron a RhVoice, donde este soporte ya estaba implementado.



Pero volvamos a los tiempos en que Olga estaba comenzando a explorar un área nueva por sí misma. El sintetizador de voz entonces fue el programa Digalo con la voz de Nikolay. Este es un paquete tan canónico que los resultados de su trabajo fueron escuchados por absolutamente cualquier persona que se conectó a Internet. Su voz puede considerarse sinónimo del término "robótico", por lo que entró de cerca en la cultura de Internet y fue utilizada en un sinnúmero de videos en YouTube. Probablemente por eso la mayoría absoluta está segura de que Digalo es el apellido de Nikolai. 





Digalo Nikolay en todo su esplendor



Empezando con su propio proyecto



El viaje de Olga al mundo de los sintetizadores comenzó alrededor de 2010 con el desarrollo del controlador NVDA (NonVisual Desktop Access) para el sintetizador Festival. NVDA es un lector de pantalla gratuito que permite a las personas ciegas y con discapacidad visual interactuar completamente con su computadora. Una clase similar de programas incluye un sintetizador de voz y la capacidad de transmitir a una pantalla braille.



Gracias al Festival, Olga se sumergió en el mundo de los sintetizadores de voz y descubrió que no solo las empresas comerciales, sino también todo aquel que quiera tener la oportunidad de hacer hablar a una computadora. En ese momento, ya existían varios sintetizadores de voz abiertos, que fueron distribuidos principalmente por científicos que estudiaban tecnologías de síntesis de voz.



Por ello, Olga hizo sus primeros experimentos basándose en los trabajos de compañeros más experimentados en torno al mismo Festival. Es un sintetizador de voz académico creado en 1995 por un grupo de científicos dirigido por Alan Black. Desarrollaron métodos de síntesis y basándose en su investigación hicieron su propio sintetizador, que originalmente era solo una demostración de los resultados de su trabajo. Con el tiempo, se le agregó el igualmente importante proyecto FestVox, que le permitió generar nuevas voces artificiales, y además se aderezó con bastante buena documentación. En ese momento, el Festival ya contaba con la voz rusa de Alejandro con una base de discurso bastante buena.



Qué es una base de habla: en el caso de RhVoice, son más de mil frases especiales, leídas por un hablante con una pronunciación clara y sin emociones. Estas oraciones deben seleccionarse de tal manera que contengan todos los difonos, es decir, todas las combinaciones de dos fonemas. Y sería bueno si varias veces cada una para una mayor variabilidad. Según los recuerdos, en las primeras versiones se utilizaron unas 600 frases. Además, el sintetizador puede formar cualquier palabra a partir de estos fonemas. En inglés, este método se llama selección de unidades, y en nuestro país se conoce como el método de selección de unidades de voz. Sí, no es el más moderno y juvenil, pero funciona de manera confiable como una plancha. Cada oración se ingresa en la base de datos y se analiza: se determinan los sonidos, sus posiciones en sílabas, en palabras, en oraciones. Los fonemas individuales se clasifican,su ubicación en relación con los demás y así sucesivamente. Durante la operación inversa, es decir, la síntesis de voz, para cada fonema obtenido de la transcripción, simplemente seleccione el ejemplo más adecuado (leer: cerrar) de la base de datos. A veces es posible encontrar una correspondencia estricta, a veces hay que contentarse con lo más parecido. En el mundo de los filólogos, esto se llama fonética teórica y práctica y no se inventó ayer. Por lo tanto, es imposible participar en sintetizadores de voz sin leer libros de texto sobre fonética. Por cierto, en la Universidad Estatal de Moscú se publicaron libros de texto especialmente buenos.En el mundo de los filólogos, esto se llama fonética teórica y práctica y no se inventó ayer. Por lo tanto, es imposible participar en sintetizadores de voz sin leer libros de texto sobre fonética. Por cierto, en la Universidad Estatal de Moscú se publicaron libros de texto especialmente buenos.En el mundo de los filólogos, esto se llama fonética teórica y práctica y no se inventó ayer. Por lo tanto, es imposible participar en sintetizadores de voz sin leer libros de texto sobre fonética. Por cierto, en la Universidad Estatal de Moscú se publicaron libros de texto especialmente buenos.



¿Y dónde conseguir estas ofertas? Puede escribir usted mismo, pero esta es una empresa bastante difícil y hay dos formas alternativas. Puede tomar un texto escrito por alguien con anticipación, pero esto puede violar los derechos de autor o costar dinero individual. Por tanto, los autores de algunas voces utilizan textos de Wikipedia. Para idiomas grandes como inglés o ruso, puede encontrar fácilmente los ejemplos necesarios allí. Las lenguas pequeñas no tienen suerte en este sentido. Por ejemplo, este truco no funcionó con la Wikipedia bielorrusa.



¿Cuál es la diferencia entre lenguaje y voz? Después de todo, hace siete años todavía no había ningún locutor ucraniano o tártaro. ¿Cómo aparecen en los sintetizadores?



Voces en sintetizadores de voz



Todo comienza con el análisis de la lengua, que consiste en crear una base de datos donde se describe formalmente el sistema fonético de esta lengua. Dichas bases ya pueden ser hechas por alguien y vendidas en el mercado (por muy buen dinero). De lo contrario, debe hacerlo usted mismo. Para el análisis de cada idioma, se desarrolla un programa separado y esto puede llevar hasta un año y medio de trabajo, dependiendo de la complejidad del idioma. Por ejemplo, el italiano es muy simple en términos de síntesis de voz, mientras que idiomas como el árabe y el chino son extremadamente complejos. Pero en promedio, un analizador de idiomas se crea en un año. Después de su preparación, una voz ya está escrita. Esto ha tardado unos tres meses. La grabación de la voz en off y otros trabajos en el estudio lleva de dos a tres semanas. Esto se debe al hechoque el hablante pueda hablar con calidad y belleza durante unas cuatro horas al día. Luego se cansa y ya no suena lo suficientemente limpio. Si cree que esto es una tontería, entonces no, se imponen requisitos muy serios sobre la calidad de estos registros. Las empresas comerciales realizan castings completos, seleccionando no solo por la belleza subjetiva de la voz, sino también, si es posible, utilizan una voz específica para un idioma específico en su sintetizador.



Luego, el registro se segmenta en trozos de acuerdo con la base de datos y, luego, utilizando un analizador de idiomas, estos trozos se combinan. Es decir, se hace un análisis de que este es un sustantivo, este es un verbo, está al lado de este, lo que significa que debe sonar así y se sustituye el fonema más cercano. Entonces, el papel del analizador es extremadamente importante: debe tener en cuenta no solo la disposición de las sílabas en una palabra, sino también la disposición de las palabras en una oración y los signos de puntuación. Todo esto afecta la pronunciación. En algunos idiomas, la misma palabra se puede pronunciar de forma diferente, dependiendo de si es un sustantivo o un verbo.



Pero esta es más una ruta para productos comerciales, cuyos creadores tienen los recursos para una investigación tan profunda. Los desarrolladores independientes usan opciones más simples: sin una clasificación completa por partes del discurso, pero, por ejemplo, solo al nivel de una palabra / preposición / unión independiente, etc. Olga tomó su propio camino aún más y escribió su módulo de lenguaje basado en libros de texto y artículos sobre fonética. Afortunadamente, existe un número suficiente de estudios publicados sobre este tema.



¿Has notado que la mayoría de los sintetizadores tienen primero voces femeninas? Esto no se debe a las preferencias de los autores, sino a la complejidad de desarrollar una voz femenina. La voz femenina es naturalmente más alta y las frecuencias altas son más difíciles de procesar que las frecuencias bajas. Y si logras crear una voz femenina, entonces una masculina definitivamente funcionará. Pero al contrario, no es un hecho.





En el caso de Olga, esta es una pasión personal por el tema e incluso una necesidad. ¿Y el desarrollo comercial? ¿Cómo deciden qué idioma agregar y cuál no? La respuesta a todo es dinero. La primera opción, obvia, es analizar un posible mercado de ventas para nuevas voces. En pocas palabras: cuál es el nivel económico del país y si sus habitantes tienen dinero para comprar su producto. El segundo incentivo ya es más interesante. Es el deseo del gobierno u otras organizaciones crear síntesis de voz para un idioma dado. Por lo tanto, los sintetizadores de voz se hicieron para idiomas muy pequeños, simplemente porque alguien se encargó de esto y asignó dinero para el desarrollo. Y, por ejemplo, en los países escandinavos existen leyes que establecen que todos los documentos escritos deben ser accesibles para las personas ciegas y con discapacidad visual. Por lo tanto, cualquier periódico publicado debe tener su propia versión en audio.



Y para entender el orden de los precios: el desarrollo de una nueva voz, desde empresas privadas, cuesta entre diez y cuarenta mil euros, según la complejidad del lenguaje. El desarrollo del módulo analizador cuesta muchas veces más. En cuanto a RhVoice, Olga tiene una posición de principios: su proyecto siempre será gratuito. Entonces, ¿de dónde viene el dinero para los locutores? En las etapas iniciales, hubo voluntarios que ofrecieron ayuda. Tenían su propio estudio y se ofrecieron a pagar por el locutor, por lo que Olga solo pudo enviar una lista de propuestas para la voz en off. Así es como aparecieron varios idiomas nuevos en RhVoice. Luego comenzaron a dirigirse a ella con peticiones específicas.



Pero el destino de un mayor desarrollo depende de encontrar los recursos necesarios en el acceso gratuito. Por ejemplo, antes no existía un diccionario abierto de acentos para el idioma ucraniano, y es imposible construir un sintetizador sin saber cómo se colocan los acentos. Ahora ya se ha agregado, pero se ha trabajado mucho. El idioma ruso es mucho más afortunado en términos de disponibilidad de materiales. Y la voz canónica "Alexander" fue puesta a disposición del público por su creador, gracias a lo cual Olga pudo comenzar sus primeros experimentos para crear un sintetizador de voz.



¿Cómo puedes crear un sintetizador si no conoces el idioma en absoluto? Convencionalmente, sabes ruso e inglés, pero ¿te piden que desarrolles árabe? No existen restricciones técnicas, lo principal es encontrar en Internet algunos artículos y materiales sobre el idioma, sobre sus estructuras, o incluso consultar con un filólogo. Esto puede ser suficiente para desarrollar un sintetizador de voz inicial. De hecho, en general, la cantidad de información inicial es estándar: una lista de fonemas, reglas de transcripción desde la representación de las letras hasta la pronunciación, detalles sobre las partes auxiliares del discurso, etc. El principal problema será que el desarrollador no puede verificar los resultados de su trabajo sin la participación de un hablante nativo. Y un hablante nativo no solo debe dar una retroalimentación clara / incomprensible, sino también explicar todas las sutilezas y matices de los lugares donde algo salió mal. En el caso de RhVoice, el tártaro se ha convertido en un idioma tan difícil.Los filólogos ayudaron mucho a Olga con él, con quien estuvo conectada por representantes de la Biblioteca de Kazán para Ciegos y Deficientes Visuales, quienes iniciaron estos trabajos. En el curso del trabajo en el sintetizador, se compiló un diccionario separado de la pronunciación correcta de palabras tomadas del idioma ruso. Para que los préstamos suenen exactamente de acuerdo con las reglas del idioma tártaro, y no el ruso. Y es bueno que un diccionario así haya sido compilado por filólogos profesionales. Por ejemplo, no existe tal diccionario para kirguís, y hay muchas áreas problemáticas, las formas de resolverlas que aún no se han encontrado simplemente técnicamente.En el curso del trabajo en el sintetizador, se compiló un diccionario separado de la pronunciación correcta de palabras tomadas del idioma ruso. Para que los préstamos suenen exactamente de acuerdo con las reglas del idioma tártaro, y no el ruso. Y es bueno que un diccionario así haya sido compilado por filólogos profesionales. Por ejemplo, no existe tal diccionario para kirguís, y hay muchas áreas problemáticas, las formas de resolverlas que aún no se han encontrado simplemente técnicamente.En el curso del trabajo en el sintetizador, se compiló un diccionario separado de la pronunciación correcta de palabras tomadas del idioma ruso. Para que los préstamos suenen exactamente de acuerdo con las reglas del idioma tártaro, y no el ruso. Y es bueno que un diccionario así haya sido compilado por filólogos profesionales. Por ejemplo, no existe tal diccionario para kirguís, y hay muchas áreas problemáticas, las formas de resolverlas que aún no se han encontrado simplemente técnicamente.



Un problema aparte es la colocación del estrés. En algunos idiomas, se puede predecir la ubicación del estrés, pero en el mismo ruso y ucraniano no se puede prescindir de un diccionario. Además, existen algoritmos de predicción de estrés basados ​​en estos diccionarios. Pero hacer esto sin poseer un vocabulario básico es imposible.



¿Qué hay en el futuro? Más bien, ¿qué nuevas funciones o mejoras de las existentes solicitan los usuarios con más frecuencia? El líder indiscutible aquí es una solicitud para agregar uno u otro idioma. Se está trabajando en nuevos idiomas, pero como se mencionó anteriormente, esto no es muy rápido y depende de la ayuda de especialistas externos. Y también mucha gente pide mejorar la calidad del sonido para acercarlo aún más a lo natural. Sin embargo, con las herramientas disponibles para Olga, no habrá mejoras dramáticas aquí. Es cierto que, de una versión a otra, todavía se realizan cambios en el sonido.



Ahora Olga espera que haya componentes listos para usar para redes neuronales escritos en lenguajes similares a C de bajo nivel que puedan proporcionar un rendimiento suficiente en dispositivos móviles. Y si se inicia en teléfonos móviles, funcionará en otras plataformas. Estos proyectos ya se están desarrollando, y luego podrá reelaborar su sintetizador. Otro problema importante que debe resolverse es que no existe una manera simple y directa de agregar su propio idioma y voz en RhVoice. Hay personas que están dispuestas a pagar por este trabajo, pero el problema es el clásico: hay muchas solicitudes, Olga es una, y como en la mayoría de los proyectos divertidos, el código base es un bosque tan mágico que es una tarea mortal para alguien que no sea el creador resolverlo. ... En la mayoría de estos proyectos, los desarrolladores proporcionan un conjunto de herramientas y documentación a quienes deseen,mediante el cual, conociendo la fonética del idioma y teniendo el resto de conocimientos, puedes crear tu propio módulo de idioma. Hasta ahora, Olga no tiene ni lo uno ni lo otro. Pero hay planes para hacerlo.



En conclusión, me gustaría decir que así, gracias a una persona entusiasta, se ha hecho un muy buen trabajo durante muchos años. Muchas gracias, Olga.



Si también desea agradecer a Olga por su trabajo desinteresado, o incluso participar en el desarrollo de RhVoice, ayudar al proyecto con sus conocimientos, mejores prácticas o patrocinio, puede hacerlo contactando a Olga a través de su github .





All Articles