Context-based speech recognition grammar selection method and system

文档序号:106572 发布日期:2021-10-15 浏览:31次 中文

阅读说明:本技术 基于场境的语音识别语法选择方法和系统 (Context-based speech recognition grammar selection method and system ) 是由 大卫·P·辛格尔顿 德巴基特·高什 于 2009-03-06 设计创作,主要内容包括:本公开涉及基于场境的语音识别语法选择方法和系统。除其它外,本说明书的主题可以实现在包括以下的方法中:接收从与第一计算设备相关联的非语言用户行为取得的地理信息。非语言用户行为暗示用户对地理位置感兴趣。该方法还包括使用取得的地理信息来识别与该地理位置相关联的语法,以及输出语法指示符以供在选择所识别的语法对来自用户的话音输入进行语音识别处理中使用。(The present disclosure relates to a context-based speech recognition grammar selection method and system. The subject matter of this specification can be embodied in, among other things, methods that include: geographic information derived from non-verbal user behavior associated with a first computing device is received. Non-verbal user behavior suggests that the user is interested in a geographic location. The method also includes using the retrieved geographic information to identify a grammar associated with the geographic location and outputting a grammar indicator for use in selecting the identified grammar for speech recognition processing of voice input from the user.)

1. A computer-implemented method, comprising:

determining, by a computing device, a context of the computing device;

receiving, by the computing device, a first input from a user;

selecting, by the computing device, a subset of words from a group of words based on a first input from the user and the context of the computing device;

receiving, by the computing device, a second input from the user; and

providing, by the computing device, an output based on a second input from the user and the subset of words from the group of words.

2. The method of claim 1, wherein:

determining the context of the computing device comprises:

determining a location of the computing device, an

The subset of words from the group of words includes a location name in a vicinity of the computing device.

3. The method of claim 1, wherein the subset of words from the group of words is a grammar used by a speech recognizer.

4. The method of claim 1, wherein:

receiving the second input from the user comprises:

receiving a selection of a word of the subset of words, an

Providing the output based on a second input from the user and the subset of words from the group of words comprises:

providing the output based on a selection of the term in the subset of terms.

5. The method of claim 1, wherein receiving the first input from the user comprises receiving the first input indicating that the user is to provide the second input as an utterance.

6. The method of claim 1, wherein providing the output based on a second input from the user and the subset of words from the group of words comprises:

providing a map comprising a visual indicator of a geographic location associated with the second input and the subset of words.

7. The method of claim 1, comprising:

receiving the second input from the user by receiving audio data of an utterance spoken by the user;

generating, by the computing device, a transcription of the utterance by performing automatic speech recognition on the audio data using the subset of words as a grammar; and

providing the output by: providing the output based on the transcription of the utterance.

8. A system, comprising:

one or more computers; and

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

determining, by a computing device, a context of the computing device;

receiving, by the computing device, a first input from a user;

selecting, by the computing device, a subset of words from a group of words based on a first input from the user and the context of the computing device;

receiving, by the computing device, a second input from the user; and

providing, by the computing device, an output based on a second input from the user and the subset of words from the group of words.

9. The system of claim 8, wherein:

determining the context of the computing device comprises:

determining a location of the computing device, an

The subset of words from the group of words includes a location name in a vicinity of the computing device.

10. The system of claim 8, wherein the subset of words from the group of words is a grammar used by a speech recognizer.

11. The system of claim 8, wherein:

receiving the second input from the user comprises:

receiving a selection of a word of the subset of words, an

Providing the output based on a second input from the user and the subset of words from the group of words comprises:

providing the output based on a selection of the term in the subset of terms.

12. The system of claim 8, wherein receiving the first input from the user comprises receiving the first input indicating that the user is to provide the second input as an utterance.

13. The system of claim 8, wherein providing the output based on a second input from the user and the subset of words from the group of words comprises:

providing a map comprising a visual indicator of a geographic location associated with the second input and the subset of words.

14. The system of claim 8, wherein the operations comprise:

receiving the second input from the user by receiving audio data of an utterance spoken by the user;

generating, by the computing device, a transcription of the utterance by performing automatic speech recognition on the audio data using the subset of words as a grammar; and

providing the output by: providing the output based on the transcription of the utterance.

15. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers, the instructions, when so executed, causing the one or more computers to perform operations comprising:

determining, by a computing device, a context of the computing device;

receiving, by the computing device, a first input from a user;

selecting, by the computing device, a subset of words from a group of words based on a first input from the user and the context of the computing device;

receiving, by the computing device, a second input from the user; and

providing, by the computing device, an output based on a second input from the user and the subset of words from the group of words.

16. The medium of claim 15, wherein:

determining the context of the computing device comprises:

determining a location of the computing device, an

The subset of words from the group of words includes a location name in a vicinity of the computing device.

17. The medium of claim 15, wherein the subset of words from the group of words is a grammar used by a speech recognizer.

18. The medium of claim 15, wherein:

receiving the second input from the user comprises:

receiving a selection of a word of the subset of words, an

Providing the output based on a second input from the user and the subset of words from the group of words comprises:

providing the output based on a selection of the term in the subset of terms.

19. The medium of claim 15, wherein providing the output based on a second input from the user and the subset of words from the group of words comprises:

providing a map comprising a visual indicator of a geographic location associated with the second input and the subset of words.

20. The medium of claim 15, wherein the operations comprise:

receiving the second input from the user by receiving audio data of an utterance spoken by the user;

generating, by the computing device, a transcription of the utterance by performing automatic speech recognition on the audio data using the subset of words as a grammar; and

providing the output by: providing the output based on the transcription of the utterance.

21. A computer-implemented method, comprising:

providing a map of a geographic area for display on a computing device;

selecting a grammar for voice recognition based on the map of the geographic area displayed on the computing device;

while the computing device displays the map of the geographic area, receiving voice data corresponding to an utterance to initiate a search;

