Paquets vocaux
This article is incomplete & needs to be reviewed. You can help by creating a pull request.
OsmAnd prend en charge deux types de paquets vocaux :
- Synthèse vocale (https://developer.android.com/reference/android/speech/tts/TextToSpeech) disponible sur les App Stores ou préinstallée
- Paquets vocaux enregistrés, qui incluent des voix enregistrées.
Si vous n'avez pas trouvé le paquet vocal dont vous avez besoin, veuillez suivre les exemples suivants et créer votre propre paquet vocal. Exemples - https://github.com/osmandapp/OsmAnd-resources/tree/master/voice, paquet allemand de_0.voice.zip, paquet anglais en_0.voice.zip.
Différence entre les paquets TTS et enregistrés
- un moteur de synthèse vocale prend en charge la prononciation des noms de rues, des références, des noms de POI
- tous les paquets pris en charge par la synthèse vocale sont regroupés et mis à jour avec une application
- un paquet enregistré doit être installé et mis à jour manuellement (bien que le fichier de configuration puisse être mis à jour avec la mise à jour de l'application)
- un paquet enregistré peut ne pas prendre en charge certaines formes correctes, et la prise en charge est limitée
- un paquet enregistré ne nécessite pas l'installation d'un moteur TTS propriétaire
Structure du paquet
Un paquet vocal est généralement distribué sous forme de .voice.zip, où le zip contient un dossier avec lang_tts.js (fichier de configuration principal) et des fichiers audio s'ils sont présents.
Les fichiers de configuration sont écrits en langage JavaScript. Tous les fichiers de configuration sont par défaut des paquets TTS, même s'il n'y a pas encore de TTS pour prendre en charge la langue. Et plus tard, la configuration est étendue en mappant les "phrases du dictionnaire" aux "noms de fichiers enregistrés".
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 ? ". " : " ");
}
Génération d'un paquet personnalisé
Veuillez consulter les ressources du projet et utiliser la même structure de dossiers que le paquet allemand - faites simplement une copie. Une fois cela fait, vous pouvez modifier, exécuter le script de génération et spécifier les arguments requis. L'aide se trouve dans le script.
Test du paquet vocal (Android)
Pour les tests, il est possible d'utiliser :
- la navigation
- la simulation de navigation,
- ou la version pratique du plugin de développement OsmAnd, qui simule différentes commandes vocales à tester.