Como um desenvolvedor cego construiu sozinho um sintetizador de voz



Todos nós, de uma forma ou de outra, encontramos usuários com problemas de visão. Os responsáveis ​​pela IU, seja qual for o site, aplicativo móvel ou qualquer outro software, muito provavelmente sabem da necessidade de levar em consideração as necessidades dessas pessoas e, portanto, criaram modos de contraste aumentado, fontes maiores e assim por diante.



Mas e se o usuário for totalmente cego e todas essas modalidades não facilitarem sua vida? É aqui que os leitores de tela e os sintetizadores de som entram na arena, dos quais eles não podem prescindir. E eu gostaria de falar sobre um deles hoje.



É chamado de RhVoice e foi mencionado em várias publicações sobre Habré. Mas você sabia que muitos o consideram o melhor sintetizador gratuito da fala russa (e não só), e foi escrito sozinho por uma desenvolvedora completamente cega - Olga Yakovleva?



Hoje restauramos a justiça histórica e aprendemos um pouco sobre o próprio sintetizador em geral, e sobre Olga em particular.



Vamos abrir todos os cartões de uma vez : sintetizador github O



código do sintetizador é distribuído gratuitamente sob a GPL, o que significa que qualquer pessoa pode integrá-lo em seu produto. Disponível em três plataformas: Windows, Linux e Android. Olga é a desenvolvedora sozinha e trabalha em Linux. O melhor (do código aberto) sintetizador da fala russa, é considerado pelos próprios usuários e não são apenas pessoas com deficiência visual. Em seu trabalho, o sintetizador usa síntese paramétrica estatística e foi baseado nos desenvolvimentos de projetos existentes, como o HTS, e estudos científicos publicados. É uma rede neural profunda híbrida que funciona com um modelo de Markov oculto. A tarefa dessas redes é resolver parâmetros desconhecidos com base em observáveis. Pode-se considerar que esta é a rede Bayesiana mais simples. O próprio HTS foi baseado no desenvolvimento de outro projeto - HTK . Mas aqui estamos mais interessados ​​em que alguns dos desenvolvimentos foram publicados para uso livre, incluindo uma descrição dos algoritmos e técnicas aplicadas.



O próprio sintetizador é posicionado como uma ferramenta para o trabalho diário. Pode ser usado para propósitos mais criativos, como livros de som, mas ainda é melhor quando as pessoas estão falando.



Olga iniciou seu projeto há quase 10 anos, quando começou a estudar Linux e não encontrou um sintetizador conveniente para ela lá. Ela escreve todo o código sozinha, usando um display Braille especial para isso. Este é um dispositivo especial projetado para exibir informações de texto na forma de caracteres Braille de seis pontos. Ela também usa o JAWS, um leitor de tela que remonta ao DOS e também foi criado com a participação ativa de cegos.



Agora que a introdução foi feita, vamos nos aprofundar um pouco mais no mundo dos sintetizadores de voz.



O que é um sintetizador de voz e o que ele inclui?



Tradicionalmente, considera-se que qualquer sintetizador consiste em duas partes: um componente de linguagem e um componente de geração de sinal de voz. O componente de linguagem analisa o texto recebido do leitor de tela. Sua tarefa é dividir o texto em sentenças, sentenças em frases, palavras e sílabas. No final, é feita uma transcrição de todas as palavras e a partir dela é criado um mapa de sons (como todos sabem, nem sempre é assim que se escreve e se fala). Essa análise pode ser feita com diferentes profundidades de estudo. RhVoice, por exemplo, carece de recursos para operações complexas, como definir um papel em uma frase ou parte do discurso. Mas em qualquer caso, no final da análise, obtemos um conjunto de sons que o componente de geração do sinal de voz deve montar usando a base de sons pré-gravados. Iremos nos deter em cada um dos componentes com mais detalhes posteriormente.





Demonstração de como trabalhar com um sintetizador



A história de olga



