Pakiety głosowe
This article is incomplete & needs to be reviewed. You can help by creating a pull request.
OsmAnd obsługuje dwa typy pakietów głosowych:
- Text-To-Speech (https://developer.android.com/reference/android/speech/tts/TextToSpeech) dostępne w sklepach z aplikacjami lub preinstalowane
- Nagrane pakiety głosowe, które zawierają nagrane głosy.
Jeśli nie możesz znaleźć potrzebnego pakietu głosowego, postępuj zgodnie z poniższymi przykładami i stwórz własny pakiet głosowy. Przykłady - https://github.com/osmandapp/OsmAnd-resources/tree/master/voice, pakiet niemiecki de_0.voice.zip, pakiet angielski en_0.voice.zip.
Różnica między TTS a pakietami nagranymi
- silnik Text-To-Speech obsługuje nazwy ulic, odniesienia, wymowę nazw POI
- wszystkie pakiety obsługiwane przez Text-To-Speech są dołączane i aktualizowane wraz z aplikacją
- pakiet nagrany musi być instalowany i aktualizowany ręcznie (chociaż plik konfiguracyjny może być aktualizowany wraz z aktualizacją aplikacji)
- pakiet nagrany może nie obsługiwać niektórych poprawnych form, a jego wsparcie jest ograniczone
- pakiet nagrany nie wymaga instalacji żadnego zastrzeżonego silnika TTS
Struktura pakietu
Pakiet głosowy jest zazwyczaj dystrybuowany jako .voice.zip, gdzie zip zawiera jeden folder z lang_tts.js (główny plik konfiguracyjny) oraz pliki dźwiękowe, jeśli są obecne.
Pliki konfiguracyjne są napisane w języku JavaScript. Wszystkie pliki konfiguracyjne są domyślnie pakietami TTS, nawet jeśli nie ma jeszcze TTS do obsługi języka. Później konfiguracja jest rozszerzana poprzez mapowanie „fraz słownikowych” na „nazwy nagranych plików”.
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 ? ". " : " ");
}
Generowanie pakietu niestandardowego
Sprawdź zasoby projektu i użyj tej samej struktury folderów co pakiet niemiecki - po prostu skopiuj. Po wykonaniu tej czynności możesz zmienić, uruchomić skrypt generujący i określić wymagane argumenty. Pomoc znajduje się w skrypcie.
Testowanie pakietu głosowego (Android)
Do testowania możesz użyć:
- nawigacji;
- symulacji nawigacji;
- lub wygodnej wersji wtyczki deweloperskiej OsmAnd, która symuluje różne polecenia głosowe do testowania.