OK, here's some instructions on how to generate new ATC voices for
FlightGear.  Hopefully this will make some sense to somebody, ask if it's
unclear.

If you want to record the phrases in a local accent or even a different
language go right ahead, I'll add code support for it.  You'll need to
supply a translation if its in a different language though!

Have fun!

Cheers - Dave

-----------------------------------------------

Instructions for Generating FlightGear ATC and AI Voices, Feb/2004, DCL.

First off, I'm most definately NOT any sort of audio expert - its just not
one of my things.  This is simply the scheme I devised to get the ATIS
voices in.  There's undoubtably a lot of scope for improvement, and if
anyone has any ideas for improvement then shout and we'll see if we can
accomodate them.

Currently, FlightGear audio support is limited to 8kHz, 8bit mono, but at
this setting voice recordings are noticably degraded, so I recommend
keeping both the master recordings and the final edited version at a better
quality (22kHz, 16bit, say) and export to 8,8 at the very end, in order
that the better quality master is available in the future when hopefully FG
audio support improves.  Keep hold of the originals for the future - you'll
need to add to them if the phraseology is extended.

A final proviso is that FlightGear's ATC phraseology is not fully (or even
close to!) mature yet - there will undoubtably be more phrases, or changes
to phrases, required in the future.  If you want your recordings to be used
in the future you may need to record some additional phrases at some point.

With all that in mind, it would still be great to have as many voices as
possible now to get the ball rolling, so here goes.

Two files are required for each voice - a wave file containing the actual
sounds, and an index file that basically describes where in the wave file
buffer to find each word or phrase.  The current voices for the ATIS can be
found in $FG_ROOT/data/ATC and are called default.wav and default.vce for
the wave and index file respectively.  Note that one important change will
be made in default.vce - currently it is indexed by byte position into the
sound buffer, but I've decided it would be better to index by time into the
buffer, since that is more robust to changing the recording quality, and in
the future possiby using encoding such as Ogg Vorbis.  Also, the first line
currently contains the number of subsequent lines, but I think that can be
ditched!  

The basic idea is to record all the phraseology needed, which will also
contain much that isn't needed, then cut and paste the required words or
phrases into a new track, which is saved to something like tower1.wav.
Then index the position of everything needed, and save it to something
corresponding like tower1.vce.  Then send it to me
([EMAIL PROTECTED]) so it can be put into FG.

Phrases can be entered and indexed either as phrases, with the words joined
by underscores, or as individual words.  Is is quite permissible to index
one part of the buffer more than once, eg.

Cleared_for_takeoff   t1  t4
Cleared               t1  t2
for                   t2  t3
takeoff               t3  t4
Cleared_for           t1  t3

where t1 - t4 are times into the buffer.

In general, I suspect that the longer the phrases run to, the more likely
the dialogue is to sound natural, but the larger the wav file size will
become.  I guess this is something that will only become clear with
experimentation and experience.

A lot of the phraseology needed takes the form of lists - the phonetic
alphabet, numbers, airport names etc.  However, I find that they tend to
come out more naturally if they are recorded as part of a proper phrase  eg
"Cessna six nine foxtrot cleared for takeoff runway one five winds two
three zero at one five", and repeat a lot of different phrases until you
have everything you want.  The final recording for FlightGear will be much
smaller since the words wanted should be crammed together as much as
possible - listen to default.wav (the ATIS) to see what I mean.

I'm sure that real-life pilots are likely to have some beef with the
suggested phraseology - it's all open to change, and a lot of it isn't
currently used.

At the moment the voices most needed are the tower control and AI GA
planes, particularly AI planes since on a given frequency there will be
several of them per one controller so a variety of voices would sound
better.  The tower phraseology is posted below - I'll try and post the AI
VFR phraseology as soon as possible.  Note that the tower phraseology below
is very VFR operation orientated - it will expand for IFR ops at some point
in the future.

Finally, as set up at the moment, you can't simply test your new voice in
FlightGear.  I'll hack at the code a bit and post some instructions on how
to make it be heard.  It would be nice to have a voice testing mode in
FlightGear, to run with the sim paused and play a selection of phrases from
files under development.  The trouble is, I envisage folk working at higher
quality while editing the files, and exporting an 8kHz, 8bit version at the
end, which is all FG will currently play.  It might be possible to knock up
a simple utility to play phrases from files under development.

Good Luck!

Here is the tower phaseology required:
=====================================

All the phonetic alphabet.
Numbers zero to nine, including both nine and niner.
hundred, thousand (officially pronounced tousand?)
left, right
numbers ten to twelve
Optionally numbers thirteen to thirty-six as well for lazy runway
designation (I've heard 'fifteen' used instead of 'one five' on a recording
before).
O'Clock
The directions of the compass, at least four, probably eight to get them
natural sounding.

A selection of callsigns - including but not limited to:
Cessna, Piper, Seneca, Cherokee, Heavy, Speedbird, Trainer

A selection of airport names relevant to the intended country or region,
plus the Bay Area (default).

knot
knots
mile
miles
feet
meters

good
bad
surface_conditions
water
ice
snow
hail
windshear
turbulence
wake_turbulence
caution_wake_turbulence
the_preceeding_aircraft_is_a
obstruction
obstructions
on_the_runway
the_runway_is_clear_of

This_is
You_are_now_clear_of_my_airspace
cleared_for_taxi_to_the_GA_parking
fly_suggested_heading
turn_left, turn_right
Good_day
Report
Traffic
about
less_than_a_mile
climbing, descending
follow_the
follow_him
orbit_three_sixty
short_final
mile_final
long_final
miles_out
downwind
straight_in
left_downwind
right_downwind
number
go_around
I_repeat_go_around
traffic_on_runway
runway
airport
the_airport
of_the_airport

hold
hold_position
hold_your_position
hold_for
hold_short
hold_short_for
hold_SHORT
hold_SHORT_for
please_ensure_you_read_back_all_hold_short_instructions

ident
please_ident
ident_please

wind
winds
surface_wind
at


cleared
cleared_for
cleared_for_takeoff
cleared_for_immediate_takeoff
cleared_for_departure
cleared_for_landing
cleared_for_the_option

example phrases:

"Piper six eight sierra Oakland Tower Report 2 miles out for left downwind
runway two six right."
"Traffic, 10 O'clock, less than a mile, descending inbound."
"Cessna Golf Foxtrot Sierra Cleared for immediate takeoff traffic is a
cherokee on base wind three three zero at one five"
"Cessna five nine Victor Go around, I repeat go around, traffic on runway."
"Cross runway one niner left, hold short runway one niner right." 


_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to