Spraakpakketten
This article is incomplete & needs to be reviewed. You can help by creating a pull request.
OsmAnd ondersteunt twee soorten spraakpakketten:
- Tekst-naar-spraak (https://developer.android.com/reference/android/speech/tts/TextToSpeech) beschikbaar in App Stores of vooraf geïnstalleerd
- Opgenomen spraakpakketten, die opgenomen stemmen bevatten.
Als u het spraakpakket dat u nodig hebt niet kunt vinden, volg dan de volgende voorbeelden en maak uw eigen spraakpakket. Voorbeelden - https://github.com/osmandapp/OsmAnd-resources/tree/master/voice, Duits pakket de_0.voice.zip, Engels pakket en_0.voice.zip.
Verschil tussen TTS- en opgenomen pakketten
- een tekst-naar-spraak-engine ondersteunt de uitspraak van straatnamen, referenties en POI-namen
- alle door tekst-naar-spraak ondersteunde pakketten worden gebundeld en bijgewerkt met een applicatie
- een opgenomen pakket moet handmatig worden geïnstalleerd en bijgewerkt (hoewel het configuratiebestand kan worden bijgewerkt met een app-update)
- een opgenomen pakket ondersteunt mogelijk niet alle correcte vormen, en de ondersteuning is beperkt
- een opgenomen pakket vereist geen installatie van een eigen TTS-engine
Pakketstructuur
Een spraakpakket wordt meestal gedistribueerd als .voice.zip, waarbij de zip één map bevat met lang_tts.js (hoofd configuratiebestand), en geluidsbestanden indien aanwezig.
De configuratiebestanden zijn geschreven in JavaScript. Alle configuratiebestanden zijn standaard TTS-pakketten, zelfs als er nog geen TTS aanwezig is om de taal te ondersteunen. En later wordt de configuratie uitgebreid door 'woordenboekzinnen' te koppelen aan 'opgenomen bestandsnamen'.
function populateDictionary(tts) {
// ROUTE BEREKEND
dictionary["route_is1"] = tts ? "De berekende route is" : "route_is1.ogg";
dictionary["route_is2"] = tts ? "lang" : "route_is2.ogg";
dictionary["route_calculate"] = tts ? "Route opnieuw berekend" : "route_calculate.ogg";
dictionary["distance"] = tts ? "de afstand bedraagt" : "distance.ogg";
// LINKS/RECHTS
dictionary["prepare"] = tts ? "Binnenkort " : "prepare.ogg"; // Binnenkort klinkt beter dan Voorbereiden op
dictionary["after"] = tts ? "na" : "after.ogg";
dictionary["left"] = tts ? "links afslaan" : "left.ogg";
.....
}
function route_recalc(dist, seconds) {
return dictionary["route_calculate"] + (tts ? ", " : " ") + distance(dist, "nominativ") + (tts ? ", " : " ") + dictionary["time"] + " " + time(seconds) + (tts ? ". " : " ");
}
Aangepast pakket genereren
Controleer de projectbronnen en gebruik dezelfde mapstructuur als het Duitse pakket - maak gewoon een kopie. Zodra dit is gebeurd, kunt u het generatiescript wijzigen en uitvoeren en de vereiste argumenten opgeven. Hulp is te vinden in het script.
Spraakpakket testen (Android)
Voor het testen kunt u gebruiken:
- navigatie;
- navigatiesimulatie;
- of een handige versie van de OsmAnd ontwikkelingsplugin, die verschillende spraakcommando's simuleert voor het testen.