Calling up for a code developer for voice messages tool
-
Hello guys.
I thought just to give a focus on this a bit forgotten old tool.
In general the successor is called TLKTOOL Created by Lightning in the past which is a command line tool that does the job.
What it does in short is unpack a huge file and creates the separate voice files. U create - replace the ones u want and then re use TLKTOOL to compact the files back so to be usable from Falcon.
It takes long to do so and a bit hard to locate which file is which and also use a media player to play the file to be sure etc.It would be nice if an app could edit this huge file and replace just the file u want and not extract and repack the whole thing.
Also having the text that the voice files are for as reference in a nice UI would be just great.Further more it would be nice if it could handle 2+ languages for localization of theaters and maybe a TTS engine that could create from text the spoken - voice files.
I think I don’t ask much… :lol:
So the tool is called tlktool
and the file with the sounds is the falcon.tlk
f4Talk95v1-0-0.csv which contains the index and the text that is displayed when those voice messages are played
all found in Sounds folder.From the readme of tlktool:
–-------------------------------------------
DEFINITIONS:
FRAG: A frag is a list of one-channel audio files (each identified by their TLKIDs), each representing a different
speaker or voice saying the same word or phrase. This allows the AI to have different speaking voices.
There can be up to 14 voices (numbered 0 - 13) in a single frag.EVAL: A set of related, numbered frags from which the AI communications will automatically select the appropriate “frag” to play at run-time.
For example, one of the built-in evals is a list of runway numbers from zero to 360.COMM: An ordered list of frags and/or evals that defines a complete phrase, sentence, or message that can be spoken by the AI comms.
FILES:
FRAGFILE.BIN
- a binary file containing the list of “frag” definitions
EVALFILE.BIN
- a binary file containing the list of “eval” definitions
COMMFILE.BIN
- a binary file containing the list of “comm” definitions
FALCON.TLK
- a binary file containing a set of individually-numbered, compressed audio files that are referenced by the frag definitions and the eval definitions
TLKTOOL
TLKTOOL is a command-line utility which allows for editing Falcon’s FRAGFILE.BIN, EVALFILE.BIN, COMMFILE.BIN, and FALCON.TLK file.
TLKTOOL can convert Falcon’s FRAGFILE.BIN file, EVALFILE.BIN file, and COMMFILE.BIN file to plaintext human-readable human-editable XML files, and can
also convert those XML files back to the binary format that Falcon expects. This allows for editing the AI comms definitions using nothing more than
an ordinary text editor like Notepad.TLKTOOL can also export all of the audio files in Falcon’s FALCON.TLK file to a set of ordinary .WAV audio files, which can then be edited or replaced in bulk.
TLKTOOL can build up a fresh new FALCON.TLK file from a set of .WAV files (or from a set of compressed .WAV equivalents such as a set of .LH files or .SPX files).
It further supports converting .WAV files to and from various proprietary and/or open compression formats including Lernout & Hauspie StreamTalk 8.0 (used by legacy Falcon versions)
as well as the new, open-source Speex compression format used in later BMS flavors of Falcon.You can also use TLKTOOL make single-file edits to specific audio files stored within the FALCON.TLK by importing replacement audio files into the FALCON.TLK file.
TLKTOOL supports the following actions:
.TLK file exporting & importing:
TLK2WAV: exports a set of .WAV files from the .TLK file (requires specifying the underlying compression format used inside the .TLK file)
TLK2LH: exports a set of LH-compressed audio files from the .TLK file (assuming the .TLK file contains .LH-format audio files)
TLK2SPX: exports SPX-compressed audio files from the .TLK file (assuming the .TLK file contains .SPX-format audio files)
WAV2TLK: imports .WAV files into a .TLK file (or builds a new .TLK file from a set of .WAV files) (requires specifying the compression format used inside the .TLK file)
LH2TLK: imports LH-compressed audio files into a LH-format .TLK file (or builds a new .TLK file from a set of .LH files)
SPX2TLK: imports SPX-compressed audio files into a SPX-format .TLK file (or builds a new .TLK file from a set of .SPX files)COMMFILE.BIN, FRAGFILE.BIN, and EVALFILE.BIN exporting:
COMM2XML: exports the contents of a commFile.bin file to an XML file
FRAG2XML: exports the contents of a fragFile.bin file to an XML file
EVAL2XML: exports the contents of a evalFile.bin file to an XML file
XML2COMM: builds a commFile.bin file from an XML file
XML2FRAG: builds a fragFile.bin file from an XML file
XML2EVAL: builds a evalFile.bin file from an XML file.WAV file compression, decompression, and format conversion (conversion of .WAV files to and from .LH or .SPX compressed files)
WAV2SPX: converts a .WAV file (or a folder of .WAV files) to .SPX file(s)
WAV2LH: converts a .WAV file (or a folder of .WAV files) to .LH file(s)
SPX2WAV: converts a .SPX file (or a folder of .SPX files) to .WAV file(s)
LH2WAV: converts a .LH file (or a folder of .LH files) to .WAV file(s)
LH2SPX converts a .LH file (or a folder of .LH files) to .SPX file(s)
SPX2LH converts a .SPX file (or a folder of .SPX files) to .LH file(s)Lightnings repository is here:
https://svn2.assembla.com/svn/lightningstools/releases/End%20User%20Applications/
https://svn2.assembla.com/svn/lightningstools/trunk/F4Utils/Speech/
https://svn2.assembla.com/svn/lightningstools/trunk/TlkTool/I believe many talented coders are here in the community willing to provide their share on this wonderfull SIM.
thank you in advance and hope a nice result will come out.
-
2 years later… Had some time to work on this project.
It basically associates the CSV tables with the XML data to link the exact file name to the voice/ID.
You can either select a new .WAV source or use a Text To Speech voice (using whatever is installed to Windows, default shown).
Can also edit the text string if using TTS to sound more like the correct word, ie. Rescap vs Rezcap (latter sounds correct).
TO-DO, record directly to the voice clip via soundcard input, add parameters for TTS (speed, intonation).
Once generated it re-packs to TLK via TlkTool.exe
Early working WIP… Interested?
Also have an auto-generated Text To Speech which is stand-alone right now that runs through all IDs from a particular voice, generating all automatically. (takes about 3-4 minutes)
Will eventually integrate it into the TlkTool GUI tool…
-
Very interested in this talktool gui !
I have a hard time following my own instructions to use the batch file version. And these new features would be great!
I can’t watch the videos yet, but just your post has me excited.
Keep us posted please. And thank you very much. -
-
wow looks very good, straight forward and with cherries on top…
Thank you very much.
I’m sure all theater teams are very interested in this tool.
Multilanguage voices can be done more easily, fix or change voices.
The TTS is great and there are some very good TTS voices.
now a translate from to and the recording you mention will be just perfect…What u thought I wouldn’t ask for more???
:lol: kidding it’s super… but u know me… -
The application is almost ready for public use, want to add a voice record / input feature where you can use it to go through each voice and overdub using a mic for those who don’t fancy TTS.
At almost 2800 clips (approx.) per voice it’s a lot of clips to record via a microphone, but the program takes care of trimming silence and normalizing (dynamic compression also available) before rendering to WAV.
Added a string replace feature for all voices where you want to replace a specific phrase common to more than one voice, avoiding the need to go through each finding every instance. Also added dynamics and normalization post effects, and the gain can be positively biased to create natural distortion.
Also had the chance to get my hands on some higher end TTS voices, and the results are quite good for the purpose. Completely replaced all legacy voices and it sounds consistent. As they are commercial voices they won’t be included with the application, but it will find and use any voices installed to windows automatically.
Should have something by the end of the week for initial testing…
On a side note, does anyone know or understand the relation between the assigned voice numbers in Misson Commander (.cam file) and the actual voice number used?
-
Thanks for sharing this tool with the community, Khronik, it’s already looking (and more importantly sounding :D) very good!
All the best, Uwe
-
Just need to add the external audio record functionality (via microphone / line input) with a “trainer” that can run through the strings and auto-capture and move through the IDs… Should be good to go after this is done.
On a side note, not sure how effective translation is, but it’s using Google’s translate API so not sure if there’s better. Still faster than what’s available as methods though.
-
wow looks very impressive and fast.
You can auto translate all commands at once, or one by one?The voices you sample in the vid sound very realistic…
-
Haven’t made an option for translate all but it’s a simple addition. Most translated text needs vetting though
-
Soon available Khronik?
-
Yes, just wanted to clean it up a little internally and add a few last features, maybe a day or two
-
Ok thanks for the work Khronik.:thumb:
-
Khronik thanks so much for TLKTool GUI. It is wonder. Everything all in one .
Do you add Turkish language into translate menu if avaliable.
Thanks Gizemkar. -
I like turtles.
-
Sorry for the wait, been busy as of late but will update shortly…
@ Ara…
http://metro.co.uk/2016/07/24/this-is-what-i-like-turtles-boy-looks-like-now-6026005/ -
Hi all!
First of all, this is an awesome tool. Thank you for that!
I have a question in terms of enhancing lines in F4Talk95v1-0-0.csv/fragfile.xml/evalFile.xml:
Right now there 3287 lines possible in F4Talk95v1-0-0.csv.
When adding more lines (I need 400 more) in F4Talk95v1-0-0.csv and set path in fragfile.xml/evalFile.xml, TlkTool data ends still at line 3287.Which file I have to modify to establish more lines to work with? Fragfile.bin?
If so, how can I do this?Thank you!
Micro -
Hi all!
First of all, this is an awesome too. Thank you for that!
I have a question in terms of enhancing lines in F4Talk95v1-0-0.csv/fragfile.xml/evalFile.xml:
Right now there 3287 lines possible in F4Talk95v1-0-0.csv.
When adding more lines (I need 400 more) in F4Talk95v1-0-0.csv and set path in fragfile.xml/evalFile.xml, TlkTool data ends still at line 3287.Which file I have to modify to establish more lines to work with? Fragfile.bin?
If so, how can I do this?Thank you!
Microforget bin, you can delete them
ther is no limitation of line.
i suppose you have badly edited your xml files if TLKTOOL can’t corectly use them
-
Copy that thank you!
One note: TlkTool needs the bin to work and create a session.
I’m sure this has no effect cause data comes from fragfile.xml -
Copy that thank you!
One note: TlkTool needs the bin to work and create a session.
I’m sure this has no effect cause data comes from fragfile.xmlI use Tlktool everyday without the bin. I use of course the command line version