NV Speech Player . Um motor de síntese de voz baseado em Klatt- escrito em c++

Visão geral

O NV Speech Player é um protótipo de sintetizador de voz gratuito e de código aberto que pode ser utilizado pelo NVDA. Gera fala usando síntese Klatt, tornando-o algo semelhante a sintetizadores de fala como o Dectalk e o Eloquence.

Licença e direitos de autor

O NV Speech Player é da autoria (c) 2014 dos Os colaboradores do NV Speech Player NV Speech Player são cobertos pela Licença Pública Geral GNU (Versão 2). É livre de partilhar ou alterar este software da forma que desejar, desde que seja acompanhado pela licença e disponibilize todo o código fonte a qualquer pessoa que o deseje. Isto aplica-se tanto às cópias originais como às cópias modificadas deste software, mais quaisquer obras derivadas. Para mais detalhes, pode ver a licença online em: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Fundo

Os anos 70 e 80 assistiram a muita investigação na síntese da voz. Um dos modelos de síntese mais proeminentes que apareceu foi uma síntese de formant-frequência conhecida como síntese Klatt. Alguns sintetizadores conhecidos de Klatt são Dectalk e Eloquence. São bem adequados para utilização por cegos, uma vez que são extremamente reactivos, a sua pronúncia é suave e previsível e consomem pouca memória. No entanto, a investigação passou rapidamente para outras formas de síntese, tais como o discurso concaterativo, pois embora este fosse mais lento, estava muito mais próximo da voz humana. Esta era uma vantagem para a utilização em aplicações correntes como unidades GPS ou sistemas telefónicos, mas não necessariamente uma grande vantagem para os cegos, que tendem a preocupar-se mais com a capacidade de resposta e previsibilidade do que com a prontidão.

Embora sintetizadores como o Dectalk e Eloquence tenham continuado a ser mantidos e disponíveis durante quase 20 anos, agora estão a tornar-se mais difíceis de obter, com múltiplas empresas a dizerem que estes, e as suas variantes, foram eliminados e não serão mais actualizados.

A síntese concatinativa começa agora a mostrar-se prometedora como um substituto à medida que a capacidade de resposta e a suavidade melhoram. Contudo, a maioria dos sintetizadores de qualidade aceitável, se não todos, são comerciais e bastante caros.

Tanto o Dectalk como o Eloquence eram produtos comerciais de fonte fechada. Contudo, existe uma quantidade substancial de código fonte e material de pesquisa sobre a síntese Klatt à disposição da comunidade. NV Speech Player tenta tirar partido disto, sendo um protótipo moderno de um sintetizador Klatt, na esperança de ser um substituto de sintetizadores como Dectalk ou Eloquence, ou pelo menos reiniciar a investigação e a pesquisa em torno deste método de síntese.

O sintetizador eSpeak, em si mesmo um produto gratuito e de código aberto, provou ser um substituto para um certo número de pessoas na comunidade, mas muitas pessoas que o ouvem são extremamente rápidas a apontar o seu som "metálico" e não parecem poder continuar a utilizá-lo. Embora os autores do NV Speech Player ainda prefiram o eSpeak como o seu sintetizador de escolha, ainda esperam tentar compreender melhor esta estranha resistência ao eSpeak que pode ter algo a ver com a síntese de frequência espectral do eSpeak versos síntese Klatt. Pode também ter a ver com o facto de que as consoantes também são recolhidas a partir do discurso gravado e podem, portanto, ser percebidas como sendo injectadas no fluxo do discurso.

Implementação

O próprio motor de síntese está escrito em C++ usando expressões idiomáticas modernas, mas seguindo de perto a implementação do klsyn-88, encontrado em http://linguistics.berkeley.edu/phonlab/resources/

o eSpeak é utilizado para analisar texto em fonemas representados no IPA, fazendo uso do processamento do dicionário do eSpeak existente. O eSpeak pode ser encontrado em: http://espeak.sourceforge.net/

Os dados da formante do Klatt para cada fonema individual foram recolhidos principalmente de um projecto chamado PyKlatt: http://code.google.com/p/pyklatt/ No entanto, foram ainda ajustados com base em testes e correspondência com os dados do próprio eSpeak.

As regras para comprimentos de fonemas, lacunas, velocidade e entoação foram codificadas à mão em Python, embora se tenha tentado copiar, tanto quanto possível, os dados de entoação do própria eSpeak.

Construir o leitor de voz NV

Vai precisar de : - Python 3.7: http://www.python.org - SCons 3: http://www.scons.org/ - Comunidade Visual Studio 2019

Para compilar: run scons

Após a construção, haverá um ficheiro nvSpeechPlayer_xxx.nvda-addon no directório raiz, onde xxx é o número de revisão git ou de versão codificada em código duro. A instalação deste suplemento no NVDA permitir-lhe-á utilizar o sintetizador Speech Player no NVDA. Note que tudo o que necessita está no add-on, não é necessário copiar ficheiros dlls ou ficheiros extra.