Olga mora em Cheboksary, formou-se na faculdade de matemática da Chuvash State University e trabalha como programadora. Como todos os cegos, ela estudou em escolas especializadas. No início, havia 6 classes em uma escola em Nizhny Novgorod, porque naquela época em Cheboksary não havia lugares onde crianças completamente cegas fossem aceitas. Mas seis anos depois, ela ainda conseguiu voltar para sua cidade natal, e Olga terminou seus estudos em Cheboksary. Na mesma escola, Olga apaixonou-se pela matemática, o que mais tarde permitiu-lhe entrar na Faculdade de Matemática. Em algum momento, ela pensou em entrar no THI, mas aqui a incerteza em suas próprias habilidades desempenhou um papel. Sim, e entre os licenciados da Faculdade de Matemática havia vários cegos e, na entrevista introdutória, o reitor disse que os seus programadores estão ainda melhor preparados do que nas TIC.



Olga teve sua primeira experiência de trabalho com computadores não na escola, mas na universidade, em cuja biblioteca compraram computadores especiais para cegos, com o programa JAWS instalado (um leitor de tela que acompanha sua história desde 1989). Lá ela estudou o famoso livro-texto de Sarah Morley sobre o Windows 95. Provavelmente, você ficará surpreso agora, porque o que é um livro tão famoso, sobre o qual você nunca ouviu falar? A resposta está em seu nome: "Windows 95 para cegos e deficientes visuais"... A principal diferença entre esses livros e aqueles familiares a todos nós é a ênfase na descrição de vários objetos e opções para gerenciá-los. Já para uma pessoa cega, a instrução do formulário "clique na lista suspensa e selecione o item de menu desejado" é um tanto inútil. Eles não veem a tela, o cursor do mouse e ainda mais - eles não sabem como é a janela e a lista suspensa. Aliás, por causa disso, surge outra nuance não óbvia - pessoas cegas podem ser reféns do bitness do sintetizador utilizado. Assim, há cinco anos, ao mudar para o Windows 8, muitos enfrentaram a falta de suporte para aplicativos de 64 bits do lado dos sintetizadores de voz e mudaram para o RhVoice, onde esse suporte já estava implementado.



Mas vamos voltar aos tempos em que Olga estava apenas começando a explorar uma nova área por conta própria. O sintetizador de voz era o programa Digalo com a voz de Nikolay. Este é um pacote tão canônico que os resultados de seu trabalho foram ouvidos por absolutamente qualquer pessoa que entrou online. Sua voz pode ser considerada sinônimo do termo "robótica", de forma que ele entrou na cultura da Internet e foi usada em uma infinidade de vídeos no YouTube. É provavelmente por isso que a maioria absoluta tem certeza de que Digalo é o sobrenome de Nikolai. 





Digalo Nikolay em toda a sua glória



Introdução ao seu próprio projeto



A jornada de Olga no mundo dos sintetizadores começou por volta de 2010 com o desenvolvimento do driver NVDA (NonVisual Desktop Access) para o sintetizador do Festival. O NVDA é um leitor de tela gratuito que permite que pessoas com deficiência visual e cegos interajam totalmente com seu computador. Uma classe semelhante de programas inclui um sintetizador de voz e a capacidade de saída para um display braille.



Graças ao Festival, Olga mergulhou no mundo dos sintetizadores de voz e descobriu que não só as empresas comerciais, mas também quem quer ter a oportunidade de fazer um computador falar. Naquela época, já havia vários sintetizadores de fala abertos, que eram distribuídos principalmente por cientistas que estudavam tecnologias de síntese de fala.



Por isso, Olga fez seus primeiros experimentos com base nos trabalhos de colegas mais experientes do mesmo Festival. É um sintetizador de fala acadêmico criado em 1995 por um grupo de cientistas liderado por Alan Black. Eles desenvolveram métodos de síntese e com base em suas pesquisas fizeram seu próprio sintetizador, que originalmente era apenas uma demonstração dos resultados de seu trabalho. Com o tempo, um projeto igualmente importante, o FestVox, foi adicionado a ele, permitindo a geração de novas vozes artificiais, e ainda por cima foi apimentado com uma documentação muito boa. Naquela época, o Festival já tinha a voz russa de Alexandre com uma base de fala muito boa.



