View previous topic :: View next topic |
Author |
Message |
turboccc Regular Visitor
Joined: Jul 01, 2008 Posts: 63
|
Posted: Tue Jul 01, 2008 4:47 pm Post subject: How to Modify Garmin VPM TTS Voice file |
|
|
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 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 |
|
|
turboccc Regular Visitor
Joined: Jul 01, 2008 Posts: 63
|
Posted: Fri Jul 04, 2008 1:19 am Post subject: |
|
|
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 |
|
|
turboccc Regular Visitor
Joined: Jul 01, 2008 Posts: 63
|
Posted: Mon Jul 07, 2008 2:21 am Post subject: |
|
|
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 |
|
|
MaFt Pocket GPS Staff
Joined: Aug 31, 2005 Posts: 15258 Location: Bradford, West Yorkshire
|
Posted: Mon Jul 07, 2008 12:47 pm Post subject: |
|
|
blimey, you've been busy!
just need my garmin with TTS back now..!
MaFt |
|
Back to top |
|
|
PaulB2005 Pocket GPS Moderator
Joined: Jan 04, 2006 Posts: 9323 Location: Durham, UK
|
Posted: Mon Jul 07, 2008 2:27 pm Post subject: |
|
|
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 |
|
|
MaFt Pocket GPS Staff
Joined: Aug 31, 2005 Posts: 15258 Location: Bradford, West Yorkshire
|
Posted: Mon Jul 07, 2008 5:12 pm Post subject: |
|
|
is it .NET?
MaFt |
|
Back to top |
|
|
PaulB2005 Pocket GPS Moderator
Joined: Jan 04, 2006 Posts: 9323 Location: Durham, UK
|
Posted: Mon Jul 07, 2008 5:26 pm Post subject: |
|
|
I thought i was up to date....
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 |
|
|
turboccc Regular Visitor
Joined: Jul 01, 2008 Posts: 63
|
Posted: Tue Jul 08, 2008 2:54 am Post subject: |
|
|
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 |
|
|
turboccc Regular Visitor
Joined: Jul 01, 2008 Posts: 63
|
Posted: Sat Jul 12, 2008 1:15 am Post subject: |
|
|
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 |
|
|
PaulB2005 Pocket GPS Moderator
Joined: Jan 04, 2006 Posts: 9323 Location: Durham, UK
|
Posted: Sat Jul 12, 2008 7:58 am Post subject: |
|
|
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 |
|
|
turboccc Regular Visitor
Joined: Jul 01, 2008 Posts: 63
|
Posted: Sat Jul 12, 2008 2:35 pm Post subject: |
|
|
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 |
|
|
turboccc Regular Visitor
Joined: Jul 01, 2008 Posts: 63
|
Posted: Sun Jul 13, 2008 12:39 am Post subject: |
|
|
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 |
|
|
turboccc Regular Visitor
Joined: Jul 01, 2008 Posts: 63
|
Posted: Sun Jul 13, 2008 12:55 pm Post subject: |
|
|
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 |
|
|
Feek Lifetime Member
Joined: Mar 04, 2008 Posts: 173 Location: Englandshire.
|
Posted: Sun Jul 13, 2008 12:59 pm Post subject: |
|
|
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' |
|
Back to top |
|
|
turboccc Regular Visitor
Joined: Jul 01, 2008 Posts: 63
|
Posted: Sun Jul 13, 2008 3:34 pm Post subject: |
|
|
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' |
Exactly what I did!
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 |
|
|
|
Posted: Today Post subject: Pocket GPS Advertising |
|
|
We see you’re using an ad-blocker. We’re fine with that and won’t stop you visiting the site.
Have you considered making a donation towards website running costs?. Or you could disable your ad-blocker for this site. We think you’ll find our adverts are not overbearing!
|
|
Back to top |
|
|
|