(i) performing speech recognition on the utterance using the grammar selected based on the map of the geographic area displayed on the computing device and (ii) generating a transcription of the utterance based on geographic information derived from prior provision for display; and

updating the map to provide a visual indicator that identifies a location associated with the transcription of the utterance.

22. The method of claim 21, wherein the transcription is generated further based on geographic information derived from the map of the geographic area.

23. The method of claim 21, wherein the speech recognizes a location.

24. The method of claim 21, wherein the transcription is generated further based on a search history that identifies one or more search queries submitted to one or more search services by one or more computing devices associated with a user of the computing device.

25. The method of claim 21, wherein the grammar is selected based on a geographic location identified based on search results associated with one or more previously submitted search queries.

26. A system, comprising:

a memory for storing data; and

a hardware processor operable to perform operations comprising:

providing a map of a geographic area for display on a computing device;

selecting a grammar for voice recognition based on the map of the geographic area displayed on the computing device;

while the computing device displays the map of the geographic area, receiving voice data corresponding to an utterance to initiate a search;

(i) perform speech recognition on the utterance using the grammar selected based on the map of the geographic area displayed on the computing device and (ii) generate a transcription of the utterance based on a search history that identifies one or more search queries that were previously submitted to one or more search services by one or more computing devices associated with a user of the computing device; and

updating the map to provide a visual indicator that identifies a location associated with the transcription of the utterance.

27. The system of claim 26, wherein the transcription is generated further based on geographic information derived from the map of the geographic area.

28. The system of claim 26, wherein the transcription is generated further based on geographic information derived from content previously provided for display.

29. The system of claim 26, wherein the speech recognizes a location.

30. The system of claim 26, wherein the grammar is further selected based on a geographic location identified based on search results associated with one or more previously submitted search queries.

31. A non-transitory computer-readable medium storing instructions that, when executed, are operable to cause one or more processors to perform operations comprising:

providing a map of a geographic area for display on a computing device;

selecting a grammar for speech recognition based on (i) the map of the geographic area displayed on the computing device and (ii) a geographic location, the geographic location identified based on search results associated with one or more previously submitted search queries;

while the computing device displays the map of the geographic area, receiving voice data corresponding to an utterance to initiate a search;

generating a transcription of the utterance by performing speech recognition on the utterance using the grammar selected based on the map of the geographic area displayed on the computing device; and

updating the map to provide a visual indicator that identifies a location associated with the transcription of the utterance.

32. The computer-readable medium of claim 31, wherein the transcription is generated further based on geographic information derived from the map of the geographic area.

33. The computer-readable medium of claim 31, wherein the transcription is generated further based on geographic information derived from content previously provided for display.

34. The computer-readable medium of claim 31, wherein the operations further comprise:

receiving voice data corresponding to an utterance from which a search is initiated by receiving the voice data corresponding to an utterance of a search query;

transmitting the search query to a search engine while the computing device displays the map of the geographic area;

receiving search results from the search engine in response to the search query while the computing device displays the map of the geographic area; and

updating the map to provide a visual indicator that identifies a location associated with a transcription of the utterance by updating the map based on the search query to provide the visual indicator.

35. A computer-implemented method, comprising:

providing a map of a geographic area for display on a computing device;

selecting a grammar for voice recognition based on the map of the geographic area displayed on the computing device;

while the computing device displays the map of the geographic area:

receiving speech data corresponding to an utterance of a search query;

generating a transcription of the utterance of the search query by performing speech recognition on the utterance using the grammar selected based on the map of the geographic area;

transmitting the transcription of the search query to a search engine; and

receiving search results from the search engine responsive to the transcription of the search query; and

updating the map to provide a visual indicator identifying a location associated with the search result.

36. A computer-implemented method, comprising:

accessing, by a computer system, a search history that identifies one or more search queries previously submitted to one or more search services by a mobile computing device associated with a user;

accessing information identifying one or more web pages previously displayed on the mobile computing device;

identifying a geographic location likely to be involved in future speech input from the user based at least in part on: i) the search history of the mobile computing device, ii) search results associated with the one or more search queries in the search history, and iii) content included in the one or more web pages previously displayed on the mobile computing device;

selecting, by the computer system, a first grammar from a plurality of grammars based at least in part on the identified geographic location, wherein the first grammar comprises a vocabulary, the vocabulary being relevant to the identified geographic location; and

outputting, by the computer system, information identifying the first grammar, wherein the output information causes a grammar used to analyze speech input from a mobile computing device to be changed to the first grammar.

37. The computer-implemented method of claim 36, wherein the search results of the search query are aggregated across a set of search results for a plurality of users provided to the one or more search services.

38. The computer-implemented method of claim 36, further comprising:

identifying one or more topics likely to be involved in future voice input from the user based at least in part on the search history of the mobile computing device;

selecting a second grammar from among the plurality of grammars based at least in part on the identified one or more topics, wherein the second grammar includes a vocabulary related to the one or more topics; and

wherein the outputted information further identifies the second grammar and causes the grammar used to analyze the speech input from the mobile computing device to be changed to a plurality of grammars including the first grammar and the second grammar.

39. The computer-implemented method of claim 36, wherein the geographic location is identified independently of a current geographic location of the mobile computing device.

40. The computer-implemented method of claim 36, wherein the mobile computing device comprises a smartphone.

41. A computer-implemented method, comprising:

accessing, by a computer system, information for content previously requested by and displayed on a mobile computing device associated with a user, wherein the content comprises one or more web pages previously displayed on the mobile computing device;

identifying a geographic location from the user to which future speech input is likely to relate based at least in part on the content previously requested and displayed on the mobile computing device;

selecting, by the computer system, a first grammar from a plurality of grammars based at least in part on the identified geographic location, wherein the first grammar comprises a vocabulary, the vocabulary being relevant to the geographic location; and

outputting, by the computer system, information identifying the first grammar, wherein the output information causes a grammar used to analyze speech input from a mobile computing device to be changed to the first grammar.

