# Patent

## Title
Displaying a menu of commands in a video game environment

## Abstract

In a gaming system, a user controls actions of characters in the game environment using speech commands. In a learning mode, available speech commands are displayed in a command menu on a display device. In a non-learning mode, the available speech commands are not displayed. A speaker-independent context-sensitive speech recognition module contains a vocabulary of available speech commands. Use of speech commands is combined with input from a controller device to control actions of a character or characters in the game environment.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation and claims the priority benefit of U.S. patent application Ser. No. 11/764,795 filed Jun. 18, 2007 now U.S. Pat. No. 7,613,616 and entitled “Training a User to Execute a Sequence of Commands in a Game Environment by Using Voice Control, which is a continuation and claims the priority benefit of U.S. patent application Ser. No. 11/403,716 filed Apr. 13, 2006 now U.S. Pat. No. 7,233,904 and entitled “Menu-Driven Voice Control of Characters in a Game Environment,” which is a continuation and claims the priority benefit of U.S. patent application Ser. No. 09/859,034 filed May 14, 2001 now U.S. Pat. No. 7,085,722 and entitled “System and Method for Menu-Driven Voice Control of Characters in a Game Environment.” The disclosures of these commonly owned applications are incorporated herein by reference.


BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to electronic entertainment devices and relates more particularly to a system and method for menu-driven voice control of characters in a game environment.
2. Description of the Related Art
In electronic entertainment systems such as gaming systems, a user typically interacts with a game program using some type of manually activated controller device. Common controller devices are buttons, joysticks, switches, keyboards, and combinations of these. Some gaming systems use specifically designed control devices, such as a steering wheel and pedals for driving simulations and a stick and pedals for flight simulations.
Each gaming system typically uses manually activated controller devices of a single design for most games playable on the system, and buttons or keystrokes are assigned different meanings for each game. In one game, a particular button may correspond to a punch, while in another game the same button corresponds to firing a torpedo. Thus use of a controller device is not very intuitive for the user in the context of a particular game environment.
Use of manually activated controller devices requires a user to memorize which buttons or keys are assigned to particular actions. For complicated games, the number of buttons or combinations of keystrokes can be very large. In many games, a user only controls the actions of a single character. In games where the user controls a group of characters, the characters act as a group, so in effect the group of characters acts as a single character. Allowing the user to control multiple characters independently using manually activated controller devices may be possible, but would be very complex and difficult to learn and use.
SUMMARY OF THE INVENTION
In accordance with the present invention, a system and method are disclosed to implement menu-driven voice control of characters in a game environment. The system of the invention includes game software and a speech recognition module. The speech recognition module is a speaker-independent and context sensitive with a vocabulary of available command words or phrases to control actions of a character or characters in the game environment. A user speaks commands from the vocabulary into a microphone to control the actions of a character or characters in the game environment.
In a learning mode, menus of available commands are displayed to the user. A level 1 command menu shows available characters to control. A level 2 command menu shows available actions for character or characters selected from the level 1 menu. The available actions in the level 2 menu depend upon a current state of the game. A level 3 command menu shows available options for the character actions selected from the level 2 menu. The available options in the level 3 menu may also depend upon a current state of the game.
In a non-learning mode, menus of available commands are not displayed to the user. The user speaks memorized commands in the vocabulary of the speech recognition module. The speech recognition module is context-sensitive; it will not react to a level 2 command unless a level 1 command was previously input, and will not react to a level 3 command unless a level 2 command was previously input. Thus, the user inputs verbal sentence-type commands (actor plus action) to control the character or characters in the game environment.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of one embodiment of an electronic entertainment system, according to the invention;
FIG. 2 is a block diagram of one embodiment of the main memory of FIG. 1, according to the invention;
FIG. 3A is a diagram of one embodiment of a level 1 menu command screen on a display device, according to the invention;
FIG. 3B is a diagram of one embodiment of a level 2 menu command screen on the display device, according to the invention;
FIG. 3C is a diagram of one embodiment of a level 3 menu command screen on the display device, according to the invention; and
FIG. 4 is a flowchart of method steps for menu-driven voice command of characters, according to one embodiment of the invention.



DETAILED DESCRIPTION
FIG. 1 is a block diagram of one embodiment of an electronic entertainment system 100 in accordance with the invention. System 100 includes, but is not limited to, a main memory 110, a central processing unit (CPU) 112, vector processing units VU0 111 and VU1 113, a graphics processing unit (GPU) 114, an input/output processor (IOP) 116, and IOP memory 118, a controller interface 120, a memory card 122, a Universal Serial Bus (USB) interface 124, and an IEEE1394 interface 126. System 100 also includes an operating system read-only memory (OS ROM) 128, a sound processing unit (SPU) 132, an optical disc control unit 134, and a computer readable storage medium such as a hard disc drive (HDD) 136, which are connected via a bus 146 to IOP 116. System 100 is preferably an electronic gaming console; however, system 100 may also be implemented as a general-purpose computer, a set-top box, or a hand-held gaming device.
CPU 112, VU0 111, VU1 113, GPU 114, and IOP 116 communicate via a system bus 144. CPU 112 communicates with main memory 110 via a dedicated bus 142. VU1 113 and GPU 114 may also communicate via a dedicated bus 140. CPU 112 executes programs stored in OS ROM 128 and main memory 110. Main memory 110 may contain pre-stored programs and may also contain programs transferred via IOP 116 from a computer readable storage medium such as a CD-ROM, DVD-ROM, or other optical disc (not shown) using optical disc control unit 134. IOP 116 control data exchanges between CPU 112, VU0 111, VU1 113, GPU 114 and other devices of system 100, such a controller interface 120.
CPU 114 executes drawings instructions from CPU 112 and VU0 111 to produce images for display on a display device (not shown). VU1 113 transforms objects from three-dimensional coordinates to two-dimensional coordinates, and sends the two-dimensional coordinates to GPU 114. SPU 132 executes instructions to produce sound signals that are output on an audio device (not shown).
A user of system 100 provides instructions via controller interface 120 to CPU 112. For example, the user may instruct CPU 112 to store certain game information on memory card 122 or may instruct a character in a game to perform some specified action. Other devices may be connected to system 100 via USB interface 124 and IEEE 1394 interface 126. In the preferred embodiment, a USB microphone (not shown) is connected to USB interface 124 to enable the user to provide voice commands to system 100.
FIG. 2 is a block diagram of one embodiment of main memory 110 of FIG. 1, according to the invention. Main memory 110 includes, but is not limited to, game software 212 and a speech recognition module 214, which were loaded into main memory 100 from an optical disc in optical disc control unit 134. Game software 212 includes instructions executable by CPU 112, VU0 111, VU1 113, and SPU 132 that allow a user of system 100 to play the game. In the FIG. 2 embodiment, game software 212 is a combat simulation game in which the user controls a three-character team of foot soldiers. In other embodiments, game software 212 may be any other type of game, including but not limited to a role-playing game (RPG), a flight simulation game, and a civilization-building simulation game.
Speech recognition module 214 is a speaker-independent, context sensitive speech recognizer executed by CPU 112. In an alternate embodiment, IOP 116 executes speech recognition module 214. Speech recognition module 214 includes a vocabulary of commands that correspond to instructions in game software 212. The commands include single-word commands and multiple-word commands. When an input speech signal (utterance) matches a command in the vocabulary, speech recognition module 214 notifies game software 212, which then provides appropriate instruction to CPU 112.
The user of system 100 and game software 212 inputs one or more of the commands via the microphone and USB interface 124 to control the actions of characters in game software 212. The spoken commands are preferably used in conjunction with controller commands; however, other embodiments of game software 212 may implement spoken commands only.
FIG. 3A is a diagram of one embodiment of a level 1 menu command screen 322 on a display device 310 connected to system 100, according to the invention. The level 1 menu 330 includes three level 1 command items, a team item 332, an alpha item 334, and a bravo item 336. Although three level 1 command items are shown, game software 212 may use any number of level 1 command items. Level 1 menu command screen 322 appears when the user actuates and then releases a button or other device on the controller dedicated to this function. Level 1 menu command screen 322 also includes a current game picture (not shown) underlying level 1 menu 330. Level 1 menu 330 appears on display device 310 to indicate to the user available choices for level 1 commands.
In the FIG. 2 embodiment of game software 212, the user controls the actions of a team leader character using controller actions such as actuating buttons or manipulating a joystick. The user inputs spoken commands to control the actions of a two-character team. Team item 332 represents the availability of a team command that selects both members of the two-character team to perform an action. Alpha item 334 represents the availability of a command that selects one member, alpha, to perform an action. Bravo item 336 represents the availability of a command that selects one member, bravo, to perform an action.
The user says the word “team” into the microphone to select team item 332, says the word “alpha” to select alpha item 334, and says the word “bravo” to select bravo item 336. When speech recognition module 214 recognizes one of the level 1 commands, it notifies game software 212, which then displays a level 2 menu command screen.
FIG. 3B is a diagram of one embodiment of a level 2 menu command screen 324 on the display device 310, according to the invention. In the FIG. 3B embodiment, the user has spoken “team” into the microphone to select team item 332. Level 2 menu command screen 324 shows a level 2 menu 340. Level 2 menu 340 includes the previously selected level 1 command (team item 322) and three level 2 commands: a hold position item 342, a deploy item 344, and a fire at will item 346. Although three level 2 command items are shown, game software 212 may use any number of level 2 command items.
Level 2 menu 340 illustrates available commands for the two-character team. The available commands depend upon a current state of the game. For example, if the user verbally selects hold position item 342, then the two-character team will appear to hold their position in the game environment. The next time the user verbally selects team item 332, hold position item 342 will not appear but a follow item (not shown) will appear instead.
The combination of team item 332 and hold position item 342 is a complete command, so if the user says “hold position” while screen 324 is displayed, game software 212 then stops displaying screen 324 and causes the selected characters to perform the selected action in the game environment (both members of the team hold their position). Similarly, the combination of team item 332 and fire at will item 346 is a complete command, so if the user says “fire at will ” while screen 324 is displayed, game software 212 then stops displaying screen 324 and causes the selected characters to perform the selected action in the game environment (both members of the team fire their weapons). The combination of team item 332 and deploy item 344 is not a complete command. If the user says “deploy” while screen 324 is displayed, game software 212 then displays a level 3 menu command screen.
FIG. 3C is a diagram of one embodiment of a level 3 menu command screen 326 on the display device 310, according to the invention. Level 3 menu command screen 326 shows a level 3 menu 350 that includes a previously selected level 1 command (team item 332), a previously selected level 2 command (deploy 344) and two level 3 commands: frag item 352 and smoke item 354. In the FIG. 2 embodiment of game software 212, the two-character team of foot soldiers can deploy fragment (frag) grenades and smoke grenades. Although only two level 3 commands are shown, game software 212 may include any number of level 3 commands.
The combination of team item 332, deploy item 344, and frag item 352 is a complete command, so if the user says “frag” while screen 326 is displayed, software module 212 stops displaying screen 326 and causes the selected characters to perform the selected action in the game environment (both members of the team deploy a frag grenade). The combination of team item 332, deploy item 344, and smoke item 354 is a complete command, so if the user says “smoke” while screen 326 is displayed, software module 212 stops displaying screen 326 and causes the selected characters to perform the selected action in the game environment (both members of the team deploy a smoke grenade).
Although in FIG. 3C only three menu levels are shown, any number of menu levels is within the scope of the invention. In the preferred embodiments the number of menu levels is three for ease of use and to facilitate learning of the various command combinations. Once the user has learned or memorized all of the various command combinations, the user may play the game without using the command menus (non-learning mode).
As stated above in conjunction with FIG. 2, speech recognition module 214 is context-sensitive. For example, the word “deploy” is in the vocabulary of speech recognition module 214. However, speech recognition module 214 will only recognize the word “deploy” in the context of a level 1 command such as “team” or “alpha”. In other words, speech recognition module 214 will not react to an input level 2 command unless a level 1 command has been input, and will not react to an input level 3 command unless a level 2 command has been input. The speech recognition module 212 recognizes sentence-type commands (actor plus action) that game software 212 uses to control actions of the characters in the game environment.
Although FIGS. 3A-3C illustrate command menus 330, 340, and 350 as branching menus that branch from left to right, any other configuration for displaying available commands to the user is within the scope of the invention.
FIG. 4 is a flowchart of method steps for menu-driven voice command of characters, according to one embodiment of the invention. First, in step 412, game software 212 determines whether the user has actuated a controller button assigned to a voice command functionality. If not, then game software 212 continues monitoring the controller button signals. If the button has been actuated, then in step 414 game software 212 determines whether the button has been released. If the button has been released, the method continues in a learning mode with step 416. If the button has not been released, the method continues in a non-learning mode with step 430.
In step 416, game software 212 displays level 1 commands on a level 1 menu command screen. Then in step 418, speech recognition module 214 determines whether the user has verbally input a level 1 command. If not, the method returns to step 416. If the user has verbally input a level 1 command, then in step 420 game software 212 displays level 2 commands on a level 2 command screen. In step 422, speech recognition module 214 determines whether the user has verbally input a level 2 command. If not, the method returns to step 420. If the user has verbally input a level 2 command, the method continues with step 424.
If the input level 2 command does not have associated level 3 commands, then in step 438 game software 212 executes the commands, whereby a character or characters in the game environment perform the selected action. If the input level 2 command does have associated level 3 commands, then in step 426 software module 212 displays level 3 commands on a level 3 menu command screen. In step 428, speech recognition module 214 determines whether the user has verbally input a level 3 command. If not, the method returns to step 426. If the user has verbally input a level 3 command, then in step 438 game software 212 executes the commands, whereby a character or characters in the game environment perform the selected action.
In the non-learning mode, the available commands at each level are not displayed to the user. In step 430, speech recognition module 214 determines if the user has verbally input a level 1 command. If not, speech recognition module 214 continues to listen for a level 1 command. If the user has verbally input a level 1 command, then in step 432 speech recognition module 214 determines whether the user has verbally input a level 2 command. If not, speech recognition module 214 continues to listen for a level 2 command. If the user has input a level 2 command, the method continues with step 434.
If the input level 2 command does not have associated level 3 commands, then the method continues in step 438 where game software 212 executes the commands, whereby a character or characters in the game environment perform the selected action. If the input level 2 command does have associated level 3 commands, then in step 436 speech recognition module 214 determines whether the user has verbally input a level 3 command. If the user has not verbally input a level 3 command, then speech recognition module 214 continues to listen for a level 3 command. If the user has verbally input a level 3 command, then in step 438 game software 212 executes the command whereby a character or characters in the game environment perform the selected action.
In the non-learning mode, the user experiences the game environment as if he or she is actually giving verbal instructions to a character or characters, making the game play more intuitive and realistic. In one embodiment of game software 212, after the user has given a spoken command to one of the characters a prerecorded acknowledgement of the command, or other audible response is played back to the user via a speaker or headset (not shown).

## Claims

1. A method for displaying a menu of commands in a video game environment, the method comprising:
displaying a first menu of available commands on a display device following a determination that a user has actuated a control button assigned to activating voice functionality on a controller interface for a game system;
receiving a first vocal utterance from the user at a microphone coupled to the game system, the vocal utterance including a command selected by the user from the first menu of available commands;
displaying a second menu of available commands on the display device following receipt of the first vocal utterance;
receiving a second vocal utterance from the user at the microphone, the second vocal utterance including a command selected by the user from the second menu of available commands; and
executing instructions stored in memory, wherein execution of the instructions by a processor:
matches the first vocal utterance with an available command in the first menu of available commands,
matches the second vocal utterance with an available command in the second menu of available commands, and
causes a character in the game environment to perform an action corresponding to the combination of the matched first vocal utterance and the matched second vocal utterance, and wherein the performed action is displayed on the display device.

2. The method of claim 1, wherein the vocal utterance is received in conjunction with a command issued through the controller interface.

3. The method of claim 1, wherein the menu of available commands is based on a current state of game play in the video game environment.

4. The method of claim 1, further comprising issuing an acknowledgement of the performed action following performance of the action corresponding to the combination of the matched first vocal utterance and the matched second vocal utterance.

5. The method of claim 1, wherein the menu of available commands is displayed in conjunction with a current state of the video game environment.