O que é uma base de fala: no caso do RhVoice, são mais de mil frases especiais, lidas por um falante com uma pronúncia clara e sem emoção. Essas sentenças devem ser selecionadas de forma que contenham todos os difonemas, ou seja, todas as combinações de dois fonemas. E seria bom se várias vezes cada um para maior variabilidade. De acordo com as lembranças, cerca de 600 frases foram usadas nas primeiras versões. Além disso, o sintetizador pode formar qualquer palavra a partir desses fonemas. Em inglês, esse método é chamado de seleção de unidade, e em nosso país é conhecido como o método de seleção de unidades de fala. Sim, não é o mais moderno e jovem, mas funciona de forma confiável como um ferro. Cada frase é inserida na base e analisada: os sons são determinados, suas posições nas sílabas, nas palavras, nas frases. Os fonemas individuais são classificados,a localização entre eles e assim por diante. Durante a operação reversa, ou seja, síntese de fala, para cada fonema obtido na transcrição, basta selecionar o exemplo mais adequado (leia-se: fechar) do banco de dados. Às vezes é possível encontrar uma correspondência estrita, às vezes você tem que se contentar com o mais semelhante. No mundo dos filólogos, isso é chamado de fonética teórica e prática e não foi inventado ontem. Portanto, é impossível usar sintetizadores de fala sem ler livros didáticos de fonética. A propósito, livros especialmente bons foram publicados na Universidade Estadual de Moscou.No mundo dos filólogos, isso é chamado de fonética teórica e prática e não foi inventado ontem. Portanto, é impossível usar sintetizadores de fala sem ler livros didáticos de fonética. A propósito, livros especialmente bons foram publicados na Universidade Estadual de Moscou.No mundo dos filólogos, isso é chamado de fonética teórica e prática e não foi inventado ontem. Portanto, é impossível usar sintetizadores de fala sem ler livros didáticos de fonética. A propósito, livros especialmente bons foram publicados na Universidade Estadual de Moscou.



E onde conseguir essas ofertas? Você pode escrever sozinho, mas esta é uma tarefa bastante difícil e existem duas maneiras alternativas. Você pode pegar um texto escrito por alguém com antecedência, mas isso pode violar direitos autorais ou custar dinheiro individual. Portanto, os autores de algumas vozes usam textos da Wikipedia. Para idiomas grandes como inglês ou russo, você pode encontrar facilmente os exemplos necessários lá. Línguas pequenas não têm sorte nesse sentido. Por exemplo, esse truque não funcionou com a Wikipedia bielorrussa.



Qual é a diferença entre idioma e voz? Afinal, há sete anos ainda não havia locutor ucraniano ou tártaro. Como eles aparecem nos sintetizadores?



Vozes em sintetizadores de voz



Tudo começa com a análise da língua, que consiste na criação de um banco de dados onde o sistema fonético dessa língua é formalmente descrito. Essas bases já podem ser feitas por alguém e vendidas no mercado (por um bom dinheiro). Caso contrário, você tem que fazer isso sozinho. Para a análise de cada idioma, é desenvolvido um programa distinto que pode levar até um ano e meio de trabalho, dependendo da complexidade do idioma. Por exemplo, o italiano é muito simples em termos de síntese de fala, enquanto idiomas como o árabe e o chinês são extremamente complexos. Mas, em média, um analisador de idioma é criado em um ano. Depois de pronta, uma voz já está escrita. Isso está demorando cerca de três meses. A gravação da narração e de outros trabalhos no estúdio leva de duas a três semanas. Isso se deve ao fatoque o palestrante pode falar com qualidade e beleza por cerca de quatro horas por dia. Então ele fica cansado e não parece mais limpo o suficiente. Se você acha que isso é tolice, não - requisitos muito sérios são impostos à qualidade desses registros. Empresas comerciais conduzem castings inteiros, selecionando não apenas pela beleza subjetiva da voz, mas também, se possível, usam uma voz específica para um idioma específico em seu sintetizador.



Em seguida, o registro é segmentado em blocos de acordo com o banco de dados e, em seguida, usando um analisador de linguagem, esses blocos são combinados. Ou seja, é feita uma análise de que este é um substantivo, este é um verbo, ele fica ao lado deste, significa que deveria soar assim e o fonema mais próximo é substituído. Portanto, o papel do analisador é extremamente importante: ele deve levar em consideração não apenas o arranjo das sílabas de uma palavra, mas também o arranjo das palavras em uma frase e os sinais de pontuação. Tudo isso afeta a pronúncia. Em alguns idiomas, a mesma palavra pode ser pronunciada de maneira diferente, dependendo se é um substantivo ou um verbo.



