To make use of the new TTS engines and the need for people to install obscure packages manually, the logic needs to be changed to pre-generate the messages to temporary files first and then just play those files (via QML) once needed. This could also make recorded voice sample based navigation possible (IIRC Marble has a good collection of multilingual navigation voice samples).
Also - it it possible to detect the language for place names in Valhalla output ? If they could be tagged by language (or even just country) it might be possible to set a different language in the TTS engine just fort he place name (at least espeak can do that).