Pacotes de voz
This article is incomplete & needs to be reviewed. You can help by creating a pull request.
O OsmAnd suporta dois tipos de pacotes de voz:
- Text-To-Speech (https://developer.android.com/reference/android/speech/tts/TextToSpeech) disponível em App Stores ou pré-instalado
- Pacotes de Voz Gravada, que incluem vozes gravadas.
Se você não conseguiu encontrar o pacote de voz de que precisa, siga os exemplos a seguir e crie seu próprio pacote de voz. Exemplos - https://github.com/osmandapp/OsmAnd-resources/tree/master/voice, pacote em alemão de_0.voice.zip, pacote em inglês en_0.voice.zip.
Diferença entre TTS e pacotes gravados
- um mecanismo Text-To-Speech suporta a pronúncia de nomes de ruas, referências e nomes de POIs
- todos os pacotes suportados por Text-To-Speech são agrupados e atualizados com um aplicativo
- um Pacote Gravado precisa ser instalado e atualizado manualmente (embora o arquivo de configuração possa ser atualizado com a atualização do aplicativo)
- um Pacote Gravado pode não suportar algumas formas corretas, e o suporte é limitado
- um Pacote Gravado não requer que nenhum mecanismo TTS proprietário seja instalado
Estrutura do Pacote
O pacote de voz geralmente é distribuído como .voice.zip, onde o zip contém uma pasta com lang_tts.js (arquivo de configuração principal) e arquivos de som, se presentes.
Os arquivos de configuração são escritos em linguagem JavaScript. Todos os arquivos de configuração são por padrão pacotes TTS, mesmo que não haja TTS presente ainda para suportar o idioma. E posteriormente a configuração é estendida mapeando 'frases de dicionário' para 'nomes de arquivos gravados'.
function populateDictionary(tts) {
// ROTA CALCULADA
dictionary["route_is1"] = tts ? "Die berechnete Strecke ist" : "route_is1.ogg";
dictionary["route_is2"] = tts ? "lang" : "route_is2.ogg";
dictionary["route_calculate"] = tts ? "Route neu berechnet" : "route_calculate.ogg";
dictionary["distance"] = tts ? "die Entfernung beträgt" : "distance.ogg";
// ESQUERDA/DIREITA
dictionary["prepare"] = tts ? "Demnächst " : "prepare.ogg"; // Demnächst sounds better then Vorbereiten zum
dictionary["after"] = tts ? "nach" : "after.ogg";
dictionary["left"] = tts ? "links abbiegen" : "left.ogg";
.....
}
function route_recalc(dist, seconds) {
return dictionary["route_calculate"] + (tts ? ", " : " ") + distance(dist, "nominativ") + (tts ? ", " : " ") + dictionary["time"] + " " + time(seconds) + (tts ? ". " : " ");
}
Geração de pacote personalizado
Por favor, verifique os recursos do projeto e use a mesma estrutura de pasta que o pacote alemão - basta fazer uma cópia. Uma vez feito isso, você pode alterar, executar o script de geração e especificar os argumentos necessários. A ajuda está dentro do script.
Testando pacote de voz (Android)
Para testar, você pode usar:
- navegação;
- simulação de navegação;
- ou uma versão conveniente do plugin de desenvolvimento do OsmAnd, que simula diferentes comandos de voz para teste.