42. The computer-implemented method of claim 41, further comprising:

identifying a particular portion of the content for which the user expresses at least a threshold level of interest; and

wherein the geographic location is identified based on the particular portion of the content.

43. The computer-implemented method of claim 42, wherein the user is determined to have expressed at least the threshold level of interest in the particular portion of the content when a user-controlled indicator hovers over the particular portion for at least a threshold period of time.

44. The computer-implemented method of claim 41, further comprising:

classifying, by the computer system, the content into one or more keywords;

selecting a second grammar from among the plurality of grammars based at least in part on the one or more keywords, wherein the second grammar includes a vocabulary related to the one or more keywords; and

wherein the outputted information further identifies the second grammar and causes the grammar used to analyze the speech input from the mobile computing device to be changed to a plurality of grammars including the first grammar and the second grammar.

45. The computer-implemented method of claim 41, wherein the geographic location is identified from the content based on the geographic location occurring at least a threshold number of times in the content.

46. The computer-implemented method of claim 41, wherein the content comprises textual content displayed on the mobile computing device.

47. A computer system, comprising:

one or more computing devices;

an interface of the one or more computing devices, the interface programmed to access information identifying one or more of: i) identifying search history of one or more search queries previously input by a user to a mobile computing device and search results associated with the one or more search queries, and ii) content previously requested and displayed to the user on the mobile computing device, wherein the content comprises one or more web pages previously displayed on the mobile computing device;

a reverse geocoder installed on the one or more computing devices and programmed to identify a geographic location likely to be involved in future speech input from the user based at least in part on one or more of: i) identifying the search history and associated search results for the one or more search queries previously entered by the user, and ii) the content previously requested and displayed on the mobile computing device; and

a grammar index accessible by the one or more computing devices and comprising an index associating a geographic location with a plurality of grammars;

a grammar selector installed on the one or more computing devices and programmed to select a first grammar from among the plurality of grammars based at least in part on the geographic location identified by the reverse geocoder, wherein the first grammar includes a vocabulary related to the geographic location;

wherein the interface is further programmed to output information identifying the first grammar, wherein the output information causes a grammar used to analyze speech input from the mobile computing device to be changed to the first grammar.

48. The computer system of claim 47, wherein:

the one or more computing devices are further programmed to identify one or more topics to which future voice input from the user is likely to relate based at least in part on one or more of; i) identifying the search history and associated search results for the one or more search queries previously entered by the user into the mobile computing device, and ii) the content previously requested and displayed on the mobile computing device;

the grammar selector is further programmed to select a second grammar from among the plurality of grammars based at least in part on the identified one or more topics, wherein the second grammar includes a vocabulary related to the one or more topics; and

the interface is further programmed to output information further identifying the second grammar, and wherein outputting the information further causes the grammar used to analyze the speech input from the mobile computing device to be changed to a plurality of grammars including the first grammar and the second grammar.

49. The computer system of claim 47, wherein the geographic location is identified by the reverse geocoder independent of a current geographic location of the mobile computing device.

50. The computer system of claim 47, wherein the geographic location is identified by the reverse geocoder based on the geographic location occurring at least a threshold number of times in one or more of: i) identifying the search history and associated search results for the one or more search queries previously entered by the user to the mobile computing device, and ii) the content previously requested and displayed on the mobile computing device.

51. The computer system of claim 47, wherein the search results of the search query are aggregated across a set of search results for a plurality of users provided to the one or more search services.

52. The computer system of claim 47, wherein the reverse geocoder is further programmed to identify the geographic location based on a particular portion of the content for which the user expressed at least a threshold level of interest.

53. A computer-implemented method, comprising:

accessing, by a computer system, a search history that identifies one or more search queries previously submitted to one or more search services by one or more computing devices associated with a user;

identifying a geographic location from the user to which future speech input is likely to relate based at least in part on the search queries included in the search history, the geographic location identified independent of a current geographic location of the one or more computing devices;

prior to performing automated speech recognition on speech input from the one or more computing devices, selecting, by the computer system, a first grammar from among a plurality of grammars based at least in part on the geographic location, the geographic location identified based at least in part on the search queries included in the search history, the first grammar including a vocabulary that is relevant to the geographic location identified based at least in part on the search queries included in the search history; and

outputting, by the computer system, information identifying the first grammar, wherein the output information causes a grammar used to analyze subsequently received speech input from the one or more computing devices to be changed to the first grammar.

54. The computer-implemented method of claim 53, wherein the geographic location is identified further based on search results associated with the one or more search queries in the search history.

55. The computer-implemented method of claim 54, wherein the search results of the search query are aggregated across a set of search results provided to a plurality of users by the one or more search services.

56. The computer-implemented method of claim 53, further comprising:

identifying one or more topics likely to be involved in future voice input from the user based at least in part on the search history;

selecting a second grammar from among the plurality of grammars based at least in part on the identified one or more topics, wherein the second grammar includes a vocabulary related to the one or more topics; and

wherein the outputted information further identifies the second grammar and causes the grammar used to analyze the speech input from the mobile computing device to be changed to a plurality of grammars including the first grammar and the second grammar.

57. The computer-implemented method of claim 53, wherein the one or more computing devices comprise a smartphone.

58. The computer-implemented method of claim 53, wherein the geographic location is identified further based on content previously presented on the one or more computing devices.

59. The computer-implemented method of claim 58 wherein the content comprises one or more web pages.

60. The computer-implemented method of claim 58, wherein the content comprises one or more maps.

61. A computer system, comprising:

one or more computing devices;

an interface of the one or more computing devices, the interface programmed to access a search history identifying one or more search queries that were previously submitted to one or more search services by one or more client computing devices associated with a user;

a reverse geocoder installed on the one or more computing devices and programmed to identify a geographic location likely to be involved in future speech input from the user based at least in part on the search queries included in the search history, wherein the geographic location is identified independent of a current geographic location of the one or more client computing devices; and

