Home PageFacebookRSS News Feed
PocketGPS
Web
SatNav,GPS,Navigation
Pocket GPS World - SatNavs | GPS | Speed Cameras: Forums

Pocket GPS World :: View topic - How to Modify Garmin VPM TTS Voice file
 Forum FAQForum FAQ   SearchSearch   UsergroupsUsergroups   ProfileProfile   Log in for private messagesLog in for private messages   Log inLog in 

How to Modify Garmin VPM TTS Voice file
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Pocket GPS World Forum Index -> Garmin Portable Navigation Devices
View previous topic :: View next topic  
Author Message
turboccc
Regular Visitor


Joined: Jul 01, 2008
Posts: 63

PostPosted: Tue Jul 01, 2008 4:47 pm    Post subject: How to Modify Garmin VPM TTS Voice file Reply with quote

This is my first post here! So, hello to all. You have a very informative site. I hope to visite often.

Now, back to topic...

I was deeply impressed by Ash10's tool to split the VPM file for non-TTS voice file. I was eager to try it until I realized that Julie is a bitch Smile and only talks TTS. Yeah, Francais_Canadien_Julie.vpm is a TTS voice file.

I pulled my sleeves and hacked into the file a bit more. This is what I found so far.

Francais_Canadien_Julie.VPM is an IMG (image) file and it has a different format than the non-TTS VPM files. I used GPSDaemon to split the file as a normal IMG map file. It created 22 files out of the IMG. It was not complete for Julie because 2 files were not created, but they were for Francais_Canadian_Felix.vpm. The 2 missing files were a .DAT and a .DLL. Here's below the 24 files for Felix. I have highlighted the 2 missing files from Julie.

Code:
       840 DICT    .BDC
 1,839,104 DLLIMG.IMG
       665 DLLINFO .TXT
       288 EDCT    .HDR
11,487,368 FELX_DAT.DAT      <----
       631 FELX_DAT.HDR
 2,103,000 FELX_USL.DAT      <----
       606 FELX_USL.HDR
         3 IMGEND  .TST
       758 LOGGING .HDR
       309 RSCM_SVC.HDR
       444 RSG2_FRC.HDR
       250 RSSOLO  .HDR
       367 RSS_FRC .HDR
       342 RSS_TSO .HDR
       299 RSTTSENG.HDR
       305 RS_DCTEG.HDR
       439 RS_SYNTH.HDR
       514 STDP_FRC.HDR
       342 TSO     .HDR
       552 VFR_FELX.HDR
       302 XCODER  .HDR
       394 XLIT_FRC.HDR
       361 XLT_1252.HDR



First, let's say that the TTS engine used by Garmin is from ScanSoft (now called Nuance). Their trademark is in all the files. I bet the phoneme file for TTS is similar to the one I have on Dragonfly NaturallySpeaking9 from ScanSoft. I did not dig too much in there for now.

One important file was DLLIMG.IMG. yes, it is an IMG inside the first VPM image. GPSDaemon was not able to unpack it, but I was able to do it manually with my HEX editor and the info I found here: http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/g/ga/garmin-img/imgformat.pdf

There are 2 files inside and the most important and biggest one is DLLIMG.BIN. This files contains all the ASCII words that will be spoken by your Garmin. The other file was DLLING.SIG (65 bytes only).

For those who wants to modify the spoken words, you can go here: http://www.poiverifier.com/ without having to split the files. However, I found these 2 facts that were not mentioned on PoiVerifier site:

1- The strings can be shorter than the original strings. For example, you can replace "recalculating",00 by "lost again!",00,"g",00. You can cut any sentence by terminating the string with 00. You don't even have to clean the rest with spaces or all 00s. I have not tried, but I guess spaces will create delays between words.

2- The pointer to the start of each string is fixed. I tried to modify two consecutive strings to shorter one and increase the other. For example, I changed these:
"at the next exit", 00, "turn right",00
by
"next exit", 00, "turn to the right",00

"at the next exit", was replaced successfully by "next exit", but "turn to the right" was spoken as " the right".

Conclusion, you can't change much these strings to achieve something useful.

I still need to find the table of pointers to each of the strings. It exists somewhere. I am sure it is in that file. This is why I splitted the VPM file to get DLLIMG.BIN. I know the absolute address of each string and their relative position from the start of the table. I just need more time to search the code and find where it is.

Once I get the table, it will be easier to change the pointer table and point anywhere else. We could change any of the strings to something else. Increasing the file size of IMGDLL.BIN is not a problem because it would not be too hard to recreate the IMG files afterward (not that simple, but feasible!). Then we put back all the other files and recreate the final image and rename to a VPM.

Request:

If you have an IMG splitter that works well for these VPM files (non-IMG map files), please PM me. If you have an IMG merger that works with files other than IMG map file, let me know too.

Turbo
Back to top
View user's profile Send private message
turboccc
Regular Visitor


Joined: Jul 01, 2008
Posts: 63

PostPosted: Fri Jul 04, 2008 1:19 am    Post subject: Reply with quote

Some news... I seem to have found the look-up table used by Garmin to point to the start of each word/expression. I changed some of the pointers to different locations in the VPM file. I finally used an area filled with C++ debug messages not used unless the unit is in some kind of programmer debug mode. I filled that area with new messages and it works! No need to unpack the IMG files.

I need to wrap up a few things, but the hardest part is done and it is a success. I will post the details soon.

TurboCCC
Back to top
View user's profile Send private message
turboccc
Regular Visitor


Joined: Jul 01, 2008
Posts: 63

PostPosted: Mon Jul 07, 2008 2:21 am    Post subject: Reply with quote

There ya go! You can try this tool. It is very basic, but it is a start. I tested it on Julie, Emily, Virginia & Jill. Please post results.

Edit: link to the final version is:
http://turboccc.wikispaces.com


Last edited by turboccc on Sun Aug 10, 2008 1:38 am; edited 2 times in total
Back to top
View user's profile Send private message
MaFt
Pocket GPS Staff
Pocket GPS Staff


Joined: Aug 31, 2005
Posts: 15258
Location: Bradford, West Yorkshire

PostPosted: Mon Jul 07, 2008 12:47 pm    Post subject: Reply with quote

blimey, you've been busy!

just need my garmin with TTS back now..!

MaFt
Back to top
View user's profile Send private message Visit poster's website
PaulB2005
Pocket GPS Moderator
Pocket GPS Moderator


Joined: Jan 04, 2006
Posts: 9323
Location: Durham, UK

PostPosted: Mon Jul 07, 2008 2:27 pm    Post subject: Reply with quote

What requirements does the program have?

---------------------------
TTSVoiceEditor.exe - Unable To Locate Component
---------------------------
This application has failed to start because libmmfile.dll was not found. Re-installing the application may fix this problem.
---------------------------
OK
---------------------------
Back to top
View user's profile Send private message
MaFt
Pocket GPS Staff
Pocket GPS Staff


Joined: Aug 31, 2005
Posts: 15258
Location: Bradford, West Yorkshire

PostPosted: Mon Jul 07, 2008 5:12 pm    Post subject: Reply with quote

is it .NET?

MaFt
Back to top
View user's profile Send private message Visit poster's website
PaulB2005
Pocket GPS Moderator
Pocket GPS Moderator


Joined: Jan 04, 2006
Posts: 9323
Location: Durham, UK

PostPosted: Mon Jul 07, 2008 5:26 pm    Post subject: Reply with quote

Quote:
is it .NET?


I thought i was up to date.... Crying or Very sad

edit: found this

Quote:
libmmfile.dll is a DLL file used by libmmfile created by The MathWorks Inc


Suspect it needs to be supplied with the program.....
Back to top
View user's profile Send private message
turboccc
Regular Visitor


Joined: Jul 01, 2008
Posts: 63

PostPosted: Tue Jul 08, 2008 2:54 am    Post subject: Reply with quote

I apologize. This will only work if you have this library installed: MCRInstaller.exe You can google it.

I will try to design this program with something else like Visual Basic or something. Sorry for the delay.
Back to top
View user's profile Send private message
turboccc
Regular Visitor


Joined: Jul 01, 2008
Posts: 63

PostPosted: Sat Jul 12, 2008 1:15 am    Post subject: Reply with quote

At last! It is done. This new version is in Visual Basic 6. There should not be any missing files. The only dll used is to open/save files is comdlg32.dll. I think it should be on all computers.


Let me know how it goes...

TurboCCC

Edit: link removed by author. See further in thread for latest version.


Last edited by turboccc on Sun Jul 13, 2008 12:56 pm; edited 4 times in total
Back to top
View user's profile Send private message
PaulB2005
Pocket GPS Moderator
Pocket GPS Moderator


Joined: Jan 04, 2006
Posts: 9323
Location: Durham, UK

PostPosted: Sat Jul 12, 2008 7:58 am    Post subject: Reply with quote

Tried to open English_British_Daniel.vpm and got

---------------------------
TTSVoiceEditor
---------------------------
Run-time error '6':

Overflow
---------------------------
OK
---------------------------



Same with English_British_Emily.vpm
Back to top
View user's profile Send private message
turboccc
Regular Visitor


Joined: Jul 01, 2008
Posts: 63

PostPosted: Sat Jul 12, 2008 2:35 pm    Post subject: Reply with quote

Sorry PaulB2005. I corrected the issue. For some reason, VB had issues converting byte to long.

I have updated the link in previous post to version 2.01.
Back to top
View user's profile Send private message
turboccc
Regular Visitor


Joined: Jul 01, 2008
Posts: 63

PostPosted: Sun Jul 13, 2008 12:39 am    Post subject: Reply with quote

It has been reported to me that some modified strings got cross linked with other strings. I made a small change and I could not reproduce the problem. Let me know if it happens again.

I updated the previous link to version 2.02
Back to top
View user's profile Send private message
turboccc
Regular Visitor


Joined: Jul 01, 2008
Posts: 63

PostPosted: Sun Jul 13, 2008 12:55 pm    Post subject: Reply with quote

Here's version 2.10. You can now change voice rate and voice volume. Beware when chnaging voice volume. It has been reported in soupon's blog that loud volume could damage the GPS speaker.

Edit: link to the final version is:
http://turboccc.wikispaces.com


Last edited by turboccc on Sun Aug 10, 2008 1:38 am; edited 1 time in total
Back to top
View user's profile Send private message
Feek
Lifetime Member


Joined: Mar 04, 2008
Posts: 173
Location: Englandshire.

PostPosted: Sun Jul 13, 2008 12:59 pm    Post subject: Reply with quote

Just getting my head around what this does, we can change what the TTS voices say? So instead of 'recalculating', I could change the female voice to say 'hey big boy, you got it wrong' Wink
Back to top
View user's profile Send private message
turboccc
Regular Visitor


Joined: Jul 01, 2008
Posts: 63

PostPosted: Sun Jul 13, 2008 3:34 pm    Post subject: Reply with quote

Feek wrote:
Just getting my head around what this does, we can change what the TTS voices say? So instead of 'recalculating', I could change the female voice to say 'hey big boy, you got it wrong' Wink

Exactly what I did! Smile

Use this new version instead:

Version 2.20: With this version, there is a Find/Find Next function to help you find rapidly the text you want to change. To edit text, you need to double click instead of clicking once.

Edit: link removed. See link further in thread for latest version.

TurboCCC


Last edited by turboccc on Sun Aug 10, 2008 1:39 am; edited 1 time in total
Back to top
View user's profile Send private message







Posted: Today    Post subject: Pocket GPS Advertising

Back to top
Display posts from previous:   
Post new topic   Reply to topic    Pocket GPS World Forum Index -> Garmin Portable Navigation Devices All times are GMT + 1 Hour
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Make a Donation



CamerAlert Database

Click here for the PocketGPSWorld.com Speed Camera Database

Download Speed Camera Database
22.105 (30 Oct 24)



WORLDWIDE SPEED CAMERA SPOTTERS WANTED!

Click here to submit camera positions to the PocketGPSWorld.com Speed Camera Database


12mth Subscriber memberships awarded every week for verified new camera reports!

Submit Speed Camera Locations Now


CamerAlert Apps



iOS QR Code






Android QR Code







© Terms & Privacy


GPS Shopping