Notices


Reply
Thread Tools
Posts: 749 | Thanked: 2,300 times | Joined on Jan 2011 @ Germany
#1991
Originally Posted by pichlo View Post
I thought that was the case already.
You're right, thanks!
It's under: Options/Navigation/Language

When I first tried modrana I had no GPS signal, so changing anything here had no effect since without a position there were no instructions to be read.
I assumed this menu was supposed to change the UI language or the language of the generic parts of instructions (e.g. "turn left" -> "links abbiegen").
As this didn't happen I assumed that this was a feature that wasn't implemented yet. At that point I hadn't even realized that changing the pronounciation of proper names would even be necessary, so I forgot about that menu.
Instead I expected pronounciation options to be in the Sound menu since I knew it was done by espeak and espeak clearly is sound-related.
 

The Following 6 Users Say Thank You to sulu For This Useful Post:
Posts: 1,423 | Thanked: 6,620 times | Joined on Apr 2010 @ Czech Republic
#1992
Originally Posted by rinigus View Post
Prerecorded voices would require limited phrases. This assumption doesn't hold for routing engines adding street names into the instructions.
Actually, I think in many cases the local names are not thatimportant or even useful, especially if you are in some unknown terrain and the names are in a foreign language (and possibly even in a different alphabet). Knowing the next manuever is a right turn/taking the 5th exit, etc. can be enough.

Originally Posted by rinigus View Post
Also supporting multiple routing engines doesn't help either ...
Yeah, you might not have phrases matching all the manuevers your routing engine could generate. Also the voice samples could be sizeable and distrubution would have to be solved somehow. Properly working TTS is just so much more flexible.

BTW, the Marble project created a rather comprehensive set of navigation voice samples in many languages.


Originally Posted by rinigus View Post
In theory, its possible. I don't know whether Valhalla imports multiple names (if available) when making the tiles. As soon as the names are available, should be possible to tag them in the instructions. Its not done yet, as far as I know.
Interesting! So provided we have a TTS that could use different languages for a single voice message (for example: instructions in English with local names in German), it could make sense to open a RFE with them.

Originally Posted by rinigus View Post
I haven't filed the issue describing it in Valhalla's repo since I am not sure we can actually make use of this output (yet?). I think I saw somewhere mimic/flite issue regarding reading multi-language text, but it wasn't resolved at that time.
Espeak can definitely do that, for example:
Code:
espeak -s 120 -m '<speak xml:lang="en">In 300 meters turn right to <voice name="de">Schloss Sch÷nbrunn</voice> Then continue straight and watch for horse carriages.</speak>'
This says the main message in English with the local name in German and can be easily extended to test other combinations. Would still be good if other TTS engines could do that as well, ideally using the same SSML syntax speak supports. It can do much more than just changing voice, for a more comprehensive example, you can save this to file:

Code:
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/10/synthesis http://www.w3.org/TR/speech-synthesis/synthesis.xsd" xml:lang="en-US">
This is not <break strength='none' /> a pause.
This is a <break strength='x-weak' /> phrase break.
This is a <break strength='weak' /> phrase break.
This is a <break strength='medium' /> sentence break.
This is a <break strength='strong' /> paragraph break.
This is a <break strength='x-strong' /> paragraph break.
This is a <break time='3s' /> three second pause.
This is a <break time='4500ms' /> 4.5 second pause.
This is a <break /> sentence break.
<!- Changing Voices ->
This is the default voice. <voice name="en-sc">This is David.</voice> This is the default again.
<voice name="Callie">Callie here.</voice>"
<!- Adjusting Speech Rate ->
I am now <prosody rate='x-slow'>speaking at half speed.</prosody>
I am now <prosody rate='slow'>speaking at 2/3 speed.</prosody>
I am now <prosody rate='medium'>speaking at normal speed.</prosody>
I am now <prosody rate='fast'>speaking 33% faster.</prosody>
I am now <prosody rate='x-fast'>speaking twice as fast</prosody>
I am now <prosody rate='default'>speaking at normal speed.</prosody>
I am now <prosody rate='.42'>speaking at 42% of normal speed.</prosody>
I am now <prosody rate='2.8'>speaking 2.8 times as fast</prosody>
I am now <prosody rate='-0.3'>speaking 30% more slowly.</prosody>
I am now <prosody rate='+0.3'>speaking 30% faster.</prosody>
</speak>
And then play it with:

Code:
speak -m -f <path to file>
Originally Posted by rinigus View Post
Which brings the question up regarding partitioning: is it modRana/Poor Maps/... who is supposed to split the sentence and later glue it together or TTS? I would expect TTS to do that, but maybe its na´ve.
I'm not sure I understand - TTS just converts text to speach, so as long as the input text is correctly marked up (say with SSML) all should be fine.

Or do you mean a case where the TTS engine does not support changing settings per "session" and you would have to basically stich multiple sound files together to achieve the same end result?
__________________
modRana: a flexible GPS navigation system
Mieru: a flexible manga and comic book reader
Universal Components - a solution for native looking yet component set independent QML appliactions (QtQuick Controls 2 & Silica supported as backends)
 

The Following 7 Users Say Thank You to MartinK For This Useful Post:
Posts: 1,423 | Thanked: 6,620 times | Joined on Apr 2010 @ Czech Republic
#1993
BTW, I've opened a tracking issue for multilingual turn by turn directions, including available routing engine and TTS languages (as far as I could find - corrections welcome!).

First step should likely be to actually make it possible to set language for the router and for the TTS engine.

That can be later extended by using data from the router to set the correct language for local names (once available).

Actually, just a country code would be enough if no language code is available for the given local name. There is a project called langtable that makes it possible to map languages to country codes (and much more!) with reasonable ammount of certainty.

There would still of course be mistakes but it should IMHO generally handle names without explicit language code quite well.
__________________
modRana: a flexible GPS navigation system
Mieru: a flexible manga and comic book reader
Universal Components - a solution for native looking yet component set independent QML appliactions (QtQuick Controls 2 & Silica supported as backends)
 

The Following 7 Users Say Thank You to MartinK For This Useful Post:
Posts: 414 | Thanked: 1,851 times | Joined on Aug 2016 @ Estonia
#1994
mimic (and most probably flite) does support SSML, at least some parts of it. I was using it to provide pronunciation for some words used in English Pirate instructions by Valhalla.

While supporting SSML, it becomes a bit more difficult to switch the language in the voice engine that has multiple voices for the same language. I guess, that has to be somehow resolved on TTS side. If done, then we can, indeed, give the full phrase with different languages to TTS engine.

As for country->lang matching, there is no need. OSM data gives the names in different languages, not by country code.

In general, I think we do need a decent TTS, whether open-sourced or not. In some parts of the code, you can get around by pre-recording, but that cannot be done for all applications.
 

The Following 2 Users Say Thank You to rinigus For This Useful Post:
Reply

Tags
bada rox, martin_rocks, modrana, navigation, openstreetmap, the best, wehasgps

Thread Tools

 
Forum Jump


All times are GMT. The time now is 11:12.