Version 1.0 - Released 2002-06-30
Even if you normally never read documentation, please scan through this document and read the red sections.
EditVoicePack is a utility designed to update the available words used by the ATC in Flight Simulator 2002 by combining existing words. It operates completely standalone and does not rely on the Microsoft SDK or the existing decompilers for the ATC voices.
EditVoicepack is based on the .Net framework - so this must be installed before EditVoicepack can run. You can find the .Net framework on the "Windows Updates" page available from the start menu. It is a big download, but you should notice that you will require this to run any programs developed with Microsoft's latest development tools, including the newest version of Visual Basic. At the time of release, you can also find the .Net framework here, but it may not be available at this location any longer when you read this.
EditVoicepack does not require any installation by itself, simply place it in a directory of you choice and run it. Please see the Windows documentation if you have any doubt about how this is done (you can probably get away with simply double clicking EditVoicepack.exe directly from the place you launched this document as well).
While I expect EditVoicepack to work on any computer supporting .Net, I have only tested it on Windows XP.
This section contain a step for step guide for users who are not interested in finding out how EditVoicepack can be used to create new voices, but simply want to use the supplied samples.
If you can't make the sounds work, you will have to read the rest of this guide in order to find out where the problem is.
This section contains useful information for anyone using EditVoicepack. While some of the information might be very trivial to you, please read through it anyway, as there are a couple of operations available in the user interface you might not easily find due to the immature state of the user interface (at least you should read the last paragraph of the Sound Definition area section).
EditVoicepack will modify a file in the SOUND subdirectory of your Flight Simulator 2002 installation. The file is named usenglishbig.gvp and contains all spoken language used by the ATC, as well as the text displayed in the ATC window. In case you did not install all Flight Simulator files, the file might be called usenglishsmall.gvp - notice that EditVersionpack has currently not been tested with this smaller file, but it should work - try at your own risk. Localized versions of Flight Simulator will have different file names - while only tested on a German version, EditVoicepack is designed to recognize the files in any language.
You can make a backup of the files, but EditVoicepack is fairly good at restoring its changes (all data besides the first 100 bytes of the file is added to the existing file, and the 100 bytes can easily be reset by EditVoicepack. If EditVoicepack fails to restore the file, you can find it on your Flight Simulator 2002 CD number one inside the "10Voices.cab" (or "3Voices.cab" if you use the small voice set) file. If Windows can't open the cab file (I believe all current versions of Windows can, but can't remember for sure with Windows 98) the file can be opened with for example WinZip. If you make a backup of your existing voicepack, please make sure it is not stored in the "SOUND" directory, as Flight Simulator will search through the directory and load any voice pack it finds.
EditVoicePack uses the familiar "Explorer look". On the left you have a tree structure, and on the right you have the details for the selected node in the tree. The tree contains three root nodes: Aircrafts, Airlines, and Airports. Aircrafts and Airports contains additional nodes once you expand them as described below. Please notice that a very basic understanding of aircraft configuration under Flight Simulator 2002 is required. If you do not know how to modify an "aircraft.cfg" file, please refer to the Microsoft Aircraft Container SDK - you will find it on http://zone.msn.com/flightsim.
If a node type is not mentioned below, it simply contains other nodes that will be mentioned - I trust you to be able to expand the node and find the relevant items yourself. You can right click any item you have created under the mentioned notes to delete or export it (see the description of Import in the section describing the menu below).
The aircraft manufactures (if you read the Microsoft SDK, these are the sounds with the prefix "AC_NAME" on the identifier) sounds are used by ATC whenever your aircraft is not referred to by airline (for example Cessna OY-BKW instead of Scandinavian 867). It is also used in a few other situations. Right click the Aircraft Manufactures node and select Create to add a new item in the list. The ID text (which will be described in detail below) must match the atc_type entry in the aircraft.cfg file for ATC to use it.
The aircraft models (if you read the Microsoft SDK, these are the sounds with the prefix "AC_type" on the identifier) sounds are used by ATC whenever your aircraft is described to other pilots - for example in case of traffic alerts.. It is also used in a few other situations. Right click the Aircraft Models node and select Create to add a new item in the list. The ID text (which will be described in detail below) must match the atc_model entry in the aircraft.cfg file for ATC to use it.
The airline names are used by ATC to identify almost all aircrafts in regular scheduled flight. The airline name is followed by the flight number (for example Scandinavian 876 or Speed Bird 654 - Speed Bird is the callsign for British Airways). Right click the Airlines node and select Create to add a new item in the list. The ID text (which will be described in detail below) must match the atc_airline entry in the aircraft.cfg file for ATC to use it.
The airport agent names are used in communication between the "agent" (for example the tower controller) and the pilot. You can not add new agent names - if you try, they will most likely be ignored, but should not give any problems. You can however change or add variations to an existing agent (see details on adding versus modifying below). Right click the node and select Create to add a new item in the list. The ID Text must match the identifier of an existing agent but should not contain the AGENT_NAME prefix.
The airport name based on the ICAO code is for example used when you request clearance for IFR flights. You can add any airport known by Windows 2002. Right click the node and select Create to add a new item in the list. The ID Text must match the ICAO code of the airport - you can find this code in the dialog where you select airports in Flight Simulator 2002. The ICAO airport node is very useful if you have used AFCAD to create overlay airports.
When you have created a new item in the tree, or select one you created earlier, the right side of the EditVoicepack user interface will switch to a mode where you can define the item. The interface is the same no matter what item you are working on (an airline, an aircraft manufacturer, etc). In the top, you will find a few settings shared between all the different voices.
Please read the description for the different nodes to see what you should write in the ID text field. The text in the ID text field will be combined with a keyword for each type (Airline, Airport Name, etc) to form a unique ID used by Flight Simulator to recognize the phrase. Please read though the following Force Variation section for further details.
Flight Simulator 2002 supports several words defined for the same identifier (this is called variations). It then selects a variation randomly whenever the word is needed. If you leave Force Variation unchecked, EditVoicepack will automatically store the item as a new variation if the ID text matches an existing id. If you need to overwrite an existing entry (for example to correct some of the build in mistakes in the shipping files from Microsoft) you must specify the variation to use by setting the checkmark and chose the variation index (often 0). If the specified variation isn't present, EditVoicepack will behave as if Force Variation was unchecked. You can see the variation index of existing words in the Sound Selection list mentioned below.
This field can contain any relevant information - for example can it be useful to have the airline name if an airlines callsign does not match the name of the airline.
In case you wish to be credited for any word definitions you create, you can out your name here. You can also include email address or other relevant information if you want.
You find the voice selection list on the left side in the Voices frame. When you define a new word, you should include a definition for each of the voices. You can rghtclick a voice to copy the definition from any of the other voices, but you should still adjust the word for the specific voice manually, as the source words are not all spoken with the same rhythm.
All the way to the right you find the sound selection list. You use it to choose the different source words you want to build your new word from. Each time you click an item in the list, it will play the sound associated with it with the voice currently selected in the voice selection list. Above the list you find a filter definition. If you enter a text in this field and press enter (or click the Apply Filter button) only sounds where the phrase (the phrase is the text displayed in the ATC window in flight simulator when the sound is being played) match the filter. Please notice that the filter is defined using regular expressions. This allow you to search for words beginning with a specific text by for example entering ^air, or to find words ending with air, type air$. You can also place similar sounding letters in brackets, seperated with "|" to match any of them, for example you can try ^(k|c)(i|e)m. Please refer to a regular expression tutorial for full details. If you filter is an invalid regular expression (don't worry, normal search strings with alpha numeric characters works as you are used to) the filter will be ignored. Please notice the right column in the sound selection list. It contains the full ID of the text, as well as the variation number in brackets - this can be useful if you want to override an existing word. The first word in the ID should not be entered in the ID text field when you want to override an existing word. When you have found the word you want to use, select it and press the Add Selected Sound button.
In the center of the Voices frame you will find the controls you use to define the word for a specific voice. At the top, you will find a field where you can enter the phrase displayed in the ATC window of Flight Simulator when the word is used. Notice that you will often want the same phrase for all voices, but it is not required. Below the phrase field you will find two buttons - one that will play you defined word once, and one that will repeat until the button is pressed again, or another sound is played somewhere in EditVoicepack. Notice that these two buttons will be inactive if you have not yet added a sound from the sound selection list as described above.
When you have added one or more sounds, you will have a small control for each where you can define which part is played. Change the selection by right clicking it and setting a new start or end point of the selection, or drag the selection edge with your mouse. Under each wave file edit control you will find small buttons allowing you to play the selected sound once or repeatedly, just as you could for the entire sound. To the right you will find buttons you can use to zoom in and out. If you right click any of these buttons, or the scrollbar, you can select to remove the sound again, or move it up or down if possible.
The file menu offers the following options:
Opens a new file with word definitions. Any existing word definitions will be deleted - so save before you load new files.
Imports a file with word definitions without deleting the existing definitions. If you import definitions for words you already have, you will end up with several variants for the word, even if they are completely identical.
Saves the word definitions as expected.
Saves the word definitions under a new name as expected.
Writes the defined words to the Flight Simulator voice file. Any previously defined words not included any more, will be removed. If you want to include words from different files, use the Import functionality first.
Restores the voicepack to include the standard words only.
This option will show you a list of words used by your installed aircrafts, but not available with the current voicepack modification applied. Please be aware that this can very likely be a problem with the aircraft files and shoukd be corrected instead of adding wrong entries to the ATC voices.
While ATC can use any new phrases as soon as you have updated the voicepack, you will not be able to select them in the callsign dropdown box when you select a plane. The list of callsigns displayed is controlled by a file called Airlines.cfg in your Aircraft directory. The Update "Airlines.cfg" will update the file with all airlines defined in the original voicepack, as well as any additional airlines currently loaded into EditVoicepack.
If you use EditVoicepack, it is not recommended to use the existing voice pack decompilers and the Microsoft SDK to change the file manually - at least not if you plan to share word definitions with other people who might not have the same modifications. If you do, your should be careful only adding sounds to the voice pack, never changing the existing words as they might be used as source for a new word in EditVoicepack. If you have additional voicepacks in your SOUND directory, please make sure the filename does not end with "small.gvp" or "big.gvp", as EditVoicepack might choose the wrong file.
The package can be freely distributed on any media (online or CD etc) as long as the package is not modified in any way, and no payment is directly required for the file. Indirect payment (for example a fee for fast access to a file library, or payment for a magazine containing the program on a cover CD is acceptable). If you have any questions, please contact me on larsm@xs4all.nl.
This software is provided "as is", and usage of it is the responsibility of the user - I accept no responsibility for any damage this program might course.
If you have constructive criticism or any other form of feedback, please send me an email on larsm@xs4all.nl. Please notice any email mentioning missing or low quality callsings, will be ignored unless the contain a file with the callsign as it should be - Most of the callsigns shipped with this package can easily be improved - it just takes more time than the author had available.
Besides addressing the known issues mentioned below, it is the plan to change the included samples to become a base set that can be updated independently of your own defined callsigns. The list would initialy be maintened by me or a group of people. You are welcome to send exported voices (please, use the export, do not send a file with a number of words) to me if you would like me to include them in an upcoming new version.
On the longer term, I would like to set up an more automated system, if I can solve the usual problem of server bandwidth (I don't mind giving my programs away for free, but is slightly reluctant to be forced to pay for giving it away).
This initial release contains a number of known issues; however the utility is fully functional, so I found it better to release it as it is now, instead of waiting a month to fix the issues.
In case you don't know, Project AI has a freely available collection of framerate friendly aircrafts and corresponding real-world flight plans. Unfortunately the current release (2002-06-29) contains a number of problems with the ATC section of these aircrafts, and you should correct your files if needed. I hope Project AI will address this in future releases so it won't be necessary to do this manually. You are required to make changes to the "aircraft.cfg" files for the Project AI planes. If you are not sure how this is done, try to find some help on google. Below you will find a list of some of the problems with the current Project AI files, as well as a short description of how to fix the problems. Please notice that the "View Missing" feature in EditVoicepack can help you identify most of the files.