OsmAnd lernt Deutsch

Ich benutze als Navigationssystem für mein Fahrrad OsmAnd – das hat den Charme, dass es Offline-Routing macht und das sogar mit OpenStreetMap-Karten! Also genau so, wie ich es für die Wegfindung mit brandaktuellen und detailgenauen Karten brauche.

Zur Navigation benutze ich mein altes Nexus S, da ich für das Smartphone eine Fahrradhalterung für den Lenker habe. Leider ist das Gerät recht langsam mittlerweile oder OsmAnd frisst immer mehr Ressourcen, ich bilde mir ein, dass es früherTM schneller war. Jedenfalls funktioniert die Sprachansage via Text-To-Speech (TTS) auf dem Gerät nur stotternd, man versteht quasi nichts – und eine deutsche eingesprochene Sprachansage gibt es nicht oder ich hatte sie nicht griffbereit.

Selbst machen

Also mache ichs einfach selber. Am Vorbild der englischen Sprachausgabe habe ich mir die Audio-Dateien angehört und mir die deutsche _config.p Datei von der deutschen TTS-Version genommen.

Nachdem die meisten Dinge eingesprochen waren, hat die Ansage aber noch so etwas gesagt wie „Entfernung zwanzig drei Kilometer“. Diese Grammatik ist in Prolog geschrieben, also brauchte ich nur ein klein wenig ändern und habe noch neun weitere Samples eingesprochen und schon hat es „Entfernung dreiund zwanzig Kilometer“ gesagt. 🙂

Wenn ihr gerne wollt, dass ich euch vorblubber, wann ihr abbiegen müsst, dann könnt ihr einfach dieses ZIP nehmen und in den Ordner „osmand/voice/de“ extrahieren (da müssen direkt dann die Dateien drin liegen, ohne weitere Unterordner). Ich schicke aber vorweg, dass die Abstände der Ansagen nicht perfekt sind und man heraushört, dass die Ansage zusammengestückelt wird. Mir reichte das aber an Perfektion.

Viel Spaß damit!

Update: Ausprobiert

Vorhin habe ich die Sprachansagen mal ausprobiert und bin ziemlich begeistert. Folgendes Szenario: Ich habe mein aktuelles Smartphone einfach in meine Jackentasche getan, via BeyondPod eine Folge Happy Shooting Podcast in die Ohren und dann OsmAnd auf mein Ziel eingestellt.

Der Podcast läuft, ich habe Spaß. Wenn jetzt eine Ansage vom Navi kommt, dann wird kurz der Podcast pausiert, die Ansage kommt und dann wird der Podcast fortgesetzt. Total genial! Vom Timing her haben die Ansagen auch perfekt gepasst, also die waren gemessen an meiner Fortbewegungsgeschwindigkeit immer rechtzeitig und ich wusste auf längeren Geradeaus-Strecken immer ungefähr, ab welcher Entfernung ich wieder mit Ansagen rechnen durfte.

Insgesamt ist das also ein echt großartiges System! Wenn ich die Navigation wirklich brauche würde ich mir vermutlich nur einen Knopf ins Ohr machen und keinen Podcast an, damit meine Aufmerksamkeit noch mehr auf den Sprachansagen ist. Es ist halt schon blöd, wenn ich selber immer dem Podcast ins Wort falle, das lenkt total vom Podcast ab. 😉

Update 2: Hilfe gesucht!

Ich habe nach einiger Zeit einige Fehler im Sprachscript festgestellt. Diese Fehler habe nicht ich dort eingebaut, scheinbar ist das PROLOG-Generierungsscript fehlerhaft.

So werden manchmal einfach Angaben wie Zeit und Kilometer weggelassen bei der Sprachausgabe.
Ein Satz wäre dann: „Route wurde neu berechnet, Entfernung 850 Meter, Zeit Minuten“ – dort fehlt, wie viele Minuten es sind (OsmAnd zeigt „0:01“ auf dem Display). Oder aber wenn man ganz glatte Kilometerzahlen hat, dann lässt es bei der Ansage die Kilometerzahl weg.

Falls sich also jemand berufen fühlt und in Prolog sich auskennt, wäre es supercool, wenn man diesen Generierungsscript mal überarbeiten, vielleicht dokumentieren (damit ich da auch durchsteige) und fixen könnte. Außerdem fänd ichs klasse, eine Möglichkeit zu haben, diesen Script auf meinem Rechner auszuführen und zu sehen, welche Dateiliste zum Abspielen mir das Script generiert…. weil soweit bin ich noch gar nicht gekommen.

Hier ist das Repository, bitte forkt das und verbessert das Script. 🙂
https://github.com/Faldrian/OsmAndGermanSpeech

Danke!