a grammar index accessible by the one or more computing devices and comprising an index associating a geographic location with a plurality of grammars;

a grammar selector installed on the one or more computing devices and programmed to select a first grammar from among the plurality of grammars based at least in part on the geographic location identified by the reverse geocoder based at least in part on the search queries included in the search history prior to performing automated speech recognition on speech input from the one or more client computing devices, the first grammar including a vocabulary that is related to the geographic location identified based at least in part on the search queries included in the search history; and

wherein the interface is further programmed to output information identifying the first grammar, wherein the output information causes a grammar used to analyze subsequently received speech input from the one or more client computing devices to be changed to the first grammar.

62. The computer system of claim 61, wherein the geographic location is identified further based on search results associated with the one or more search queries in the search history.

63. The computer system of claim 62, wherein the search results of the search query are aggregated across a set of search results provided to a plurality of users by the one or more search services.

64. The computer system of claim 61, wherein:

the one or more computing devices are further programmed to identify one or more topics likely to be involved in future voice input from the user based at least in part on the search history and associated search results, the search history identifying one or more search queries previously input by the user to the one or more client computing devices;

the grammar selector is further programmed to select a second grammar from among the plurality of grammars based at least in part on the identified one or more topics, wherein the second grammar includes a vocabulary related to the one or more topics; and

the interface is further programmed to output information further identifying the second grammar, and wherein outputting the information further causes the grammar used to analyze the speech input from the one or more client computing devices to be changed to a plurality of grammars including the first grammar and the second grammar.

65. The computer system of claim 61, wherein the one or more client computing devices comprise a smartphone.

66. The computer system of claim 61, wherein the geographic location is identified further based on content previously presented on the one or more computing devices.

67. The computer system of claim 66, wherein the content comprises one or more web pages.

68. The computer system of claim 66, wherein the content comprises one or more maps.

Technical Field

This description relates to speech recognition.

Background

Multimodal applications can accept multiple types or modes of input. For example, the multimodal application may accept input from a user such as typing commands and mouse clicks; however, the multimodal application may also accept other forms of input such as speech input. The speech recognition system may use a grammar that includes a particular vocabulary to interpret speech input.

Some multimodal applications implement a form-filling model in which different input fields in the application are associated with different grammars. For example, the multimodal application may associate a "name" grammar of a vocabulary including names with a "name" field of the name of the recipient. When someone selects the "name" field with his or her mouse, the multimodal application can select the "name" grammar associated with that field.

Disclosure of Invention

In general, this document describes selecting a grammar for use in speech recognition, where the grammar is selected based on implicit context (context) information that is based on one or more user behaviors.

In a first general aspect, a computer-implemented method is described. The method includes receiving geographic information derived from non-verbal user behavior associated with a first computing device. The non-verbal user behavior suggests that the user is interested in a geographic location. The method also includes using the retrieved geographic information to identify a grammar associated with the geographic location and outputting a grammar indicator for use in selecting the identified grammar for speech recognition processing of voice input from the user.

In a second general aspect, a computer-implemented method is described that includes receiving contextual information based on a user behavior associated with a computing device, wherein a speech recognition processor does not prompt (unprompted) the user behavior. The method includes deriving a geographic location based on the context information, identifying a grammar associated with the geographic location, and outputting a grammar identifier for use in selecting the grammar to process voice input from the user

In yet another general aspect, a system is described. The system includes an interface that receives context information based on non-verbal user behavior associated with a first computing device. The non-verbal user behavior suggests that the user is interested in geography. The system also includes means for identifying a grammar associated with the geographic location derived from the received contextual information, and a speech recognition server configured to interpret voice input received from the user using the identified grammar.

The systems and techniques described here may provide one or more of the following advantages. First, the system can increase the speed of recognizing a voice input by recognizing an appropriate subset of grammars instead of using a larger, common grammar. Additionally, selecting a subset of grammars may improve the accuracy of speech recognition for a given voice command within a particular context associated with the subset. The system may also reduce the amount of user interaction during speech recognition. Further, additional or new grammars may be selected in a manner that is transparent to the user (e.g., based on user interaction with the software application rather than based on explicit user answers to prompts of the speech recognition system).

The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features and advantages will be apparent from the description and drawings, and from the claims.

Drawings

FIG. 1 is a diagram of an exemplary system for selecting a grammar for use in computer-implemented speech recognition.

FIG. 2 is a diagram of an exemplary client and an exemplary audio processing system for use in selecting a grammar for speech recognition.

Fig. 3 is a flow diagram of an exemplary method for selecting a grammar based on context information.

FIG. 4 shows an exemplary screen shot of a user interface for a client interacting with an audio processing system.

FIG. 5 is a block diagram of a computing device that may be used to implement the described systems and methods.

Like reference symbols in the various drawings indicate like elements.

Detailed Description

This document describes systems and techniques for selecting a grammar to use in speech recognition. More specifically, an application may generate contextual information based on how a user interacts with a device running the application. The device may transmit the context information to a speech recognition system. A speech recognition system can recognize a particular grammar associated with the contextual information and can subsequently use the recognized grammar in audio recognition of voice input received from the device (e.g., a voice command from a user of the device).

In some implementations, the contextual information includes geographic information. If a user views a map using a mobile browser on a cellular telephone, the cellular telephone may communicate information about the geographic location of the map display to a voice recognition system. The speech recognition system may identify the geographic location based on the received information and may select a grammar associated with the geographic location, the grammar including a vocabulary, syntax, or the like of words. The speech recognition system may use the selected grammar to interpret voice input subsequently received from the cellular telephone.

The user may choose to allow a device associated with the user to share contextual information with the speech recognition system (e.g., through a unique identifier, such as a cookie, assigned to the user). If the user does not select to share context information, the speech recognition system may explicitly prompt the user with a default grammar or for geographic or other context information for use in selecting a particular grammar to use in the speech recognition process.