Mas esta é mais uma rota para produtos comerciais, cujos criadores possuem os recursos para pesquisas tão aprofundadas. Os desenvolvedores independentes usam opções mais simples: sem uma classificação completa por classes gramaticais, mas, por exemplo, apenas no nível de uma palavra / preposição / união independente, etc. Olga seguiu seu próprio caminho ainda mais longe e escreveu seu módulo de linguagem baseado em livros didáticos e artigos sobre fonética. Felizmente, há um número suficiente de estudos publicados sobre esse assunto.



Você notou que a maioria dos sintetizadores tem vozes femininas primeiro? Isso não se deve às preferências dos autores, mas sim à complexidade de desenvolver uma voz feminina. A voz feminina é naturalmente mais alta e as altas frequências são mais difíceis de processar do que as baixas. E se você conseguir criar uma voz feminina, então uma voz masculina certamente funcionará. Mas, pelo contrário, não é um fato.





No caso de Olga, essa é uma paixão pessoal pelo tema e até uma necessidade. E o desenvolvimento comercial? Como eles decidem qual idioma adicionar e qual não? A resposta para tudo é dinheiro. A primeira opção, óbvia, é analisar um possível mercado de vendas para novas vozes. Simplificando: qual é o nível econômico do país e se seus habitantes têm dinheiro para comprar seu produto. O segundo incentivo já é mais interessante. É desejo do governo ou de outras organizações criar uma síntese de fala para um determinado idioma. Portanto, os sintetizadores de voz foram feitos para línguas muito pequenas, simplesmente porque alguém cuidou disso e alocou dinheiro para o desenvolvimento. E, por exemplo, nos países escandinavos existem leis que estabelecem que todos os documentos escritos devem ser acessíveis aos cegos e deficientes visuais. Portanto, qualquer jornal publicado deve ter sua própria versão em áudio.



E para perceber a ordem dos preços: o desenvolvimento de uma nova voz, a partir de empresas privadas, custa cerca de dez a quarenta mil euros, dependendo da complexidade da língua. O desenvolvimento do módulo analisador custa muito mais caro. Em relação à RhVoice, Olga tem uma postura de princípios - seu projeto sempre será gratuito. Então de onde vem o dinheiro para os locutores? Nos estágios iniciais, houve voluntários que ofereceram ajuda. Eles tinham estúdio próprio e se ofereceram para pagar o locutor, então Olga só poderia enviar uma lista de propostas para narração. Foi assim que várias novas linguagens apareceram no RhVoice. Então eles começaram a recorrer a ela com pedidos específicos.



Mas o destino de um maior desenvolvimento depende de encontrar os recursos necessários no acesso gratuito. Por exemplo, antes não existia um dicionário aberto de tensões para a língua ucraniana, e é impossível construir um sintetizador sem saber como as tensões são colocadas. Agora já foi adicionado, mas muito trabalho foi feito. O idioma russo é muito mais afortunado em termos de disponibilidade de materiais. E a voz canônica "Alexander" foi disponibilizada publicamente por seu criador, graças à qual Olga pôde iniciar seus primeiros experimentos na criação de um sintetizador de voz.



Como você pode criar um sintetizador se não conhece o idioma? Convencionalmente, você sabe russo e inglês, mas é solicitado a desenvolver o árabe? Não há limitações técnicas, o principal é encontrar na Internet alguns artigos e materiais sobre a língua, sobre suas estruturas, ou mesmo consultar um filólogo. Isso pode ser suficiente para desenvolver um sintetizador de voz inicial. De fato, em geral, a quantidade de informações iniciais é padrão: uma lista de fonemas, regras para a transcrição da representação da letra para a pronúncia, detalhes sobre classes auxiliares da fala, etc. O principal problema será que o desenvolvedor não poderá verificar os resultados de seu trabalho sem a participação de um falante nativo. E um falante nativo não deve apenas dar um feedback claro / incompreensível, mas também explicar todas as sutilezas e nuances de lugares onde algo deu errado. No caso do RhVoice, o tatar tornou-se uma linguagem difícil.Os filólogos ajudaram muito Olga com ele, com quem ela foi ligada por representantes da Biblioteca para Cegos e Deficientes Visuais de Kazan, que iniciaram esses trabalhos. No decorrer do trabalho no sintetizador, um dicionário separado da pronúncia correta de palavras emprestadas do idioma russo foi compilado. Portanto, os empréstimos soam exatamente de acordo com as regras do idioma tártaro, e não do russo. E é bom que tal dicionário tenha sido compilado por filólogos profissionais. Por exemplo, não existe tal dicionário para o Quirguistão, e existem muitas áreas problemáticas, as formas de resolver que ainda não foram encontradas simplesmente tecnicamente.No decorrer do trabalho no sintetizador, um dicionário separado foi até compilado para a pronúncia correta de palavras emprestadas do idioma russo. Portanto, os empréstimos soam exatamente de acordo com as regras do idioma tártaro, e não do russo. E é bom que tal dicionário tenha sido compilado por filólogos profissionais. Por exemplo, não existe tal dicionário para o Quirguistão, e existem muitas áreas problemáticas, as formas de resolver que ainda não foram encontradas simplesmente tecnicamente.No decorrer do trabalho no sintetizador, um dicionário separado com a pronúncia correta de palavras emprestadas do idioma russo foi até compilado. Portanto, os empréstimos soam exatamente de acordo com as regras do idioma tártaro, e não do russo. E é bom que tal dicionário tenha sido compilado por filólogos profissionais. Por exemplo, não existe tal dicionário para o Quirguistão, e existem muitas áreas problemáticas, as formas de resolver que ainda não foram encontradas simplesmente tecnicamente.



Um problema separado é a colocação de tensões. Em alguns idiomas, a localização do acento pode ser prevista, mas no mesmo russo e ucraniano não se pode prescindir de um dicionário. Além disso, existem algoritmos de previsão de estresse baseados nesses dicionários. Mas fazer isso sem possuir um vocabulário básico é impossível.



O que há no futuro? Em vez disso, quais novas funções ou melhorias nas existentes os usuários mais frequentemente pedem? O líder indiscutível aqui é um pedido para adicionar um ou outro idioma. O trabalho em novos idiomas está em andamento, mas como mencionado acima, isso não é muito rápido e depende da ajuda de especialistas externos. E também muitas pessoas pedem para melhorar a qualidade do som para deixá-lo ainda mais próximo do natural. No entanto, com as ferramentas disponíveis para Olga, não haverá melhorias dramáticas aqui. É verdade que, de versão para versão, as mudanças no som ainda são feitas.



Agora Olga espera que existam componentes prontos para redes neurais escritos em linguagens de baixo nível como C que serão capazes de fornecer desempenho suficiente em dispositivos móveis. E se ele iniciar em telefones celulares, ele funcionará em outras plataformas. Esses projetos já estão sendo desenvolvidos, e então ela poderá retrabalhar seu sintetizador. Outro problema importante a ser resolvido é que não existe uma maneira simples e direta de adicionar seu próprio idioma e voz no RhVoice. Há pessoas que estão dispostas a pagar por este trabalho, mas o problema é el clássico: há muitos pedidos, Olga é um deles, e como na maioria dos projetos divertidos, o código-base é uma floresta tão mágica que é uma tarefa mortal para alguém que não seja o criador descobrir. ... Na maioria desses projetos, os desenvolvedores fornecem um conjunto de ferramentas e documentação para aqueles que desejam,pelo qual, conhecendo a fonética da língua e tendo o resto do conhecimento, você pode criar seu próprio módulo de linguagem. Até agora Olga não tem nem uma coisa nem outra. Mas há planos para isso.



Para concluir, gostaria de dizer que, graças a uma pessoa entusiasta, um trabalho muito bom foi feito durante muitos anos. Muito obrigada, Olga.



Se você também deseja agradecer a Olga por seu trabalho altruísta, ou mesmo participar do desenvolvimento do RhVoice, ajudar o projeto com seu conhecimento, melhores práticas ou patrocínio, então você pode fazer isso contatando Olga através de seu github .





All Articles