NV Speech Player. Um mecanismo de síntese de fala baseado em Klatt escrito em c++
- Autor: NV Access Limited
- Download do NV Speech Player para NVDA 2019.3 ou superior
Visão geral
O NV Speech Player é um protótipo de sintetizador de fala gratuito e de código aberto que pode ser usado pelo NVDA. Ele gera a fala usando a síntese Klatt, o que o torna semelhante a sintetizadores de fala como o Dectalk e o Eloquence.
Licença e direitos autorais
NV Speech Player é Copyright (c) 2014 Contribuidores do NV Speech Player O NV Speech Player é coberto pela Licença Pública Geral GNU (Versão 2). Você é livre para compartilhar ou alterar este software da maneira que desejar, desde que ele esteja acompanhado da licença e que você disponibilize todo o código-fonte para quem quiser. Isso se aplica tanto às cópias originais quanto às modificadas deste software, além de quaisquer trabalhos derivados. Para obter mais detalhes, você pode visualizar a licença on-line em: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
Histórico
Nas décadas de 70 e 80, houve muitas pesquisas sobre síntese de fala. Um dos modelos de síntese mais proeminentes que surgiu foi uma síntese de frequência de formantes conhecida como síntese Klatt. Alguns sintetizadores Klatt bem conhecidos são o Dectalk e o Eloquence. Eles são adequados para uso por cegos, pois são extremamente responsivos, sua pronúncia é suave e previsível e ocupam pouco espaço na memória. Entretanto, as pesquisas logo passaram para outras formas de síntese, como a fala concatenativa, pois, embora fosse mais lenta, era muito mais próxima da voz humana. Isso foi uma vantagem para o uso em aplicativos convencionais, como unidades de GPS ou sistemas telefônicos, mas não necessariamente uma grande vantagem para os cegos, que tendem a se preocupar mais com a capacidade de resposta e a previsibilidade do que com a beleza.
Embora sintetizadores como o Dectalk e o Eloquence tenham continuado a ser mantidos e disponíveis por quase 20 anos, agora eles estão se tornando mais difíceis de obter, com várias empresas dizendo que esses sintetizadores e suas variantes chegaram ao fim da vida útil e não serão mais atualizados.
A síntese concatenativa está começando a se mostrar promissora como substituta, pois a capacidade de resposta e a suavidade estão melhorando. Entretanto, a maioria dos sintetizadores de qualidade aceitável, se não todos, são comerciais e bastante caros.
Tanto o Dectalk quanto o Eloquence eram produtos comerciais de código fechado. Entretanto, há uma quantidade substancial de código-fonte e material de pesquisa sobre a síntese Klatt disponível para a comunidade. O NV Speech Player tenta tirar proveito disso por ser um protótipo moderno de um sintetizador Klatt, na esperança de substituir sintetizadores como o Dectalk ou o Eloquence ou, pelo menos, reiniciar a pesquisa e a conversa sobre esse método de síntese.
O sintetizador eSpeak, por si só um produto gratuito e de código aberto, provou ser um bom substituto para um certo número de pessoas na comunidade, mas muitas pessoas que o ouvem são extremamente rápidas em apontar seu som “metálico” e parecem não conseguir continuar a usá-lo. Embora os autores do NV Speech Player ainda prefiram o eSpeak como seu sintetizador de escolha, eles ainda esperam tentar entender melhor essa estranha resistência ao eSpeak, que pode ter algo a ver com a síntese de frequência espectral do eSpeak em relação à síntese Klatt. Também pode ter a ver com o fato de que as consoantes também são coletadas da fala gravada e, portanto, podem ser percebidas como injetadas no fluxo da fala.
Implementação
O mecanismo de síntese em si é escrito em C++ usando expressões modernas, mas seguindo de perto a implementação do klsyn-88, encontrada em http://linguistics.berkeley.edu/phonlab/resources/
eSpeak é usado para analisar o texto em fonemas representados no IPA, fazendo uso do processamento do dicionário eSpeak existente. O eSpeak pode ser encontrado em: http://espeak.sourceforge.net/
Os dados de formantes Klatt para cada fonema individual foram coletados principalmente de um projeto chamado PyKlatt: http://code.google.com/p/pyklatt/. No entanto, eles foram ajustados com base em testes e correspondências com os próprios dados do eSpeak.
As regras para comprimentos de fonemas, intervalos, velocidade e entonação foram codificadas manualmente em Python, embora os dados de entonação do próprio eSpeak tenham sido copiados o máximo possível.
Criação do reprodutor de fala NV
Você precisará de: - Python 3.7: http://www.python.org - SCons 3: http://www.scons.org/ - Visual Studio 2019 Community
Para construir: execute scons
Após a compilação, haverá um arquivo nvSpeechPlayer_xxx.nvda-addon no diretório raiz, em que xxx é a revisão do git ou o número da versão codificada. A instalação desse complemento no NVDA permitirá que você use o sintetizador Speech Player no NVDA. Observe que tudo o que você precisa está no complemento, nenhuma dll ou arquivo extra precisa ser copiado.