FIG. 1 is a diagram of an exemplary system 100 for selecting a grammar for use in computer-implemented speech recognition. In some implementations, the example system 100 selects a grammar based on implicit context information generated as a result of user behavior. The system 100 includes a client device 102, a grammar selection server 104, and a speech recognition server 106.

In the implementation of fig. 1, the client 102 transmits context information to the grammar selection server 104, which uses the context information to select a grammar. The grammar selection server sends information about the selected grammar to the speech recognition server 106, which uses the selected grammar to interpret audio input received from the client 102.

For example, the client 102 may be a cellular telephone that is running a mobile browser 108. The user may enter a search into the mobile browser to identify businesses that sell "ice houses". The browser may display a map showing relevant businesses located in south, north dakota, and minnesota in canada. The user may have previously entered a location identifier, such as a zip code, that is used by the browser to identify the location for showing on the map. The user may enter the location identifier in a previous session, and the browser may store the identifier for use in a subsequent session (e.g., the location identifier may be stored as a cookie on the client).

In other embodiments, the cell phone runs a dedicated application 108 instead of the mobile browser 108. For example, the dedicated application 108 may not be able to browse web pages, but may be configured to interface with a particular remote application, such as an online mapping application.

A mobile browser or another application running on the cellular telephone 102 may communicate the implicit geographic information 114 to the grammar selection server as indicated by the arrow labeled "1". In some implementations, the contextual information includes implicit geographic information 114 based on a map displayed by the mobile browser 108. For example, the implicit geographic information 114 may include coordinates that identify the center of a displayed map. In this example, the center of the map coincides with a location in the middle of Minnesota.

The grammar selection server 104 can select 116 a grammar based on the received context information. In some implementations, if the context information includes geographic information 114, the grammar selection server can access a data store 110 that identifies grammars 112 associated with geographic locations. A particular grammar can be associated with a particular geographic location.

Each of grammars 112 may include a vocabulary corresponding to a vocabulary associated with a respective geographic location. For example, a grammar associated with minneapolis, minnesota may include words or phrases that describe businesses, points of interest, events, news, etc. that are located in or occur in association with minneapolis.

In fig. 1, the implicit geographic information 114 includes coordinates of a location located in the middle of the state of minnesota. The grammar selection server identifies grammars anchored at or having centers at locations closest to the middle of the state of minnesota. The grammar selection server may generate information 118 identifying the grammar as indicated by the arrows labeled "2A" and "2B".

In some implementations, the grammar selection server 104 then transmits the recognized grammar information 118 to the speech recognition server 106 as indicated by the arrow labeled "3".

The user may speak into the cellular telephone 102 and the cellular telephone 102 communicates the voice input 120 to the speech recognition server 106 as indicated by arrow "4". The speech recognition server 106 can interpret the voice input 120 using the grammar that the grammar selection server 104 has recognized.

The recognition server 106 may perform one or more actions based on the voice input. In some implementations, the speech recognition server 106 can transmit a response back to the cellular telephone 102 based on the voice input as indicated by the arrow labeled "5". For example, a user of cellular telephone 102 may audibly request a new search for "Paul Bunyan". The cellular telephone 102 may transmit the voice search request to the speech recognition server 106. Since the map that the user is currently viewing (or has previously viewed) on the mobile browser 108 is centered around minnesota, the speech recognition server 106 uses a grammar that is anchored at or centered around a location near the center of minnesota. The speech recognition server 106 uses the grammar to search for sounds, words, phrases corresponding to the voice input "Paul Bunyan". In some implementations, since the word "Paul Bunyan" is associated more frequently with information associated with the state of minnesota relative to other portions of the world, the grammar anchored near or within the state of minnesota may include information for interpreting the name "Paul Bunyan".

The speech recognition server 106 may transmit the text "Paul Bunyan" which corresponds to the voice input from the cellular telephone 102. Cellular telephone 102 may display the received text on mobile browser 108. If the user approves the translation performed by the speech recognition server 106, the browser may initiate a new search by submitting the text "Paul Bunyan" as a search term to a search engine. In other implementations, the speech recognition server 106 may initiate the search using the word "Paul Bunyan" without approval from the user of the cellular telephone 102. The speech recognition server 106 may transmit the results from the search to the cellular telephone 102 without previously transmitting text recognized from the voice input.

The labeled arrows of FIG. 1 indicate an exemplary sequence of events occurring in the system 100. However, the occurrence of events is not limited to the sequence shown. For example, one or more steps in the sequence may occur in parallel.

FIG. 2 is a diagram of an exemplary client 200 and an exemplary audio processing system 202 for use in selecting a grammar for speech recognition. The client 200 and the audio processing system 202 may communicate using a network 204, which may include the internet and a cellular network in some implementations. The client 200 may include a cellular telephone or other mobile device 206 that in turn includes an application environment 208. The application environment 208 may include an internet browser 210, a microphone interface 212, and a GPS transceiver interface 214. The audio processing system 202 may include a multimodal server 216 that provides an interface of the audio processing system 202 with the client 200, a grammar selection server 218, and a speech recognition server 220.

An application within the application environment 208 may generate or identify geographic contact information 222 and communicate the information to the multimodal server 216. For example, the GPS transceiver interface 214 may receive GPS coordinates from a GPS transceiver based on the location of the cellular telephone 206. The GPS transceiver interface 214 may communicate GPS coordinate information to the multimodal server 216.

In some embodiments, the GPS coordinate information may be appended as part of a Uniform resource locator (URI) included in a HyperText transfer protocol (HTTP) POST command submitted by the browser 210 to the multimodal server 216. In other implementations using an application other than a browser, the application may generate an HTTP GET command, where the URI in the command includes GPS coordinate information (or other contextual information). In another implementation, the GPS coordinates or other context information is not appended to the URI, but is included as binary information in the body of the HTTP request (e.g., GET or POST).