6. A system for displaying a menu of commands in a video game environment, the system comprising:
a microphone for receiving vocal utterances from a user;
a computing device including a processor to execute game software and a speech recognition module;
a speech recognition module stored in memory and executable by the processor to match a first vocal utterance from the user with an available command in a first menu of available commends and a second vocal utterance from the user with an available command in a second menu of available commands, the matched vocal utterances associated with an action to be performed in the video game environment; and
game software stored in memory and executable by the processor to:
cause a character to perform the action in the video game environment, the action corresponding to the combination of the matched first vocal utterance and the matched second vocal utterance, and
cause the display of a menu of available commands for selection by the user and in the video game environment.

7. The system in claim 6, wherein the speech recognition module includes a vocabulary of commands.

8. The system in claim 6, wherein the speech recognition module is context-sensitive.

9. The system in claim 6, further comprising a controller interface for receiving user instructions.

10. A non-transitory computer readable storage medium having embodied thereon a program, the program being executable by a processor to perform a method for displaying a menu of commands in a video game environment, the method comprising:
displaying a first menu of available commands following a determination that a user has actuated a control button assigned to activating voice functionality on a controller interface for a game system;
receiving a first vocal utterance from the user, the vocal utterance including a command selected by the user from the first menu of available commands;
displaying a second menu of available commands following receipt of the first vocal utterance;
receiving a second vocal utterance from the user, the second vocal utterance including a command selected by the user from the second menu of available commands;
matching the first vocal utterance with an available command in the first menu of available commands,
matching the second vocal utterance with an available command in the second menu of available commands; and
causing a character in the game environment to perform an action corresponding to the combination of the matched first vocal utterance and the matched second vocal utterance.