Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PREDICTING AND LEARNING CARRIER PHRASES FOR SPEECH INPUT
Document Type and Number:
WIPO Patent Application WO/2011/156381
Kind Code:
A1
Abstract:
Predicting and learning users' intended actions on an electronic device based on free-form speech input. Users' actions can be monitored to develop of a list of carrier phrases having one or more actions that correspond to the carrier phrases. A user can speak a command into a device to initiate an action. The spoken command can be parsed and compared to a list of carrier phrases. If the spoken command matches one of the known carrier phrases, the corresponding action(s) can be presented to the user for selection. If the spoken command does not match one of the known carrier phrases, search results (e.g., Internet search results) corresponding to the spoken command can be presented to the user. The actions of the user in response to the presented action(s) and/or the search results can be monitored to update the list of carrier phrases.

Inventors:
BYRNE, William, J. (1739 Colorado Lane, Davis, CA, 95616, US)
GRUENSTEIN, Alexander, H. (100 N. Whisman Road #1621, Mountain View, CA, 94043, US)
BEEFERMAN, Douglas (347 Ramona St. #3, Paolo Alto, CA, 94301, US)
Application Number:
US2011/039454
Publication Date:
December 15, 2011
Filing Date:
June 07, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GOOGLE, INC. (1600 Amphitheatre Parkway, Mountain View, CA, 94043, US)
BYRNE, William, J. (1739 Colorado Lane, Davis, CA, 95616, US)
GRUENSTEIN, Alexander, H. (100 N. Whisman Road #1621, Mountain View, CA, 94043, US)
BEEFERMAN, Douglas (347 Ramona St. #3, Paolo Alto, CA, 94301, US)
International Classes:
G10L15/00
Attorney, Agent or Firm:
NEUFELD, Robert, T. (King & Spalding LLP, 1185 Avenue of the AmericasNew York, NY, 10036, US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1, A computer-implemented method for predicting and learning carrier phrases fur speech input, comprising:

receiving, from a user, a first speech input comprising a first command;

determining, by a carrier phrase module, whether the first command corresponds to a known carrier phrase by comparing at least a portion of the first command ty a list of known carrier phrases, each known carrier phrase corresponding to at least one computer- implemented action;

in response to determining that the first command corresponds to a known carrier phrase, causing at least one link to be displayed, each link actualable to initiate the at least one computer-implemented action corresponding to the know!) carrier phrase;

monitoring user activity with respect to the displayed at least one link: and updating, by the carrier phrase application, a relevance score associated with the known carrier phrase based on the monitored user activity;

receiving a second speech input comprising the fust command: and

causing at least one link to be displayed according to the updated relevance seore.

wherein the carrier phrase module is implemented in a computer system that comprises instructions stored in a machine-readable medium and a processor that executes the instructions.

2. The computer-implemented method of Claim i{ wherein the step of determining whether the first command corresponds to a known carrier phrase comprises the steps of:

determining whether at least a portion of the first command identically matches at least one known carrier phrase in a list of known carrier phrases;

in response to determining that the at least a portion of the first command does not identically match any carrier phrase in the list of known carrier phrases, determining whether the at least a portion of the first command is semantically similar to one of the known carrier phrases: and

in response to determining that the at least a portion of the first command is semantically similar to any of the known carrier phrases, determining that the first command corresponds to the one of the known carrier phrases.

3. The computer- implemented method of Claim 1 , further comprising the steps of:

in response to determining that the first command does not correspond to a known carrier phrase,

causing at least one Internet search result corresponding to the first speech input to be displayed;

monitoring user activity in response to the displayed search result: and updating the known carrier phrases to include (a) a new known carrier phrase corresponding to the first command,, and (b) an action associated with the new known carrier phrase, the action initiated by the user in response to the displayed search results.

4. The computer- implemented method of Claim 1, wherein the relevance score comprises a value indicative of a likelihood that a user intends for one of the computer- implemented actions to be executed in response to speech input corresponding to the known carrier phrase.

5. The computer-implemented method of Claim , wherein the step of updating a relevance score associated with the one of the known carrier phrases comprises:

determining whether the user actuated a displayed link:

in response to determining that the user actuated a displayed link,

identifying the actuated link; and

updating a relevance score for the computer-implemented action corresponding to the actuated link to reflect that the computer-implemented action corresponding to the actuated link is more likely the user's intended computer-implemented action to be executed in response to speech input corresponding to the known carrier phrase, ft. The computer-implemented method of Claim 5t wherein the step of updating a relevance score associated with the known carrier phrase further comprises updating a relevance score for each computer-implemented action that does not correspond to the actuated link to reflect that each computer-implemented action that does not correspond to the actuated link is less likely the user's intended computer-implemented action to be executed in response to speech input corresponding to the known carrier phrase.

7. The computer-implemented method of Claim 11 wherein the displayed at least one link comprises a link to cause at least one Internet search result corresponding to the first speech input to be displayed.

8, A computer-implemented method for identifying and executing a speech command, comprising;

receiving a first .speech input comprising a first command:

determining, by a carrier phrase module., whether the first command corresponds to a known carrier phrase by comparing at least a portion of the first command to a fist of known carrier phrases;

in response to determining that the first command does not correspond to a known carrier phrase.

causing at least one Internet search result corresponding to the first speech input to be displayed;

monitoring user activity in response to the displayed search result; and updating the list of known carrier phrases to include fa) a new known carrier phrase corresponding to the first command, and (b) an action associated with the new known carrier phrase, the action previously initiated by the user in response to the displayed search results;

after updating the list,

receiving, from the user, a second speech input comprising the first command;

identi ying a known carrier phrase corresponding to the first command by comparing the first command to the updated list of known carrier phrases; and executing the action associated with the identified carrier phrase, wherein the carrier phrase module is implemented in a computer system that comprises instructions stored in a machine-readable medium and a processor that executes the instructions.

9. The computer-implemented method of Claim 8, wherein the step of determining whether the first command corresponds to a known carrier phrase comprises the steps of:

determining whether ai least a portion of the first command identically matches at least one known carrier phrase in a list f known, carrier phrases;

in response to determining that the at east a portion of the first command docs not identically match any carrier phrase in the list of known carrier phrases, determining whether the at least a portion of the first command is semantieally similar to one of the known carrier phrases; and

in response to determining that the at least a portion of the first command is semantically similar to any of the known carrier phrases, determining that the first command corresponds to the one of the known carrier phrases.

10. The computer-implemented method of Claim 8, further comprising:

displaying a list of selectable links, each link actuatable to perform a different action corresponding to the known carrier phrase;

determine whether the user actuates any of the selectable links;

identifying, in response to determining that the user actuated one of the selectable links, the one of the selectable links; and

updating a relevance score for the action corresponding to the une of the selected links, the relevance score comprising a value indicative of the association of the action with the first command based on the determination. 11 . The computer- implemented method of Claim 10, wherein the list of selectable links comprises a link to cause at least one internet search result corresponding to the second speech input to he displayed.

12. The computer- implemented method of Claim 10. further comprising updating a relevance score for each action not corresponding to the selected link to indicate less relevancy relative to the known carrier phrase,

1:3. The computer-implemented method of Claim 10, wherein the list of selectable links are displayed based on relevance scores associated with the actions. 14, A. computer program product for identifying and executing a speech command, the computer ogram product comprising:

a computer-readable storage medium having computer readable program code embodied therein, the computer-readable program code comprising:

computer- readable program code for receiving, from a user, a first speech input comprising a first command;

computer-readable program code for determining whether the first command corresponds to a know n carrier phrase by comparing at least a portion of the first command to a list of known carrier phrases, each known carrier phrase corresponding to one or more computer- implemented actions; and

computer-readable program code for, in response to determining that the first command does correspond to a known carrier phrase,

causing one or more links to be displayed, each link actuatable to initiate one of the one or more computer-implemented actions that correspond to the one of the known carrier phrases;

monitoring user activity with respect to the displayed one or more links; and

updating a relevance score associated with the one of the known carrier phrases based on the monitored user activity.

1 . The computer program product of Claim 14, wherein the computer-readable program for determining whether the first command corresponds to a known carrier phrase comprises: computer-readable program for determining whether at least a portion of the first command identically matches at least one known carrier phrase in a list of known carrier phrases; computer-readable program for, in response to determining that the at least a portion of the first command does not identically match any carrier phrase in the list of known carrier phrases, determining whether the at least a portion of the first command is semamically similar to one of the known carrier phrases; and

computer-readable program for, in response to determining that the at least a portion of the first command is semantically similar tu any of the known earner phrases, determining that the first command corresponds to the one of the known carrier phrases.

16. The computer program product of Claim 14, further comprising:

computer-readable program for, in response to determining that the first command does not correspond to a known carrier phrase,

causing at least one Internet search result corresponding to the first speech Input to be displayed;

monitoring user activity in response to the displayed search result; and updating the list of known carrier phrases to include (a) a new known carrier phrase corresponding to the first command, and (b) an action associated with the new known carrier phrase, the action previously initiated by the user in response to the displayed search results.

1 . The computer program product of Claim 14, wherein the relevance score comprises a value indicative of a likelihood that a user intends for one of the computer-implemented actions to be executed in response to speech input corresponding to the one of the known carrier phrases,

18. The computer program product of Claim 1 ?, wherein the computer-readable program code for updating a relevance score associated with the one of the known carrier phrases cumpriscs:

computer-readable program code for determining whether the user actuated one of the selectable links;

computer-readable program code for, in response to determining that the user actuated one of the selectable links.

identifying the one of the selectable links: and

updating a relevance score for the computer-implemented action corresponding to the one of the selectable links to reflect that the computer- implemented action corresponding to the one of the selectable links is more likely the user's intended miputer- implemented action to 1x5 executed in response to speech input corresponding to the one of the known carrier phrases.

19. The computer program product of Claim 1 wherein the computer -readable program code for updating a relevance score associated with the one of the known carrier pht¾ses further comprises computer-readable program code for updating a relevance score for each computer- implemented action that does not correspond to the one of the selectable links to reflect that the computer- implemented action that do not correspond to the one of the selectable links is less likely the user's intended computer-implemented action to be executed in resp nse to speech input corresponding to the one of the known carrier pht¾ses.

20. The computer program product of Claim 14, wherein the one or more displayed links cumpriscs a fink to cause at least one Internet search result corresponding to the first speech input to be displayed.

1. A computer program product for identifying and executing a speech command, the computer program product comprising:

a computer-readable storage medium having computer readable program code embodied therein, the computer-readable program code comprising:

computer-readable program code for receiving, from a user, a first speech input, com rising a first command;

computer-readable program code for determining whether the first command corresponds to a known carrier phrase by comparing at least a portion of the first command to a list of known carrier phraser, each known carrier phrase corresponding to one or more computer- implemented actions;

computer-readable program code f r, in response to determining thai the first command does correspond t.o a known carrier phrase,

causing one or more links to be displayed, each link actuatable to initiate one of the one or more computer-implemented actions that correspond to the one of the known carrier phrases;

monitoring user activity with respect to the displayed one or more links; and

updating a relevance score associated with the one of the known carrier phrases based on the monitored user activity; and

computer- readable program code for, in response to determining that the first command does not correspond to a known carrier phrase,

causing at least one Internet search result corresponding to the first speech input to be displayed:

monitoring user activity in response to the displayed search result: and updating the known carrier phrases to include (a) a new known carrier phrase corresponding to the first command, and (b) an action associated with the new known carrier phrase, the action previously initiated by the user in response to the displayed search results.

22. The computer program product of Claim 21, wherein the computer-readable program for determining whether the first command corresponds to a known carrier phrase comprises: computer-readable program for determining whether ai least a portion of the first command identically matches at least one known carrier phrase in a list of known carrier phrases; computer-readable program for, in response to determining that, the at least a portion of the first command does not identically match any carrier phrase in the list of known carrier phrases, determining whether the at least a portion of the first command is semantieally simitar to one of the known carrier phrases; and

computer-readable program for, in response to determining that the at least a portion of the first command is romantically similar to any of the known carrier phrases, determining that the first command corresponds to the one of the known carrier phrases.

23. The computer program product of Claim 21 , wherein the relevance score comprises a value indicative of* a likelihood that a user intends for one of the computer-implemented actions to be executed in response to speech input corresponding to the one of the known carrier phrases.

24. The computer program product of Claim 23. wherein the computer -readable program code for updating a relevance score associated with the one of the known carrier phrases comprises-.

computer readable program code for determining whether the user actuated one of the selectable links;

computer-readable program code for, in response to determining that the user actuated one of the selectable links,

identifying the one of the selectable links; and

updating a relevance score for the conTputer-implemented action corresponding to the one of the selectable links to reflect, that the computer- implemented action corresponding to the one of the selectable links is more likely the user's intended computer- implemented action to be executed in response to speech input corresponding to the one of the known carrier phrases. 25, The computer program product of Claim 24, wherein the computer-readable program code for updating a relevance score associated with the one of the known carrier pht¾ses further comprises computer-readable program code for updating a relevance score tbr each compnier- implemented action that doe* not correspond to the one of the selectable links to reflect that, the computer- implemented action that do not correspond to the one of the selectable links is less likely the user's intended computer-implemented action to be executed in response to speech input corresponding to the one of the known carrier phrases.

26. The computer program product of Claim 21, wherein the one or more displayed links comprises a link to came at least one Internet search result corresponding to the first speech input to be displayed.

Description:
PREDICTING AND LEARNING CARRIER PHRASES

FOR SPEECH INPUT

TECHNICAL FIELD

[0001] The present disclosure relates generally to speech recognition, and more specifically, to methods and systems for predicting and learning users' intended actions based on free-form speech input.

BACKGROUND

[0002] Speech-based input is often used to trigger various actions on electronic devices. For example, some mobile telephones allow for one or more voice commands to trigger various operations. A user may call a contact, by speaking a command and the name of a contact stored in the user's address book. In addition, some global position system ("GPS") devices allow a user to enter certain commands via speech input. For example, a user may speak the phrase "Go Home" and the GPS receiver may,, in turn, provide directions from the current location to the user's home.

[0003] Typically, traditional speech- input capable devices require an exact match between a spoken phrase and a "'carrier phrase'' that corresponds to a desired action. The devices typically include a list of predefined carrier phrases that each correspond to a particular action. For example, a carrier phrase for obtaining directions on a GPS device may be "Navigate to" followed by an address or a name of a location. If the user speaks one of the predefined carrier phrases, the device can recognize the carrier phrase and perform the corresponding action. However, if the spoken phrase is not included in the list of predefined carrier phrases, the action will not be triggered even if the spoken phrase has the same or a similar meaning as the predetermined carrier phrase. For example, the phrase "Navigate to" may be recognized by a GPS device, while the phrase "Drive to" is not.

[0004] This use of predefined carrier phrases requires a user to learn the appropriate phrases for use with a particular device or application. However, many users are not willing to invest the time to learn these phrases and therefore do not take advantage of this feature, in addition, users may become frustrated if they speak, a phrase close to, but not exactly matching one of the predefined carrier phrases. For example, the user may speak the phrase "Navigate me to" instead of "Navigate to" and become frustrated when the phrase is not recognized by the device.

[0005] Therefore, a need exists in the art for an improved means for determining users' intended actions based on speech input. SUMMARY

[0006] In one exemplary embodiment, a computer- implemented method for predicting and learning carrier phrases for speech input can include receiving, from a user, a first speech input including a first command. A carrier phrase module can determine whether the first command corresponds to a known carrier phrase by comparing at least a portion of the first command to a list of known carrier phrases. Each known carrier phrase can correspond to at least one computer-implemented action. In response to determining that the first command corresponds to a known carrier phrase, at least one link can be displayed, each link aetnatable to initiate the at least one computer-implemented action corresponding to the known carrier phrase; user activity with respect to the displayed at least one link can be monitored; and the carrier phrase application can update a relevance score associated with the known carrier phrase based on the monitored user activity. A second speech input including the first command can be received. At feast one link can be displayed according to the updated relevance score. The carrier phrase module can be implemented in a computer system that includes instructions stored in a machine-readable medium and a processor that executes the instructions.

[0007] In another exemplary embodiment, a computer-implemented method for identifying and executing a speech command can include receiving a first speech input including a first command. A carrier phrase module can determine whether the first command corresponds to a known carrier phrase by comparing at least a portion of the first command to a list of known carrier phrases. In response to determining that the first command does not correspond to a known carrier phrase, at least one Internet search result correspond ing to the first speech input can be displayed, user activity in response to the displayed search result can be monitored; and the list of known carrier phrase* can be updated to include (a) a new known carrier phrase corresponding to the first command, and (b) an action associated with the new known carrier phrase, the action previously initiated by the user in response to the displayed search results. After updating the list, a second speech input including the first command can be received from the user; a known carrier phrase corresponding to the first command can be identified by comparing the first command to the updated list of known carrier phrases; and the action associated with the identified carrier phrase can be executed.

[0008] In yet another exemplary embodiment, a computer program product has a computer- readable storage medium having computer- readable program code embodied therein for identifying and executing a speech command. The computer program product can include computer-readable program code for receiving, from a user, a first speech input including a first command; computer- eadable program code for determining whether the first command corresponds to a known carrier phrase by comparing at least a portion of the first command to a list of known carrier phrases, each known carrier phrase corresponding to one or more computer- implemented actions; and computer-readable program code for, in response to determining that the first command does correspond to a known carrier phrase, causing one or more links to be displayed, each link actuatabie to initiate one of the one or more computer-implemented actions that correspond to the one of the known carrier phrases; monitoring user activity with respect to the displayed one or more links; and updating a relevance score associated with the one of the known carrier phrases based on the monitored user activity.

[0009] In yet another exemplary embodiment, a computer program product has a computer- readable storage medium having computer readable program code embodied therein for identifying and executing a speech command. The computer program product can include comp ter-readable program code for receiving, from a user, a first speech input, comprising a first command; computer readable program code for determining whether the first command corresponds to a known carrier phrase by comparing at least a portion of the first command to a list of known carrier phrases, each known carrier phrase corresponding to one or more computer- implemented actions; computer-readable program code for, in response to determining that, the first command does correspond to a known carrier phrase, causing one or more links to be displayed, each link actuatable to initiate one of the one or more computer-implemented actions that correspond to the one of the known carrier phrases; monitoring user activity with respect to the displayed one or more links; and updating a relevance score associated with the one of the known carrier phrases based on the monitored user activity. The computer program product also can include computer-readable program code for, in response to determining that the first command does not correspond to a known carrier phrase, causing at least one Internet search result corresponding to the first speech input to be displayed; monitoring user activity in response to the displayed search result; and updating the known carrier plnases to include (a) a new known carrier phrase corresponding to the First command, and (b) an action associated with the new known carrier phrase, the action previously initiated by the user in response to the displayed search results.

[0010] These and other aspects, features and embodiments of the invention will become apparent to a person of ordinary skill in the art upon consideration of the following detailed description of illustrated embodiments exemplifying the best mode for carrying out the invention s presently perceived. BRIEF DESCRIPTION OF THE DRAWINGS

[0011 ] Figure 1 is a block, diagram depicting a system for predicting and learning carrier phrases, in accordance with certain exemplary embodiments.

[0 1 ] Figure 2 is a block diagram depicting a general component architecture for a network device, in accordance with certain exemplary embodiments,

[0013] Figure 3 is & flow chart depicting a method for predicting and learning carrier phrases, in accordance with certain exemplary embodiments.

[0014] Figure 4 is a flow chart depicting a method for updating known carrier phrases, in accordance with certain exemplary embodiments.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Overview

[0015] Methods and systems predict and learn users' intended commands based on free-form speech input. The systems and methods can determine users' intended actions based on (1 ) an initial set of carrier phrases (e.g., "Directions to <location "'). (2) a list of known carrier phrases or a semantic network that associates linguistically similar phrases with actions, and (3) a feedback loop of user actions logged against spoken phrases, which associates the phrase's level of relevance with each action. The systems and methods can be used to predict and learn phrases associated with various actions that can be performed by an electronic device and or applications stored on the electronic device, such as dialing a telephone number, obtaining directions via a GPS application, or performing an Internet search for a video, an image, a map, news, weather, or any other type of information.

[0016] A user can provide a command io an electronic device by speaking a phrase, such as "Drive to New York City." A speech recognition module can convert the speech input to text and a parser can parse a "carrier phrase'" from the text. Carrier phrases may include an action word or phrase, such as "Drive to." that is associated with an intended command. A carrier phrase application can compare the parsed carrier phrase to known carrier phrases that each correspond to one or more actions that, the device can perform. The carrier phrase application also can include or cause separate synonym logic to determine if the parsed carrier phrase is semantically similar to one or more of the known carrier phrases. If the parsed carrier phrase matches one or more of the known carrier phrases, whether by being identical to the known carrier phrase or semantically similar to the known carrier phrase, the device can present, for each matching known carrier phrase, an actuatable link for initiating an action corresponding to the matching carrier phra.se. if there arc multiple matching carrier phrases, a list of actualable links for multiple corresponding actions may be displayed.

[0017] In one example, a user may speak the phrase ''Drive to New York City." The parser can parse the carrier phrase "Drive to" from the spoken phrase. The carrier phrase application can compare the parsed carrier phrase ''Drive to'' to a list of known carrier phrases, if the carrier phrase application does not find an identical match for the carrier phrase "Drive to," it can cause the synonym logic to determine if the phrase "Drive to" is similar to owe or more of the known carrier phrases. For example, the synonym logic may find that the parsed carrier phrase "Drive to" is semantically similar to known carrier phrases "Directions to"' and "'Navigate to." The device can display a list of selectable actions corresponding to each known carrier phrase that is semantically similar to the parsed carrier phrase (i.e., for the above example, "Directions to" and "Navigate to"). Continuing the example for the parsed carrier phrase "Drive to," the displayed list may include an actuatable link labeled, "Directions to New York," corresponding to an action involving obtaining directions to New York. For example, when selected, that link may launch a map application illustrating directions from the current location of the device (e.g., determined by GPS) to ew York, The displayed list also may include an actuatable link labeled, "Navigate to New York," that when elected, launches a GPS application that provides rum by turn directions from the current location of the device to New York.

[0018] If an identical or similar match is not found for the parsed carrier phrase, the carrier phrase application can trigger a search, such as an Internet search, for the spoken phrase, the parsed carrier phrase, or a portion of the spoken phrase or parsed carrier phrase. The carrier phrase application can. monitor the user's actions after a list of one or more actuafable links actions or search results arc presented and record those user actions. For example, after presenting the list of actuatable links/actions including. "Directions to ' New York" and "Navigate to New York," the carrier phrase application can monitor the user's link selection and record that selection. The carrier phrase application can update the list of known carrier phrases based on that selection so that, if the same spoken phrase (or the parsed portion thereof) is used again, the appropriate action can be performed or the appropriate link/action can be presented higher (e.g., at the top) in the list of links/actions.

System Architecture

[0019] Turning now to the drawings, in which like numerals indicate like elements throughout the figures, exemplary embodiments are described in detail. Figure 1 is a block diagram depicting a system 100 for predicting and learning carrier phrases, in accordance with certain exemplary embodiments. The system 100 includes one or more network devices 110 that are each in communication with a carrier phrase processor 150 via a network 125. The network 125 can include a wired or wireless network. For example, the network 125 can include a local area network ("LAN"), a wide area network ("WAN"), an intranet, the internet, a mobile telephone network., or any combination thereof. In certain alternative exemplary embodiments, the carrier phrase processor 150 may be incorporated in the network device 110.

[0020] The network device 110 can include a mobile telephone, a personal digital assistant ("PDA"), a laptop computer, a desktop computer, a handheld computer, or any other wired or wireless processor-driven device. In certain exemplary embodiments, the network device 110 includes a microphone 11 3. a speech recognition module 11 2, and a speech command module 111. Additional components that may be included in the network device 100 are described below in connection with Figure 2. A user can provide a command to the network device 110 by speaking a word or phrase into the microphone 113. The speech recognition module 112 can receive the speech input from the microphone 113, convert the speech input to text, and provide the converted text to the speech command module 111.

[0021 ] The speech command module 111 cast interact with the carrier phrase processor 150 to determine or predict what, if any, action is intended by the received speech input. In certain exemplary embodiments, the carrier phrase processor 150 can include or be incorporated in one or more computers, servers, and/or web servers. The carrier phrase processor 1 0 includes a carrier phrase application 1 1 that can receive the converted text from the speech command module 111 and provide the converted text to a parser 152, The parser 152 can parse a carrier phrase from the text and provide the parsed carrier phrase to the carrier phrase application 1 1. In certain exemplary embodiments, the parser 152 compares each word or phrase in the text to a list of carrier phrases and extracts any matching word or phrase.

[0022] The carrier phrase application 1 1 can compare the parsed carrier phrase to known carrier phrases that each correspond to one or more actions. In certain exemplary embodiments, the known carrier phrases may be stored in a data storage unit 153, as a list thai includes carrier phrases and their corresponding actionis), or in a semantic network having semantic relationships between the known carrier phrases and their corresponding actions. The known carrier phrases may be stored with or without an associated command subject. For example, a known carrier phrase "Drive to" may be stored as "Drive to" or as "Drive to <location ." Each known carrier phrase can include a relevance score fur each corresponding action that indicates the likelihood that a user intends to have that action performed when the user says that carrier phrase.

[0023] In certain exemplary embodiments, the carrier phrase processor 1.50 also includes a synonym engine 154, which includes logic for determining if the parsed carrier phrase is semantically similar to a known carrier phrase. For example, the synonym engine 15 may conclude that a parsed carrier phrase "drive to" is semantically similar to known carrier phrases ''directions t " and "navigate to" using the semantic network. In certain alternative exemplary embodiments, the synonym logic may be included in another module or component of the carrier phrase processor 1 , such as me carrier phrase application 151.

[0024] If the parsed carrier phrase identically matches or is semantically similar to one or more of the known carrier phrases, the carrier phrase application 151 can communicate information associated with the identically matching or similar carrier phrase's) to the speech command module 111, This information can include an identification of the action itself, an identification of an application that performs the action, and/or a relevance score for the action, for example. If the parsed carrier phrase does not identically match and is not similar to at least one of the known carrier phrases, the carrier phrase application 151 can communicate this t.o the speech command module 111.

[0025] The speech command module 111 can enable the user to select from actions corresponding to identically matching or semantically similar carrier phrases. For example, the speech command module 111 may display a selectable list of the actions. In certain exemplary embodiments the list may be ordered based on the relevance scores for each of the actions. If there are no identically matching or semantically similar known carrier phrases for the parsed carrier phrase, the speech command module 111 can cause a search, such as an Internet search, to be performed using the converted text. The speech command module 111 can monitor the user's actions and communicate with the carrier phrase application 1 1 io update the list of known carrier phrases based on the user's actions. For example, if the user selects one of the actions for an identically matching or semantically similar carrier phrase, the carrier phrase application 1 1 can update the relevance score for the selected action and the carrier phrase to indicate that the selected action is more relevant to the parsed carrier phrase. In addition or in the alternative, ihe carrier phrase application 151 may update the relevance score for each other matching action that was not selected to indicate that the non-selected actions are less relevant to the parsed carrier phrase.

[0026] If the parsed carrier phrase is a new carrier phrase (i.e., if there is no matching carrier phrase), then the carrier phrase application 151 can add the parsed carrier phrase and any selected action to the list of known carrier phrases. For example, the speech command module 111 may call an Internet web browser to perform a search for the phrase "Map the Golden Gate Bridge." in response, the web browser may display search results including a map that, shows the location of the Golden Gate Bridge. If the user selects the map, then the earner phra.se application 151 can associate the carrier phrase "Map" with the action of di playing a map of a location.

[0027] The system 100 can be used to learn and predict carrier phrases for a single user or for a population of multiple users. For example,, the carrier phrase processor 150 can communicate with multiple network devices 110 to monitor multiple users' actions and learn carrier phrases corresponding to the aggregate of the users * actions. In addition or in the alternative, the system 100 way be used to learn and predict carrier phrases for individual users only. In such embodiments, the components of the carrier phrase processor 150 car* be included with the network device 1 )0. That is, in certain exemplary embodiments, the network device 110 can include a carrier phrase application 151, a parser 152, a storage unit 153 for storing known carrier phrases, and a synonym engine 1 4.

[0028] Figure 2 is a block diagram depicting a general component architecture for a network device 110, in accordance with certain exemplary embodiments. As described above, the network device 110 can include a mobile telephone, a PDA. a laptop computer, a desktop computer, a handheld computer, or any other wired or wireless processor-driven device. For simplicity, the exemplary device 110 is described herein as a personal computer 220. A person of ordinary skill in the art having the benefit of the present disclosure will recognize that certain components of the device 110 may be added, deleted, or modified in certain alternative embodiments. For example, a mobile phone or handheld computer may not include all of the components depicted in Figure 2 and/or described below.

[0029] Generally, the computer 220 includes a processing unit 221 , a system memory 222. and a system bus 223 that couples various system components, including the system memory 222, to the processing unit 2 1, The system bus 223 can include any of several types of bus structures, including a memory bus or memory controller, a peripheral bus. or a local bus, using any of a variety of bus architectures. The system memory 222 includes a read-only memory (' * ROM >- ) 224 and a random access memory ("RAM' " } 225, A basic input/output, system (BIOS) 226 containing the basic routines that help to transfer information between elements within the computer 220, such as during start-up. is stored in the ROM 224.

[0030] The computer 220 also includes a hard disk drive 227 for reading from and writing to a hard disk (not shown), a magnetic disk drive 228 for reading from or writing to a removable magnetic disk 229 such as a floppy disk, and an optical disk drive 230 for reading from or writing to a remos-able optical disk 231 such as a CD-ROM, compact disk - read/write (OD RW), DVD, or other optical media. The haul disk, drive 227, magnetic disk drive 22K, and optical disk, drive 230 are connected to the system bus 223 by a hard disk drive interface 232, a magnetic disk drive interface 233, and an optical disk, drive interface 234, respectively. Although the exemplary device 110 employs a ROM 224, a RAM 22$, a hard disk drive 22?. a removable magnetic disk 229, and a removable optical disk 231, it should be appreciated by a person of ordinary skill in the art having the benefit of the present disclosure that other types of computer readable media also can be used in the exemplary device 110. For example, the computer readable media can include any apparatus that can contain, store, communicate, propagate, or transport data for use by or in connection with one or more components of the computer 220. including any electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or propagation medium, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, and the like. The drives and their associated computer readable media can provide nonvolatile storage of computer-executable instructions, data structures, program modules, and other data for the computer 220.

[0031] Λ number of modules can be stored on the ROM 224. RAM 225, hard disk drive 227, magnetic disk 229, or optical disk 231, including an operating system 235 and various application modules M l, 112, and 238. Application modules 111 , Π 2, and 2.18 can include routines, sub-routines, programs, objects, components, data structures, etc., which perform particular tasks or implement particular abstract data types. Application modules 111 and 11 , are discussed in more detail below, with reference to Figures 3-4.

[0032] Application modules, such as application module 238, can include a telephone dialing application, an Internet web browser, a G S application, a mapping application, or any other type of software application. These application modules may interact with the speech command module 111 to receive instructions received via speech input as described in more detail below with reference to Figures 3-4,

[0033] A user can enter commands and information to the computer 220 through input devices, uch as a keyboard 240 and a pointing device 242. The pointing device 242 can include a mouse, a trackball, an electronic pen that can be used in conjunction with an electronic tablet, or any other input device known to a person of ordinary skill in the art. such as a microphone 11 , joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit. 222 through a serial port interface 246 that is coupled to the system bus 223, but. can be connected by other interfaces, such as a parallel port, game port, a universal serial bus (USB), or the like, A display device 247, such as a monitor, also can be connected io the system bus 223 via an interface, such as video adapter 248. in addition to the display device 247, the computer 220 can include other peripheral output devices, such as speakers (not shown) and a printer {not sho n). [0034] The computer 220 is configured to operate in a networked environment using logical connections to one or more remote computers 249, such ax a carrier phrase processor 150. The remote computer 249 can be any network device, such a « * a personal computer, a server, a client, a router, a network PC, a peer device, or other device. While the remote computer 2 9 typically includes many or ail of the elements described above relative to the computer 220. only a memory storage device 250 has been illustrated in Figure 2 fur .simplicity. The logical connections depicted in Figure 2 include a LA ' S 204A and a WAN 204B. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.

[0035] When used in a LAN networking environment, the computer 220 is often connected to the LAN 204A through a network interface or adapter 253. When used in a WAN networking environment, the computer 220 typically includes a modem 254 or other means for establishing communications over the WAN 204B, such as the internet. The modem 254, which can be internal or external, is connected to system bus 22.1 via a serial port interface 246, In a networked environment, program modules depicted relative to computer 220, or portions thereof, can be st red in the remote memory storage device 250.

[0036] It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used. M re ver, those skilled in the art will appreciate thai the device 110 illustrated in Figure 2 can have any of several other suitable computer system configurations.

Process

[0037] The components of the system 100 -ire described hereinafter with reference to the exemplary methods illustrated in Figures 3-4. The exemplary embodiments can include one or more computer programs that embody the functions described herein and illustrated in the appended flow charts. However, it should be apparent that there could be many different ways of implementing aspects of the exemplary embodiments in computer programming, and these aspects should not be construed as limited to one set of computer instructions. Further, a skilled programmer would be able lo write such computer programs to implement exemplary embodiments based on the flow charts and associated description in the application text. Therefore, disclosure of a particular set of program code instructions is not considered necessary for an adequate understanding of how to make and use the exemplary embodiments. Further, those skilled in the ait will appreciate thai one or more blocks described may be performed by hardware, software, or a combination thereof, as may be embodied in one or more computing systems. [00.18] Figure 3 is a flow chart depicting a method 300 for predicting and learning carrier phrases, in accordance with certain exemplary embodiments. The method 300 may be performed using a computer program product having a computer-readable storage medium with computer program instructions embodied thereon for performing the method 300. The method 300 is described hereinafter with reference to Figures -3.

[0039] In block 305, the network device 110 is placed into an active listening mode where the network device 110 is awaiting a command to be entered via speech input. For example, a user may initiate the active listening mode by making a selection via a user interface of the network device 110 or by pressing a button on the network device Π0. Alternatively, the network device 110 may continuously operate in an active listening mode.

[0040] In block 10, a user provides a command via speech input to the microphone 113. The speech input may include a carrier phrase containing an action word or phrase and a subject of the command. For example, the speech input may include the carrier phrase D ve to" and a location, "Golden Gate Bridge.'- Another example of speech, input may include the carrier phrase "Calf * and a contact or name, such as "'Joe. * ' As would be recognized by a person of ordinary skill in the art having the benefit of the present disclosure, infinite other phrases are possible.

[0041] In block 15, the speech recognition module 112 converts the speech input to test for processing by the parser 152. In the illustrated embodiment, the speech recognition module 112 sends the converted text to the speech command module 111 , and the speech command module I I I . in turn, sends the converted text to the carrier phrase application 1 1 of the carrier phrase processor 150 via the network 125. The carrier phrase application 151 sends the converted text to the parser 152. 1» certain alternative exemplary embodiments, such as embodiments where the parser 152. is stored n or coupled to the network device 110, the speech recognition module 11 2 may send the converted text directly to the parser 1 2.

[0042] In block 320, the parser 152 parses the converted text. In certain exemplary embodiments, such parsing involves the parser 152 extracting the carrier phrase from the converted text. The parser 1 2 may detect an action word or action phrase, and extract that action word or phrase from the converted text. Continuing the Golden Gate Bridge example from above, the parser 152 may extract the phrase "Drive to" or the word ''Drive" from converted text that includes the phrase "Drive to Golden Gate Bridge. *- The parser 152 can separate the phra.se into a carrier phrase, such as ' Drive to" and the subject of the spoken command, such as "Golden Gate Bridge. * ' The parser 1 2 sends the parsed text to the carrier phrase application 151. [0043] In block 325, the carrier phrase application 1 1 compares the parsed carrier phrase, and optionally the subject of the command, to known carrier phrases to determine if there is an identical or semantically similar match, la certain exemplary embodiments, the carrier phrase application 1 1 compares the carrier phrase to a list of known carrier phrases, each being associated with one or more corresponding actions, in certain exemplary embodiments., the carrier phrase application 151 compares the parsed carrier phrase to a semantic network that links known carrier phrases with corresponding actions. An exemplary semantic network can include a network, of nodes, each node including a carrier phrase and one or more corresponding actions. Carrier phrases having a similar meaning or one or more similar or matching actions may be linked in the semantic network. In certain exemplary embodiments, the carrier phrase application 1 1 uses the synonym engine 1 4 to determine if the parsed carrier phrase is a semantically similar match to a known carrier phrase.

[0044] In block 330. the carrier phrase application 1 1 determines whether the parsed carrier phrase is an identical or semantically similar match to one or more of the known earner phrases. If so, the method 300 branches to block. 3 5. if the parsed carrier phrase does not match and is not similar to one of the known carrier phrases, the method 300 branches to block 340, which is described below.

[0045] In block 335, the carrier phrase application 151 sends information associated with the matching carrier phrasc(s) to the speech command module 111. This information can include, among other things, one or more actions corresponding to each matching carrier phrase, a relevance score for each such action, and an indication of an application program 238 at the network device 110 that can complete each such action.

[0046] In block 340, the speech command module 111 causes information identifying the matching action^ ) to be displayed to die user. For example, in certain exemplary embodiments, the speech command module 111 displays a selectable or otherwise aetuatable link for each action or a portion of the actions corresponding to each (identical or semantically similar) matching carrier phrase. These links may be ordered ba>ed on the relevance score for the action with respect to the parsed carrier phrase. In certain exemplary embodiments, a link to perform a search using the speech input also may be provided by the speech command module 111. For example, a list of actions may include a link to perform an Internet search using the speech input. This provides the user an additional option in case the user intended for the speech input to nigger a different action titan the other actions presented to the user in block 340.

[0047] In certain exemplary embodiments, an action corresponding to a matching known carrier phrase may be completed automatically, without displaying a link to complete the action. For example, if the speech input includes the phrase '"Dial Home," a known carrier phrase having a single corresponding a ti n (e.g.. dial the telephone number of the contact spoken after the phrase "DiaT), thai action may be performed without displaying a list of possible actions, in another example, if one of multiple actions for a known carrier phrase has a significantly higher relevance score for the parsed carrier phrase than any other corresponding action, then that, action having the high relevance score may be performed instead of displaying a list of available actions.

[0048] Referring back to block 330, if the parsed carrier phrase does not match any of the known carrier phrases, whether identically or through semantic similarity, the method 300 branches to block 345. In block 345, the speech command module 111 causes a search to be performed using at least a portion of the converted text corresponding to the speech input. For example, the speech command module 111 may call an Internet web browser application to navigate to a search engine website and populate a search field of the search engine web site with the converted text,

[0049] In block 350, the speech command module 111 causes the search results to be presented to the user. In certain exemplary embodiment, these search results may include links to websites related to the parsed carrier phrase of the speech input. For example, if the speech input includes the phrase, "Show me a video of a dog riding a skateboard. * ' the search results may include a link to a video sharing website and/or a link to videos relating to a dog riding a skateboard. Alternatively, instead of performing a search, the method 300 may bypass blocks 345 and 350. For example, if the carrier phrase application 151 concludes that the parsed carrier phrase does not match and is not seraantically similar to one of the known carrier phrases, the speech command module 111 may wait for additional speech input to be received.

[0050] In block 355. the speech command module 111 monitors and logs user actions to determine what, if any, action was intended by the user's speech input. For example, the speech command module 1 Π can monitor the user's selection of one of the links provided by the speech command module 11 1 in block 340 or one of the search result links provided in block 350. If the links provided in block 340 include a link to perform a search using the speech input, the speech command module 111 may monitor the user's selection of results from such a search in block 350. The speech command module 111 also can monitor for other actions unrelated to the provided links. For example, the user may not have intended for any of the actions corresponding to the matched carrier phrase to be completed. In such a case, the user may complete the action manually, rather than by voice command. The speech command module 111 can monitor and log these actions in block 355. In certain exemplary embodiments, the speech command module 11 I may monitor and log the first action taken by the user only. In certain exemplary embodiments, the speech command module 111 may monitor and log multiple acti ns taken by the user. In block 360, the speech command module 111 updates the list or network of known carrier phrases based on the user's actions logged in block .155, and the method 300 ends. Block.360 is described in further detail below with reference to Figure 4.

[005 ] In certain exemplary embodiment , the speech command module 111 can monitor sequences of commands or queries and find similarities between them. If a user attempts multiple phrases until a link, to the intended action is provided, each of the phrases can be processed by the speech command module 111 to determine the phrase's relevancy to the intended action. For example, a user may attempt to get driving directions to New York City by first speaking the phrase, '"Drive to New York City" into the microphone 113. If there is not match to this phrase or to the phrase, "Drive to," in the known carrier phrases, then the speech command module 111 may provide internet search results only. The a*er may then try only the phrase, "New York City. 1' The Internet search results for "New York City * ' may include a link to a map of New York City. If the user selects the map link and then selects a link to "get driving directions, " the speech command module 111 can record this and provide this information to the carrier phrase application 151. The carrier phrase application 151 can. in turn, correlate the phrase "Drive to" from the first receh¾d speech input io the action '"get driving directions * As would be readily understood by a person of ordinary skill in the art having the benefit of the present disclosure, infinite other sequences may occur in other exemplary embodiments.

[0052] Figure 4 is a flow chart depicting a method 360 for updating known carrier phrases, in accordance with certain exemplary embodiments, as referenced in block 360 of figure 3, The method 3 0 is described hereinafter with reference to F igures 1-2, and 4.

[0053] In block 405. the speech command module 111 identifies the action intended by the user's speech input based on the monitoring in block 355 of Figure 3. In block 10, the speech command module 111 determines whether the identified action corresponds to one of the known carrier phrases that matched the parsed carrier phrase in block 330. In certain exemplary embodiments, the speech command module 111 can identify a "'match ' ' only when the known carrier phrase identically matches the parsed carrier phrase. Alternatively, a match may exist when the known carrier phrase matches the parsed carrier phrase either identically or through semantic similarity. If the speech command module 111 determines in block 410 that the identified action corresponds to one of the known carrier phrases thai matched the parsed carrier phrase in block.330, the method 360 branches to block 415. Otherwise, the method 360 branches to block 420. [0054] In block 415, the speech command module Π 1 communicates the user selected action to the carrier phrase application 151, and the earner phrase application 151 updates the list or network of known carrier phrases based on the user selected action. For example, the carrier phrase application 1 1 may increase the relevance score for the user selected action with respect to the matching carrier phrase, in addition, the carrier phrase application 151 may reduce the relevance score for no« -selected actions corresponding to the matching carrier phrase. In certain alternative exemplaty embodiments, the speech command module J 11 may update the list or network itself.

[0055] In block 420. the speech command module 111 adds the new, parsed carrier phrase and or the user selected action to the list or network of known carrier phrases. If the parsed carrier phrase did not match one of the known carrier phrases in block 3 0 of the method 300 and the user selected a search result link resulting from a search of the received speech input, then the parsed carrier phra.se and the action associated with the selected search result link can be added to the list or network of known carrier phrases. For example, if the speech input from the user included the phrase, "'Drive to New York," and the phrase "Drive to" is not included in the known carrier phrases, an Internet, search for "Drive to New York" can be performed. If the user selects a link resulting from the search to a webpage that provided directions to New York, then a carrier phrase "Drive to" or a carrier phrase * Orive to location " may be added to the known carrier phrases with a corresponding action of "provide directions." Thereafter, if the phrase "Drive to" is received by the network device 110, the speech command module 111 and or the carrier phrase application 151 can predict that the user intends to get directions to a location. In response, the speech command module 111 can provide a link to an Internet website that provides directions or can automatically cause an Internet web browser to navigate to the website that provides directions.

[0056] If the parsed carrier phrase matches a known carrier phrase, but the user selected an action that previously did not correspond to the matching known carrier phrase, then that user selected action can be added as a corresponding action tor the matching known carrier phrase. Thereafter, this new action may be identified and/or suggested when the carrier phrase is received by the network device.

General

[0057] The exemplary methods and acts described in the embodiments presented previously are illustrative, and, in alternative embodiments, certain acts can be performed in a different order, in parallel with one another, omitted entirely, and/or combined between different exemplary embodiments, and/or certain additional acts can be performed, without departing from the scope and spirit of the invention. Accordingly, such alternative embodiments are included in the inventions described herein,

[0058] The exemplary embodiments can be used with computer hardware and software that performs the methods and processing functions described above. As will be appreciated by those skilled in that art, the systems, methods, and procedures described herein can be embodied in a programmable computer, computer executable software, or digital circuitry. The software can be stored on computer readable media. For example, computer readable media can include a floppy disk. RAM, ROM, hard disk, removable media, flash memory, memory stick, optical media, magneto-optical media, CD-ROM, etc. Digital circuitry can include integrated circuits, gate arrays, building block logic, field programmable gate arrays ("FPGA"), etc,

[0059] Although specific embodiments have been described above in detail, the description is merely for purposes of illustration, it should be appreciated, therefore, that many aspects described above are not intended as required or essential elements unless explicitly stated otherwise. Various modifications of, and equivalent acts corresponding to, the disclosed aspects of the exemplary embodiments, in addition to those described above, cast be made by a person of ordinary skill in the art, having the benefit of the present disclosure, withou departing from the spirit and scope of the invention defined in the following claims, the scope of which is to be accorded the broadest interpretation so as to encompass such modifications and equivalent structures.