In another example, browser 210 can transmit geographic context information related to items displayed by browser 210. For example, if a user views a web page that includes multiple mentions of the archipelago of bermuda, the browser 210 may transmit geographic context information that specifies the archipelago of bermuda.

The multimodal server 216 can receive the geographic context information 222 and can forward the information to the grammar selection server 218. Grammar selection server 218 may include a reverse geocoder 224 that identifies locations using geographic context information 222. For example, if the geographic context information 222 includes GPS coordinates, the reverse geocoder 224 can use a stored mapping between the coordinates and geographic locations to determine a location corresponding to the GPS coordinates.

In some implementations, the grammar selection server includes a grammar index 226 that associates particular locations with particular grammars. For example, grammar index 226 associates the location "Bermuda Islands" with a Bermuda grammar that includes the vocabulary, syntax, etc. associated with the location.

The grammar selection server 218 selects a grammar using the grammar index 226 by identifying a grammar associated with the location identified by the reverse geocoder 224. The syntax index may identify each of the syntaxes using the syntax ID.

The grammar selection server 218 can communicate the selected grammar ID 228 to the multimodal server 216, which in turn can forward the grammar ID 228 to the speech recognition system. In other embodiments not shown in FIG. 2, the reverse geocoder 224 can identify and return the grammar associated with the location closest to the identified location, and then communicate the selected grammar ID 228 for that grammar to the multimodal server 216.

The speech recognition system may use the grammar ID to load the recognized grammar for use in subsequent audio processing. For example, the speech recognition server may transmit a request 232 for a grammar to the data store 230, wherein the request 232 includes the grammar ID 228. The data store can return the grammar 234 specified by the grammar ID 232.

The speech recognition server may use the grammar 234 to interpret audio subsequently received from the cellular telephone 206. For example, the user may speak a search term, which is received by a microphone within the cellular telephone 206. The microphone interface 212 can transmit audio 236 from the microphone to the multimodal server 216.

The multimodal server 216 may transmit the audio 236 to the speech recognition server 220, which interprets the audio 236 using an audio decoder 238. For example, audio decoder 238 may load grammar 234 to process audio 236 into a textual representation. For example, the speech recognition server 220 may use the textual representation to initiate a search by a search engine (not shown). In another example, the interpreted audio may be transmitted as text 240 to the multimodal server 216. The multimodal server 216 can transmit the text 240 back to the cellular telephone 206. The cellular telephone 106 may use a browser 210 or another application in the application environment 208 to display text.

In some implementations, the client 200 submits new geographic context information based on the new user interaction. For example, if the user changes location, a GPS transceiver within the cellular telephone 206 may transmit the new GPS coordinates to the multimodal server 216. In another example, a user may view a map associated with a different location. The browser 210 can transmit the new map location to the multimodal server 216. The audio processing system may select a new grammar based on the new geographic context information and interpret the received audio based on the new grammar.

Although the multimodal server 216, grammar selection server 218, and speech recognition server 220 are illustrated as separate devices, the servers may be combined into a single device or a single server may be implemented using multiple devices.

Fig. 3 is a flow diagram of an exemplary method 300 for selecting a grammar based on context information. Systems 200 and 202 are used in an example implementation of method 300. However, other systems, including system 100, may implement method 300.

At step 302, a session is created between the client 200 and the audio processing system 202. For example, the cellular telephone 206 can establish a communication session with the multimodal server 216 (e.g., based on the HTTP protocol). For example, a session may be established when a browser accesses a web interface for a search engine (e.g., a search web page, an interactive map, a social networking site that allows a user to search for profiles hosted on the site, etc.). In another embodiment, the session is established when a particular application is launched on the cellular telephone 206. For example, the session may be initiated when a private map program is launched on the cellular telephone 206.

At optional step 304, a user ID is received. For example, the cellular telephone 206 may include a mobile browser that stores cookies within the memory of the cellular telephone. The Cookie may include an identifier that identifies the user of the cellular telephone. The audio processing system 202 may have previously communicated the user ID to the browser in response to a previous interaction of the mobile browser with the audio processing system 202 or another server that the audio processing system 202 may access. For example, a user may access a web page that includes an interface for a search engine. The search engine may publish the unique identifier to the user. The audio processing system 202 may access a list of identifiers stored by the search engine.

At step 306, context information is received. For example, the multimodal server 216 receives geographic context information, such as GPS coordinates specifying the current location of the mobile device 206.

In some implementations, the multimodal server 216 can receive other contextual information, such as application-specific contextual information. The client 202 may communicate information specifying which application the user accesses. For example, the information may specify that the user is interacting with a browser application. Further, the information may include a history of past navigation or other behavior previously performed by the user of the application. For example, the contextual information may specify that the user has requested a map by specifying a zip code, zoomed out on a given map, navigated approximately 200 miles west on a map, requested a satellite view of a map, requested a point of interest displayed on a map, and so forth.

In another implementation, multimodal server 216 may receive contextual information related to items displayed by an application running on client 200, which client 200 may be a desktop. For example, a user may view a portal page that includes several types of content, such as financial news content, entertainment news content, technical news content, and so forth. If the user's cursor hovers over financial news content, the computing device may extract information from the area surrounding the cursor (e.g., text within a certain radius of the center of the cursor may be extracted). Some or all of the extracted information may be included in the context information transmitted to the multimodal server.

At step 308, a grammar is selected based on the received context information. For example, grammar selection server 218 may select a grammar for a financial vocabulary included in the received context information indicating that the user's mouse is hovering over content on a web page describing financial information. More specifically, a classification module (not shown) within the grammar selection server 218 may classify the extracted content. Grammar selection server 218 may match one or more keywords resulting from the classification of the extracted content with keywords associated with grammars by grammar index 226.

In another example, grammar selection server 218 may select a grammar associated with a particular geography, where the particular geography corresponds to GPS coordinates indicating a current location of cellular telephone 206.

