by chas521 » Thu Dec 13, 2012 12:49 pm
Found elsewhere. With thanks to an unknown member.
iGo 8/Amigo voice commands.csv format
Having recently acquired a sat nav I have been experimenting with iGo 8 and Amigo. Both have their particular charms, iGo 8 is highly configurable while Amigo has a clearer display but few customisation options.
One thing that bothers me about both of them is the way they announce every turning three times. Once at 800m (“after 800m prepare to turn left”), then again at 300m (“after 300m prepare to turn left”) and again at 100m (“after 100m turn left”). That seems a bit excessive to me – the 800m and 100m announcements would be fine. The solution is to take the Voice_eng-uk-f3.zip and modify it.
Inside the zip file there is commands.csv, which dictates how iGo speaks to you. I couldn’t find much info on the format, just some outdated stuff for iGo 2006 scattered over some forum posts, so I decided to try and figure it out myself. Luckily, it was not too hard!
iGo uses subroutines for building up the speech. For example, near the top you have:
"code","distance","vocal/iconid","text"
"slight_left","call bear BEAR_LEFT-M BEAR_LEFT-E",3,
"slight_right","call bear BEAR_RIGHT-M BEAR_RIGHT-E",4,
"straight","call c_straight CONTINUE_STRAIGHT-M CONTINUE_STRAIGHT-E",0,
"exit_left","call exit EXIT_LEFT-M EXIT_LEFT-E",24,
Then later on you have all the templates for “bear”, “c_straight”, “exit” etc. The two uppercase words after the “call ” bit are the two voice files, one for when the command is the last one and one for when there is more to follow (her voice goes up a bit so it sounds natural).
Then later on we have:
"template c_straight",,,"01_Continue straight situations"
,"100[then]*03_c_straight","THEN %2","01-5 Then continue straight."
,"300[then3]","*03_c_straight","01-5 Then continue straight."
First number is the distance. The item in square brackets is the conditions which iGo uses to pick the right thing to say. For example, [then] is for situations where iGo says “do something and THEN CONTINUE STRAIGHT”. These are built in to iGo. The first one is “then” and the second one is “then3″.
After that comes the optional ID. For the 100 line, the ID is “*03_c_straight”. The 300 line does not have an ID.
The third item is what to actually say. The words in capitals are the names of the .ogg sound files to say. The %2 refers to a parameter passed by iGo, which in this case is presumably “CONTINUE_STRAIGHT” (i.e. the name of the .ogg file, less the -e/-m which iGo adds automatically).
Now looking at the 300 line, we can see that the third item is “*03_c_straight”. That refers to the ID of the 100 line, in other words it’s just saying “use the line with ID ‘*03_c_straight’ for ’300[then3]‘ as well”.
The fourth line is just a comment, it has no effect on what is spoken.
,"100[then2,X>1]*06_turn_2","THEN TAKE %X %2","02-47-52 Then take the %X %*. (X>1)"
,"100[then2,!X]*05_turn_2","THEN TURN-SH %2","02-77-81 Then turn %*. (!X)"
,"100[then1,X=1]*07_turn_2","THEN TAKE_THE_NEXT-SH %2","02-65-70 Then take the next %*. (X=1)"
,"100[then1,X>1]","*06_turn_2","02-47-52 Then take the %X %*. (X>1)"
Here is another good example. The first line defines “*06_turn_2″. From the comment we can see that X is the turn number, e.g. the 3rd turn on the left/right. It is used twice, once in the definition (“[then2,X>1]” – i.e. then2 and more than the 1st turn) and again in the speech part where %X produces “the second”/”the third”/”the forth” etc. Finally %2 is “left”/”right”, but from the comments it is also implied that it can be “sharp left”/”sharp right”.
So, it’s quite a complicated system to work with, because everything is referencing other stuff. The good news is you can just remove lines you don’t want, but of course you do have to be careful when removing a line with an ID to either remove all other lines which reference it or to change their references to something else.
My guess is that iGo probably have some software which displays all this stuff in a big tree on screen to make editing it easier. Still, we can do it by hand :)
@camaro69
What you might see in the command.csv file might be somewhat different from what you see here. But you can see how difficult it might be. If you attempt this and get it going the way you like please upload your modified voice for us to check out. Thanks.
There is a simple work-around, just use a non-TTS voice.
If it ain't broke don't fix it!
ALWAYS BACK-UP YOUR FILES/FOLDERS BEFORE MAKING EDITING CHANGES!
Please do NOT post any thanks. Simply press the hand icon with the "thumb up" which is the thank you button.