Pacchetti vocali
This article is incomplete & needs to be reviewed. You can help by creating a pull request.
OsmAnd supporta due tipi di pacchetti vocali:
- Text-To-Speech (https://developer.android.com/reference/android/speech/tts/TextToSpeech) disponibile negli App Store o preinstallato
- Pacchetti vocali registrati, che includono voci registrate.
Se non riesci a trovare il pacchetto vocale di cui hai bisogno, segui gli esempi seguenti e crea il tuo pacchetto vocale. Esempi - https://github.com/osmandapp/OsmAnd-resources/tree/master/voice, pacchetto tedesco de_0.voice.zip, pacchetto inglese en_0.voice.zip.
Differenza tra pacchetti TTS e registrati
- un motore Text-To-Speech supporta la pronuncia di nomi di strade, riferimenti, nomi di POI
- tutti i pacchetti supportati da Text-To-Speech sono raggruppati e aggiornati con un'applicazione
- un pacchetto registrato deve essere installato e aggiornato manualmente (anche se il file di configurazione potrebbe essere aggiornato con l'aggiornamento dell'app)
- un pacchetto registrato potrebbe non supportare alcune forme corrette e il supporto è limitato
- un pacchetto registrato non richiede l'installazione di alcun motore TTS proprietario
Struttura del pacchetto
Il pacchetto vocale viene solitamente distribuito come .voice.zip, dove lo zip contiene una cartella con lang_tts.js (file di configurazione principale) e file audio se presenti.
I file di configurazione sono scritti in linguaggio JavaScript. Tutti i file di configurazione sono per impostazione predefinita pacchetti TTS, anche se non è ancora presente alcun TTS per supportare la lingua. E successivamente la configurazione viene estesa mappando "frasi del dizionario" a "nomi di file registrati".
function populateDictionary(tts) {
// ROUTE CALCULATED
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";
// LEFT/RIGHT
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 ? ". " : " ");
}
Generazione di pacchetti personalizzati
Controlla le risorse del progetto e utilizza la stessa struttura di cartelle del pacchetto tedesco - semplicemente copialo. Una volta fatto, puoi modificare, eseguire lo script di generazione e specificare gli argomenti richiesti. L'aiuto è all'interno dello script.
Test del pacchetto vocale (Android)
Per i test, puoi utilizzare:
- navigazione;
- simulazione di navigazione;
- o una comoda versione del plugin di sviluppo OsmAnd, che simula diversi comandi vocali per i test.