In yet another example, if the received context information specifies that the user is interacting with a particular application, grammar selection server 218 may select a grammar that includes an application-specific vocabulary. For example, if a user is interacting with a calendar application (e.g., resident on client 200 or hosted and accessed via browser 210), grammar selection server 218 may select a grammar that includes calendar-specific vocabularies and calendar-specific grammar rules.

Grammar selection server 218 may also use the received user ID to select a grammar. In some implementations, the grammar can be constructed based on a user's past Web search history. For example, if a user frequently performs past web search queries associated with archaeology, a grammar creator (not shown) may construct a personalized grammar for the user that includes a vocabulary, syntax, etc. associated with archaeology.

In some implementations, more than one grammar can be selected using one or more types of context information. For example, context information derived from a user viewed item may be associated with two or more grammars. In this case, the grammar selection server may select a plurality of grammars for use in speech recognition.

At step 310, audio may be received. For example, a user of device 206 may speak into a microphone of device 206. The microphone interface 212 may transmit speech captured by the microphone to the speech recognition server 220.

At step 312, the received audio may be interpreted using the previously selected grammar. For example, the speech recognition server 220 may access a data structure storing grammars to select a grammar recognized by the grammar selection server 218. The audio decoder 238 may interpret the received audio using the selected syntax.

At step 314, it is determined whether the session has timed out. For example, the session established between the client 200 and the audio processing system 220 at step 302 may have a time limit. If the time limit is exceeded, the method 300 may end. In another embodiment, if the session times out, the audio processing system 202 prompts the client 200 to establish a new session. In some implementations, limiting the session time may prevent the client from monopolizing the audio processing system, especially when the client is inactive for a long time.

At step 316, it is determined whether the context has changed. For example, the user may change locations. If the user moves to a new location, the GPS transceiver may update the GPS coordinates in response to reflecting the new location. New context information may be received and processed as previously described in association with step 306 and subsequent steps. In another example, a user may access different applications or use the same application to view different data. A change in application or use of an application may initiate the transfer of new context information.

If the context information has not changed, the method 300 may repeat the steps beginning with step 310. For example, the audio processing system 202 may continue to interpret any received audio using the previously selected grammar.

Fig. 4 shows an exemplary screen shot of a user interface for a client to interact with an audio processing system that selects a grammar based on context information. Screenshot 400 includes a map 402. A user may enable a browser on a client and log into a browser such as a GOOGLE map or YAHOO! An online interactive map service of maps. The user may specify the location to the map by entering a zip code, area code, city, and state or other location identifier. For example, the user may enter a zip code 95661. The mapping service may then transmit the corresponding map of Rosevill, Calif. for display on a browser.

The browser (or web page displayed by the browser) may present a search options window 404. The user may interact with the search options window 404 to initiate a search for businesses, points of interest, locations, etc., and the results may be displayed on the map 402. Search options window 404 may accept an "entered" search as indicated by option 406. For example, the user may select option 406 using a keypad. Alternatively, the user may say that the selection "enter new search". The user may then enter a search via the keypad.

The search options window may also accept spoken language searches as indicated by option 408. For example, the user may select option 408 using a keypad or by speaking a selection.

Screenshot 410 shows an exemplary interface displayed after the user selects option 408 indicating that the user desires to speak a new search. In this example, the client visually prompts the user to speak the type of business or business name. FIG. 412 illustrates a user speaking the search term "Fry's".

In other implementations, the client may prompt the user to speak other words such as points of interest, geographic locations, and the like.

In yet other implementations, the user is not visually prompted to speak the search, but the user may initiate the search on their own. For example, the browser may display a web page displaying technical news. The user may say "search AJAX". In yet other implementations, the client may audibly prompt the user to enter or speak a search or other voice input.

In another embodiment, the user may press a key on the device, such as the "answer call" key on a cellular telephone, to indicate that the user intends to initiate a voice search. The user may hold the key while speaking, or initiate a search by holding the key for a predetermined length of time. In the latter embodiment, the voice search may terminate after a predetermined amount of time has elapsed without detection of a voice signal.

Although not indicated in the previous screen shot, the client may transmit geographic information related to the map 402 displayed by the client. The audio processing system may select a grammar associated with the geographic information for use in interpreting audio received in response to the prompt displayed in screenshot 410.

Screenshot 416 shows interpreted audio based on the spoken search term "Fry's". The user may select one of the possible interpretations using a keypad or by speaking, for example, a number associated with each of the interpretations. Screenshot 418 shows a map 402 of Rosevill, Calif. along with a pin icon 420 identifying the location of the Fry's electronic store.

FIG. 5 is a block diagram of computing devices 500, 550 that may be used to implement the systems and methods described in this document, either as a client or as a server or servers. Computing device 500 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Computing device 550 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, and other similar computing devices. Additionally, computing device 500 or 550 may include a Universal Serial Bus (USB) flash drive. The USB flash drive may store an operating system and other applications. The USB flash drive may include input/output components, such as a wireless transmitter or a USB connector that may be plugged into a USB port of another computing device. The components shown herein, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document.

Computing device 500 includes a processor 502, memory 504, a storage device 506, a high-speed interface 508 connecting to memory 504 and high-speed expansion ports 510, and a low-speed interface 512 connecting to low-speed bus 514 and storage device 506. Each of the components 502, 504, 506, 508, 510, and 512, are interconnected using various buses, and may be mounted on a common motherboard or in other manners as appropriate. The processor 502 can process instructions for execution within the computing device 500, including instructions stored in the memory 504 or on the storage device 506 to display graphical information for a GUI on an external input/output device, such as display 516 coupled to high speed interface 508. In other embodiments, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices 500 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).

The memory 504 stores information within the computing device 500. In one implementation, the memory 504 is a volatile memory unit or units. In another implementation, the memory 504 is a non-volatile memory unit or units. The memory 504 may also be another form of computer-readable medium, such as a magnetic or optical disk.

