Skip to main content

Pakiety głosowe

🚧 This article is incomplete

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:

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ć: