I. Technical Field
The present disclosure generally relates to air traffic management systems and methods. In particular, the present disclosure relates to systems and methods for using speech to control the operation of a training application and executing the training application for a plurality of trainees.
II. Background Information
The lack of consistent and effective training at many workplaces may result in increased rates of employee attrition and a higher risk of employee underperformance in job-related tasks. In some organizations, such as the Federal Aviation Administration (“FAA”), effective on-the-job training for employees (e.g., controllers and other specialists) is a crucial, yet unfulfilled, need. For example, students who undergo training courses at airports and airspaces are often unable to complete the requisite training needed to adequately perform both simple and complex job-related tasks. Therefore, additional technological tools are needed to improve training in the air traffic management field.
Consistent with a disclosed embodiment, a computer-implemented method is provided for using speech to control the operation of a training application. The method includes receiving audio data representing a response to a training exercise from an input source associated with a trainee. The method processes the received audio data to determine the content of the audio data and generates a command based on at least the processed audio data. The method further processes the generated command to control the operation of the training application.
Consistent with a disclosed embodiment, an electronic device is provided for using speech to control the operation of a training application. The system includes a memory storing one or more instructions. The system also includes a processor configured to execute the one or more instructions to perform operations that include receiving audio data representing a response to a training exercise from an input source associated with a trainee. The operations further include processing the received audio data to determine the content of the audio data and generating a command based on at least the processed audio data. In addition, the operations include processing the generated command to control the operation of the training application.
Consistent with a disclosed embodiment, a computer-implemented method is provided for executing a training application involving a plurality of trainees, wherein the plurality of trainees are associated with a plurality of electronic devices, each of the electronic devices configured to execute the training application. The method includes connecting the plurality of trainees to a shared training application using the plurality of electronic devices, wherein each of the electronic devices executes the shared training application and stores a plurality of local objects describing a plurality of states of the associated trainee. The method generates an interactive environment within the shared application, wherein the interactive environment comprises a plurality of global objects describing a plurality of states of the interactive environment. The method updates a value of one or more of the global objects and determines whether conditions for terminating the shared application have been met. The method further updates a value of one or more of the local objects and exchanges data between the electronic devices based on at least the updated local objects.
Consistent with other disclosed embodiments, a non-transitory computer-readable storage media may store program instructions, which are executed by a processor and perform any of the methods described herein.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the claims.
The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various disclosed embodiments. In the drawings:
The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar parts. While several illustrative embodiments are described herein, modifications, adaptations and other implementations are possible. For example, substitutions, additions or modifications may be made to the components illustrated in the drawings, and the illustrative methods described herein may be modified by substituting, reordering, removing, or adding blocks to the disclosed methods. Accordingly, the following detailed description is not limiting of the disclosed embodiments. Instead, the proper scope is defined by the appended claims.
Systems consistent with disclosed embodiments provide tools for effective on-the-job employee training by, for example, presenting data sets in a manner to enable students to learn the requisite material. These tools allow students to interact with data sets to retain knowledge of the requisite material and test the students' mastery of the requisite material. For example, in one embodiment, one or more data sets (e.g., aircraft type indicators, route geometries, or phraseology) may be presented to allow a student or trainee to review the data using various interfaces (e.g., in list form or via a “flash card” interface). The student may be able to interact with the data sets by, for example, playing one or more games based on the data sets. The student may test his or her knowledge of the data sets by taking a test in various formats (e.g., fill in the blank, visual recognition, multiple choice question and answer).
Disclosed systems and methods use speech to control the operation of a computer-based training application. In one embodiment, audio data representing a response to a training exercise may be received from an input source associated with a trainee. The received audio data may undergo processing to determine the content of the audio data. For example, the audio data may be in a digital file format and processing of the audio data may include the use of at least one digital signal processing algorithm. Based on at least the processed audio data, a command may be generated. The generated command may undergo processing to control the operation of the training application.
Additional disclosed systems and methods provide a training application for use by a plurality of trainees. Each of the trainees may be associated with an electronic device. In one embodiment, the trainees may interact with a shared training application using his or her electronic device. Each of the electronic devices may execute the shared training application and store a plurality of local objects describing a plurality of states of the trainee who is using the device. An interactive environment may be generated within the shared application. The interactive environment may comprise a plurality of global objects describing a plurality of states of the interactive environment. A value of one or more of the global objects may then be updated. A determination may be made as to whether conditions for terminating the shared application have been met. A value of one or more of the local objects may be updated and, based on at least the updated local objects, data may be exchanged between the electronic devices.
Systems and methods are also disclosed for generating an interactive environment. An example of an interactive environment may include a pseudo-real-time environment. In one embodiment, a processor may read data describing an interactive environment. The data may include, for example, configuration data such as airspace volume, route information, control procedures, modifications to control procedures, and airline information. Updates to the data may be received on a regular basis. The updates may be used to keep the interactive environment current. After reading the data, the processor may render the interactive environment based on the data. The rendered interactive environment may be analyzed based on at least a plurality of geometric constraints. Geometric constraints may include, for example, the formation of contiguous regions and shapes, proper overlapping of geometric blocks, and valid designation of control regions in the geometric space. Based on at least the performed analysis described above, the rendered environment may then be modified as needed.
Devices 110a-110d may include one or more computers, tablet computers, cellular phones (including “smart phones”), and other mobile or portable electronic devices capable of communicating over network 102 and/or connecting to other devices. Devices 110a-110d may include a processor (such as any of a number of processors manufactured by Intel™, AMD™, or Sun Microsystems), a memory (which may include one or more storage devices configured to store information used by the processor), a network interface, and one or more input devices (e.g., microphone, keyboard, mouse) (not shown). The configuration and number of processors, memory devices, network interface devices, and input devices may vary as appropriate for certain embodiments. In one exemplary embodiment, devices 110a-110d may include iPads (or similar tablet computers, such as Android-based tablets) configured to execute training applications for students.
System 100 may include server 105 connected to network 102. In some embodiments, may be a centralized server acting as an intermediary between devices 110a-d. Server 105 may include one or more processors, memory devices, network interface devices, and input devices. Additionally, server 105 may execute program instructions configured to transmit data between devices 110a-110d.
Aviation data training application 200 may further include data sets directed to aircraft performance data 205d. Aircraft performance data 205d may include information on: (i) aircraft characteristics for terminal radar controllers 210a (e.g., weight class, aircraft model designators, climb rates, cruise speeds, approach speeds, descent rates, and Land and Hold Short Operations (LAHSO) groups); (ii) aircraft characteristics for tower controllers 210b (e.g., visual identifiers, weight class, aircraft model designators, climb rates, approach speeds, LAHSO groups, and Same Runway Separation (SRS) categories); and (iii) aircraft characteristics for en route controllers 210c (e.g., weight class, aircraft model designators, climb rates, cruise speeds, and descent rates). More generally, the data sets included in the aviation data training application 200 may be divided into categories such as state, region, country, “top 100 airports in the world,” “top 35 airports in the United States,” and so forth.
As illustrated in
“Phraseology” 245a may include the user speaking certain voice commands (through the use of a microphone and headset) that will be deciphered and ranked to provide feedback on the correctness of the instructions provided. Phraseology is further described in connection with
FIGS. 3G(a) and 3G(b) demonstrate distributed vectoring games in which multiple users practice vectoring and communication with one another. Sectors and traffic are generated randomly based on the number of users, and the game complexity can be increased by increasing traffic, decreasing corridor widths, increasing simulator speeds, allowing limited altitude changes, and/or allowing limited speed control of aircraft.
At step 410, the training application may first initialize one or more system components of an electronic device, such as operating device 110a, including, for example, computer hardware or software-based objects. Specifically, the training application may identify internal (e.g., built-in) and external devices of device 110a capable of recording audio data and initialize hardware found in the identified devices. Additionally, the training application may record a sample of audio data and determine, based on the sample, a baseline noise calculation. The calculation may be performed in order to enable more effective processing of audio data. The training application may then receive audio data at step 420, such as an audio stream or a digital voice recording, in any of a number of digital file formats (e.g., “.wav,” “.aiff,” “.mp3,” “.flac,” or “.wma”). The audio data may be received from various input sources, including, for example, a microphone or an input file. At step 430, the received audio data may then be processed. In some embodiments, processing of the input file may include the application of any number of digital signal processing algorithms to the audio data. Such algorithms may include a “Fourier transform,” “Discrete Fourier transform,” “Fast Fourier transform,” “Inverse Fourier transform,” “Hilbert transform,” or any other suitable signal processing algorithm. In some embodiments, processing the audio data may include comparing the audio data content against words stored in a dictionary. In the case where the comparison results in a match between the processed audio data and one or more words in the dictionary, the training application may generate a command based on the match, as will be further described below.
The training application may generate a command at step 440. The command may be generated based on, for example, the processing of the audio data at step 430. Furthermore, the command may be generated based on context and the expected language of the domain. As will be explained below, the context and expected language of the domain may depend on the type of training application. In some embodiments, the processed audio data may be compared to words stored in a lookup-table or a similar data structure, where the stored words correspond to instructions or commands that affect the operation of a training application. Thus, the command may be generated based on a match between the processed audio data and a word in the lookup table, in which case the processed audio data is determined to be a valid instruction. Additionally, in certain embodiments, the command may be generated based on the closest match if an exact match is unavailable. For instance, the processed audio data “turn left 30” may be determined to correspond to the stored instruction “turn left 30 degrees,” even though the match is not exact. In the case where an exact match and closest match are unavailable, the user may be notified that the instruction is invalid.
Next, the training application may process the generated command at step 450. In some embodiments, processing the generated command may include executing certain operations or instructions corresponding to the command. In the case of the command “turn left 30 degrees,” for example, the aircraft route or trajectory may be shifted 30 degrees counter-clockwise. Furthermore, in some embodiments, the training application may provide feedback to a user concerning incomplete recognition or recognition failures. The feedback may, for example, guide the user towards successfully providing a command that is recognized by the system.
In one exemplary embodiment, the method of
Exemplary pseudocode for “vectoring” may be described as follows: “Present_Menu( )”: “Look_For_Peers( )” (devices look for peers over bluetooth, local network, or the internet) and “Connect_To_Peers( )” (establish a connection with other users); “Start_Game( );”; “Initiliaze_World( );” (setup the airspace presented to each user and synchronize) and “Initialize_Interface( );” (setup all interactive controls for the user); “Play_Game( );”: “Begin_Update_Loop( );” (update all world objects at a predetermined rate) and “Check_Game_State( );” (apply game logic, move world objects, check rule set for end of game scenarios); “On_User_Input( );” (the user has given a command through the interface): “Send_Network_Message( );” (notify all connected peers of the users actions) and “Receive_Network_Message( );” (apply updates locally, add or modify world objects as necessary).
In one implementation, a dictionary of desired air traffic controller phraseology is formed based on phonetic sounds, which form a list of possible recognized words. The basic dictionary contains directions (e.g., “left,” “right”), numerical values (e.g., “one,” “two,” “three,” “four,” “five,” “six,” “seven,” “eight” “nine,” “zero”) as well as other expected words (e.g., “turn,” “heading,” “degrees”). The expected vocal combinations may be expressed using a Backus-Naur Form style language called “Java Speech Grammar Format” (JSGF). The grammar defines the acceptable combinations of words into commands. The dictionary and grammar are then fed into a speech processing library, such as the “Pocket Sphinx” library. All processing and recording is done in a separate background thread.
In the exemplary pseudocode appearing below, “PTT” is defined as a user interface control that mimics “push-to-talk” functionality present in a controller environment.
Exemplary pseudocode for implementing the use of “phraseology” may be described as follows: “Initialize_Recording_Components( );” (noise cancellation and other calibrations); “Start_Listening_Loop( );” (begin a buffered queue of audio packets); “Pause_Listening_Loop( );” (only listen when the user presses the button); On_User_Pressed_PTT: “Resume_Listening_Loop( );” (start gathering audio packets); On_User_Released_PTT: “Pause Listening_Loop( );” (stop gathering audio packets) and “Process_Recorded_Data( );” (send recorded data to Recognition Library); “Command=Process_Results( )” (use confidence level and hypothesis to form an air traffic controller command); “Apply_Command( );” (apply command to aircraft/other objects).
Server 505 may be a centralized server acting as an intermediary between devices 510 and 520a-c. Server 505 may include one or more processors, memory devices, network interface devices, and input devices. Additionally, server 505 may execute program instructions configured to transmit data between devices 510 and 520a-c.
Consistent with disclosed embodiments, an application engine 530 of host device 510 may initiate execution of an application, and networked devices 520a-c may connect to host device 510 via network 502. The application may include one or more training programs such as, for example, a program for teaching users a data set, a program for allowing users to interact with a data set, and a program for testing users on a data set. Furthermore, the application may include a global set of objects or variables, for example, world state objects and other data pertinent to multiple users, as represented by global context 540. In addition, each of the host device 510 and networked devices 520a-c may include a local set of objects or variables, as represented by local context 550a-d. Application engine 530 may update or modify global context 540 during execution of the application. Similarly, local engine 560 may update or modify local context 550a-d during execution of the application. Additional details regarding updating the global context 540 and local context 550a-d are described in connection with
In one exemplary embodiment of the system illustrated in
At step 610, the devices may connect to server 505 through network 502, as described above in connection with
The training application may generate an application environment at step 620. In some embodiments, generation of an application environment may include, for example, creation of a continuous airspace spanning multiple platforms (e.g., mobile electronic devices). Various configuration data may be used to generate the environment, including, for example, airspace volume data (e.g., portions of an airspace assigned to an individual or prohibited from use), updated route data, updated fixes (fixes are added and renamed regularly to support new control procedures), and updated airline data. In some embodiments, 3D geometric analysis is performed to validate the airspace blocks of a particular facility by, for example, checking that the airspace blocks form a contiguous shape. For instance, there may be “holes” or spaces lacking an official control entity, and there may be situations where, for a portion of the airspace, multiple blocks overlap.
Next, at step 630, the training application may update global objects or variables as needed. Global objects may be included in a global context, as described above in connection with
According to process 600, multiple students may be involved in a training application together, such as the team aircraft simulation described above in connection with
At step 710, the training application may generate an object. The object may include information from a data set, and the information may be used, for example, to test or quiz a user. The training application may then receive user input at step 720. The user input may be in any of a number of formats, including, for example, text input, voice input, or selection of an embedded object. At step 725, the training application may evaluate the received user input. For example, the content of the user input may be checked against a predetermined set of acceptable inputs, such as, for example, correct answers to a question or accurate syntax. If the user input is accepted (e.g., because the user correctly answered a question), the training application may remove the generated object at step 730 and make a determination at step 735 as to whether additional objects to generate are available. If this determination is made in the affirmative, an additional object may be generated at step 740 and process 700 returns to step 720; Otherwise, process 700 ends. Alternatively, if the user input is not accepted at step 725 (e.g., because the user did not supply a correct input or use appropriate syntax), process 700 proceeds to step 740. For example, the generation of an object at step 740 may be based on, for example, an evaluation of the user's previous inputs. As an example, a user's pattern of incorrect inputs may prompt generation of an object related to the subject matter of the incorrect inputs, in order to reinforce material that a user may be weak on.
According to process 700, the training application may provide an error-based learning scheme to facilitate student knowledge retention. For example, when a student using a training application correctly answers a question, the training application may remove the item from the data set that the student is being tested on. The training application may repeatedly test the student on incorrect answers, however, until the student provides a sufficient level of correct answers.
The foregoing description has been presented for purposes of illustration. It is not exhaustive and is not limited to the precise forms or embodiments disclosed. Modifications and adaptations will be apparent to those skilled in the art from consideration of the specification and practice of the disclosed embodiments. For example, the described implementations include software, but systems and methods consistent with the disclosed embodiments be implemented as a combination of hardware and software or in hardware alone. Examples of hardware include computing or processing systems, including personal computers, servers, laptops, mainframes, micro-processors and the like. Additionally, although aspects of the disclosed embodiments are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on other types of computer readable media, such as secondary storage devices, for example, hard disks, floppy disks, or CD ROM, or other forms of RAM or ROM, USB media, DVD, or other optical drive media.
Computer programs based on the written description and disclosed methods are within the skill of an experienced developer. The various programs or program modules can be created using any of the techniques known to one skilled in the art or can be designed in connection with existing software. For example, program sections or program modules can be designed in or by means of .Net Framework, .Net Compact Framework (and related languages, such as Visual Basic, C, etc.), Java, C++, Objective-C, HTML, HTML/AJAX combinations, XML, or HTML with included Java applets. One or more of such software sections or modules can be integrated into a computer system, e-mail, or browser software.
Moreover, while illustrative embodiments have been described herein, the scope of any and all embodiments having equivalent elements, modifications, omissions, combinations (e.g., of aspects across various embodiments), adaptations and/or alterations as would be appreciated by those skilled in the art based on the present disclosure. The limitations in the claims are to be interpreted broadly based on the language employed in the claims and not limited to examples described in the present specification or during the prosecution of the application. The examples are to be construed as non-exclusive. Furthermore, the steps of the disclosed processes may be modified in any manner, including by reordering steps and/or inserting or deleting steps. Its intended therefore, that the specification and examples be considered as illustrative only, with a true scope and spirit being indicated by the following claims and their full scope of equivalents.
This application claims the benefit of priority of U.S. Provisional Patent Application No. 61/721,757, entitled “AIR TRAFFIC MANAGEMENT SYSTEMS AND METHODS,” filed on Nov. 2, 2012, the disclosure of which is expressly incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61721757 | Nov 2012 | US |