The storage device 506 is capable of providing mass storage for the computing device 500. In one implementation, the storage device 506 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. The computer program product may be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer-or machine-readable medium, such as the memory 504, the storage device 506, memory on processor 502, or a propagated signal.

The high speed controller 508 manages bandwidth-intensive operations for the computing device 500, while the low speed controller 512 manages lower bandwidth-intensive operations. Such allocation of responsibilities is exemplary only. In one embodiment, the high-speed controller 508 is coupled to memory 504, display 516 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 510, which may accept various expansion cards (not shown). In this embodiment, low-speed controller 512 is coupled to storage device 506 and low-speed expansion port 514. The low-speed expansion port, which may include various communication ports (e.g., USB, bluetooth, ethernet, wireless ethernet), may be coupled to one or more input/output devices such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, for example, through a network adapter.

Computing device 500 may be implemented in a number of different forms, as shown in the figure. For example, computing device 500 may be implemented as a standard server 520 or more times in a group of such servers. The computing device 500 may also be implemented as part of a rack server system 524. Additionally, computing device 500 may be implemented in a personal computer such as laptop computer 522. Alternatively, components from computing device 500 may be combined with other components in a mobile device (not shown), such as device 550. Each of such devices may contain one or more of computing device 500, 550, and an entire system may be made up of multiple computing devices 500, 550 communicating with each other.

Computing device 550 includes a processor 552, memory 564, an input/output device such as a display 554, a communication interface 566, and a transceiver 568, among other components. The device 550 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of the components 550, 552, 564, 554, 566, and 568, are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.

The processor 552 can execute instructions within the computing device 550, including instructions stored in the memory 564. The processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors. Additionally, a processor may be implemented using any of a number of architectures. For example, the processor 410 may be a CISC (Complex instruction set computer) processor, RISC (reduced instruction set computer) processor, or MISC (minimal instruction set computer) processor. The processor may provide, for example, for coordination of the other components of the device 550, such as control of user interfaces, applications run by device 550, and wireless communication by device 550.

Processor 552 may communicate with a user through control interface 558 and display interface 556 coupled to a display 554. The display 554 may be, for example, a TFT (thin film transistor liquid crystal display) display or an OLED (organic light emitting diode) display or other suitable display technology. The display interface 556 may comprise appropriate circuitry for driving the display 554 to present graphical and other information to a user. The control interface 558 may receive commands from a user and convert the commands for submission to the processor 552. In addition, an external interface 562 may be provided in communication with processor 552, so as to enable near area communication of device 550 with other devices. External interface 562 may provide, for example, for wired communication in some embodiments, or for wireless communication in other embodiments, and multiple interfaces may also be used.

The memory 564 stores information within the computing device 550. The memory 564 can be implemented as one or more of a computer-readable medium, volatile memory units, or nonvolatile memory units. Expansion memory 574 may also be provided and connected to device 550 through expansion interface 572, which may include, for example, a SIMM (Single in line memory Module) card interface. Such expansion memory 574 may provide additional storage space for device 550, or may also store applications or other information for device 550. Specifically, expansion memory 574 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, expansion memory 574 may be provided, for example, as a security module for device 550, and may be programmed with instructions that permit secure use of device 550. In addition, secure applications as well as additional information may be provided via the SIMM card, such as placing identifying information on the SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory, as described below. In one embodiment, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer-or machine-readable medium, such as the memory 564, expansion memory 574, memory on processor 552, or a propagated signal that may be received, for example, over transceiver 568 or external interface 562.

Device 550 may communicate wirelessly through communication interface 566, which may include digital signal processing circuitry, if desired. Communication interface 566 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 568. In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (global positioning system) receiver module 570 may provide additional navigation-and location-related wireless data to device 550, which may be used as appropriate by applications running on device 550.

Device 550 may also communicate audibly using audio codec 560, and audio codec 560 may receive spoken information from a user and convert it to usable digital information. Likewise, audio codec 560 may generate audible sound for a user, such as through a speaker, e.g., in a handset of device 550. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 550.

Computing device 550 may be implemented in a number of different forms as shown in the figure. For example, computing device 550 may be implemented as a cellular telephone 580. The computing device 550 may also be implemented as part of a smartphone 582, personal digital assistant, or other similar mobile device.

Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.

These computer programs (also known as programs, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms "machine-readable medium," "computer-readable medium" refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other types of devices may also be used to provide for interaction with a user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), peer-to-peer networks (with ad hoc or static members), grid computing infrastructure, and the internet.

The computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

Although some embodiments are described in detail above, other modifications are possible. For example, geographic information for selecting a geographic location may be retrieved based on text viewed by the user. For example, a user may access a website describing the state of great oklahoma. The Web browser (or other application) may transmit geographic information indicating that the user is interested in oklahoma. In some implementations, the web browser (or other application) only transmits geographic information if a threshold number of words related to oklahoma occur.

In another embodiment, the geographic information used to select the geographic location is based on text entered by the user. For example, a user may enter search terms such as "wildfire" and "California" into a search engine interface. The grammar selector may also associate these with words to identify particular locations within california. For example, recent search results from a search engine user's cluster may indicate that the results generally include mentions in san diego, california. The grammar selector may identify grammars anchored near san diego based on recent search results.

Additionally, while the current location of the locating device is described with respect to GPS capabilities within a cellular telephone or other portable device, other location-based detection systems may be used. For example, the location of the mobile device may also be determined via a cell of origin (COO) mobile location technique, a time difference of arrival (TDOA) signal detection technique, a time of arrival (TOA) technique, an angle of arrival (AoA) measurement technique, an Enhanced Observed Time Difference (EOTD) technique, and/or the like.

In other implementations, the grammar creator can edit a personalized grammar for a user based on emails sent or received by the user. The grammar selection server may select a personalized grammar to use based on the user ID received from the client.

In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:中控及智能设备控制方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!