Spoken ATC: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
Line 39: Line 39:
= How to install =
= How to install =
{{note |    This is the latest version, v.2.1 (Ago 7, 2017) }}
{{note |    This is the latest version, v.2.1 (Ago 7, 2017) }}
If your FGFS version accepts '''addons''', you can download this feature from [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/SpokenATC Sourceforge]. Read the [[FGAddon#Obtaining_aircraft|directions]] as a reference.
Otherwise, follow this:
#- Download the [https://drive.google.com/file/d/0BzzojFuPdeyMTGNDYmZDcEljQkU/view?usp=sharing spoken_atc.zip]. There you will find a "''spoken_atc.nas''" file and a "''spoken_atc''" directory with 6 files inside.  
#- Download the [https://drive.google.com/file/d/0BzzojFuPdeyMTGNDYmZDcEljQkU/view?usp=sharing spoken_atc.zip]. There you will find a "''spoken_atc.nas''" file and a "''spoken_atc''" directory with 6 files inside.  
#- Extract all into the ''[[$FG_HOME]]/Nasal'' directory '''(keeping the directory structure !)'''.
#- Extract all into the ''[[$FG_HOME]]/Nasal'' directory '''(keeping the directory structure !)'''.

Revision as of 15:54, 10 August 2017

Screenshot showing Spoken ATC in action.

rleibner is working on an atc.nas script, and it's time to share with you the beta version. The module is not intended to compete with FGComm, Festival or other similar features. On the contrary, its use is indicated if these are not available (eg, few hardware resources, no Internet connection, etc.) [1]


Spoken ATC allows the pilot to listen to the directives of the Air Traffic Controller.

WIP.png Work in progress
This article or section will be worked on in the upcoming hours or days.
Note: Although still incomplete, the information it contains is valid and available.
See history for the latest developments.

Preface

Typically, you should tune the ATC-station frequency and make a request by pressing "<" key. You may hear something like:

  • "Charlie X-ray Bravo Echo X-ray , this is Montevideo Carrasco International tower. QNH 1024 or 30 point 24 inches. Join left pattern Runway 1 9 and report."

So, you enter in the base leg and press "<" again:

  • "Charlie X-ray Bravo Echo X-ray , Wind 1 5 0 degrees, 3 knots. Runway 1 9 cleared to land."

After landing and while you are braking, you press "<" once more:

  • "Charlie X-ray Bravo Echo X-ray , Exit Runway at first taxiway and contact Ground 121 point 82."

That is only an example of standard VFR Phraseology [2] that you can expect from Spoken ATC.

Changelog

How to install

Note  This is the latest version, v.2.1 (Ago 7, 2017)

If your FGFS version accepts addons, you can download this feature from Sourceforge. Read the directions as a reference.

Otherwise, follow this:

  1. - Download the spoken_atc.zip. There you will find a "spoken_atc.nas" file and a "spoken_atc" directory with 6 files inside.
  2. - Extract all into the $FG_HOME/Nasal directory (keeping the directory structure !).
  3. - Edit the $FG_ROOT/keyboard.xml file and include the following lines in order to bind

[3] the "<" key:

    <key n="60">
        <name>less-than</name>
        <desc>Spoken ATC</desc>
        <binding>
        <command>nasal</command>
        <script><![CDATA[
              spoken_atc.speak(15);
              ]]>
        </script>
        </binding>
    </key>

And that's all !
If you prefer, you can bind an unused joystick button too.

How to use it

Launch FlighGear (or re-start it) and tune Comm1 to an available ATC frequency (you can find them at Menu/Location/Airfield information), and press the ">" key to transmit your request.
You will hear the ATC's answer according the standard VFR phraseology, depending on your current position, weather and previous messages:

  • If you are on ground =>
    • The code interprets it's a taxi request (if you are far from the runway or you've just landed),
    • or a take-off request (if you are on the correct Runway or at his holding point).
  • If you are flying =>
    • The code interprets it's an approach request (if you tunned an APP station),
    • or a landing request (if you tunned a TWR station),
    • or a departure request (if you tunned a DEP station. and you are climbing after a take-off).

Note that only TWR stations can deliver landing or take-off clearances, and only GND or TWR stations can deliver taxiing ones.
Where there is not a specific GND or APP-DEP freq., TOWER can take their tasks.
If they do exist, TWR will redirect to the specific frequency.

Only at initial contact, the ATC message includes his station name & type, and the current QNH.
APP stations will give a vector to the runway threshold in use (if you are far from there) or order to contact TWR (if you are inside the CTR).
TWR stations will give instructions to join pattern or make direct final (depending on your position).

Tips

a realistic behavior

To achieve realistic behavior, follow a logical sequence of communications, viz.:

  • Contact GND (or TWR) prior to taxiing.
  • Contact TWR prior to take-off or land.
  • Contact DEP (if available) after take-off to leave the CTR.
  • Contact APP (if available) prior to enter the CTR.
  • etc, etc.

Phraseology customization

You can customize the phraseology by editing the "phraseology.xml" file.
There you can find groups of tags like:

    . . . . 
  <foo type="string">Hello world. </foo>
  <foo type="string">It is a good </foo>
  <foo type="string">day </foo>
  <foo type="string">to fly. </foo>
    . . . .

which will be read as a single sentence ("Hello world. It is a good day to fly. ").

Literals

Those in the example above are literal sentences that you can change by the strings you want.

Note
  • You should not include either " or ' .
  • Punctuation is meaningfull.

Substitutions

Strings starting by % will call some property value. In the example above replace "day" by "% /sim/startup/time-offset-type".
Now the sentence will be read as "Hello world. It is a good morning to fly. " or "Hello world. It is a good evening to fly. " depending on the time.

Note
  • The called property must be a string.

Concatenation

Strings starting by ~ will append the sentence with another one.
Try this:

    . . . . 
  <short type="string">% /satc/callsign-fmt</short>	
  <short type="string">, </short>

  <foo type="string">Have a nice fly, </foo>
  <foo type="string">~short</foo>
    . . . .

when calling foo you should hear "Have a nice fly, <your-callsign> , "

Word Replacement

If you find that the word Wind is not pronounced clearly, you can change it by Winnded or similar to increase its intelligibility..
Better? Fine, but what about the message on the screen? Include a tag with the pattern <replace type="string">old:new</replace> :

    . . . . 
  <replace type="string">Winnded:Wind</replace> 
    . . . .



Besides that, you can call the spoken_atc.say() function at runtime to check your customization.

spoken_atc.say() function

You can ... [TODO]

On screen voice

If the writen messages bother you, when binding (see above) you can call the function as

 <script> <![CDATA[ spoken_atc.speak(n); ]]> </script>

with n seconds you want, even 0 meaning no messages at all.


And remember this is VFR: heed the instructions of the ATC but keep your eyes wide open !

References

References