Method and apparatus for selective distributed speech recognition

A method and apparatus for selective distributed speech recognition includes an embedded speech recognition engine (104) and a dialog manager (102), such as a browser, coupled to the embedded speech recognition engine (104). The method and apparatus further includes the dialog manager (102) being operably couple able to at least one external speech recognition engine (106), such as a WLAN speech recognition engine (108) or a network speech recognition engine (110). The method and apparatus further includes preference information (114), environment information (112) and a speech input (116) all provided to the dialog manager (102). The dialog manager (102), in response to the preference information (114) and the environment information (112), provides the speech input (116) to the embedded speech recognition engine (104), the WLAN speech recognition engine (108) or the network speech recognition engine (110).

BACKGROUND OF THE INVENTION

The invention relates generally to speech recognition, and more specifically, to distributed speech recognition between a wireless device, a communication server, and a wireless local area network.

With the growth of speech recognition capabilities, there is a corresponding increase in the number of applications and uses for speech recognition. Different types of speech recognition applications and systems have been developed, based upon the location of the speech recognition engine with respect to the user. One such example is an embedded speech recognition engine, otherwise known as a local speech recognition engine, such as SpeechToGo speech recognition engine sold by SpeechWorks International, Inc., 695 Atlantic Avenue, Boston, Mass. 02111. Another type of speech recognition engine is a network-based speech recognition engine, such as SpeechWorks 6, as sold by SpeechWorks International, Inc., 695 Atlantic Avenue, Boston, Mass. 02111.

Embedded or local speech recognition engines provide the added benefit of speed in recognizing a speech input, wherein a speech input includes any type of audible or audio-based input. One of the drawbacks of embedded or local speech recognition engines is that these engines typically contain a limited vocabulary. Due to memory limitations and system processing requirements, in conjunction with power consumption limitations, embedded or local speech recognition engines are limited to providing recognition to only a fraction of the speech inputs which would be recognizable by a network-based speech recognition engine.

Network-based speech recognition engines provide the added benefit of an increased vocabulary, based on the elimination of memory and processing restrictions. Although a downside is the added latency between when a user provides a speech input and when the speech input may be recognized, and furthermore provided back to the end user for confirmation of recognition. In a typical speech recognition system, the user provides the speech input and the speech input is thereupon provided to a server across a communication path, whereupon it may then be recognized. Extra latency is incurred in not only transmitting the speech input to the network-based speech recognition engine, but also transmitting the recognized speech input, or N-best list back to the user.

Moreover, with the growth of wireless local area networks (WLAN), such as Bluetooth or IEEE802.11 family of networks, there is an increased demand in providing a user the ability to utilize the WLAN and services disposed thereon, as opposed to services which may be accessible through a standard cellular network connection. WLANs provide, among other things, the benefit of improved communication speed through the increased amount of available bandwidth for transmitting information.

One current drawback to speech recognition are limitations of recognition caused by factors, such as, an individual user's speech patterns, external noise, transmission noise, vocabulary coverage of the speech recognition system, or speech input beyond a recognition engine's capabilities. It is possible to provide a speech recognition engine which is adaptable or predisposed to a specific type of interference, such as excess noise. For example, a speech recognition engine may be preprogrammed to attempt to recognize speech input where the speech input is provided in a noisy environment, such as an airport. Thereupon, a user may provide the speech input while within an airport and if the speech input is provided to the specific speech recognition engine, the speech recognition engine may have a higher probability of correctly recognizing the specific term, based on an expected noise factor, typically background noise associated with an airport or an echoing or hollowing effect, which may be generated by the openness of terminal hallways.

Furthermore, simply because a WLAN may provide a specific service, an end user may not necessarily wish to utilize the specific service, for example, a user may have a subscription agreement with a cellular service provider and may incur further toll charges for utilizing a WLAN, therefore the user may wish to avoid excess charges and use the services already within the user's subscription agreement.

DETAILED DESCRIPTION

Briefly, a method and apparatus for selective distributed speech recognition includes receiving a speech input, wherein the speech input is any type of audio or audible input, typically provided by an end user that is to be recognized using a speech recognition engine and typically an action is thereupon to be performed in response to the recognized speech input. The method and apparatus further includes receiving preference information, wherein the preference information includes any type of information or preference directed to how and/or where speech input may be distributed. The method and apparatus also includes receiving environment information, wherein the environment information includes information that describes the particular environment within which the speech recognition may be performed. For example, environment information may include timing information which indicates the exact time upon which the speech recognition may be selectively distributed, such as wherein a WLAN or a cellular network may provide variant pricing structures based on time of day (e.g. peak and off-peak hours).

The method and apparatus includes providing the speech input to a first speech recognition engine, such as an embedded speech recognition engine, or one of a plurality of second speech recognition engines, such as external speech recognition engines, more specifically, for example, a WLAN speech recognition engine or a network speech recognition engine. The WLAN speech recognition engine may be disposed within a WLAN and the network speech recognition engine may be disposed within or in communication with a cellular network.

The method and apparatus includes providing the speech input to the selected speech recognition engine based on the preference information and the environment information, wherein a wireless device selectively distributes speech input to one of multiple speech recognition engines based on preference information in response to environment information. A wireless device may be any device capable of receiving communication from a wireless or non-wireless device or network, a server or other communication network. The wireless device includes, but is not limited to, a cellular phone, a laptop computer, a desktop computer, a personal digital assistant (PDA), a pager, a smart phone, or any other suitable device to receive communication, as recognized by one having ordinary skill in the art.

FIG. 1illustrates a wireless device100that includes a dialog manager102, such as a VoiceXML, SALT and XHTML or other such browser, and an embedded speech recognition engine104. The dialog manager102is operably coupleable to external speech recognition engines106, more specifically a WLAN speech recognition engine108and a network speech recognition engine110. In one embodiment, the dialog manager102receives environment information112, typically provided from a WLAN (not shown). The dialog manager102also receives preference information114, wherein the preference information may be provided from a memory device (not shown) disposed within the wireless device100.

The dialog manager receives a speech input116and thereupon provides the speech input to either the embedded speech recognition engine104, the WLAN speech recognition engine108or the network speech recognition engine110in response to the environment information112and the preference information114. As discussed below, the preference information typically includes conditions and the environment information includes factors, whereupon if specific conditions within the preference information114are satisfied, by a comparison with the environment information112, a specific speech recognition engine may be selected.

If, in response to the environment information112and preference information114, the embedded speech recognition engine104is selected for distribution of the speech input116, the speech input is provided across communication path118, which may be an internal connection within the wireless device100. If the WLAN speech recognition engine108is selected, the dialog manager102provides the speech input116to the WLAN speech recognition engine108across communication path120, which may be across a WLAN, through a WLAN access point (not shown). Furthermore, if the network speech recognition engine110is selected, the dialog manager102may provide the speech input116to the network speech recognition engine110across communication path122, which may include across a cellular network (not shown) and further across a communication network, such as an internet, an intranet, a proprietary network, or any other suitable interconnection of servers or network computers that provide communication access to the network speech recognition engine110.

FIG. 2illustrates a flowchart representing the steps of the method for distributed speech recognition. The method begins130by receiving a speech input, step132. As discussed above, the speech input is provided to the dialog manager102, but as recognized by one having ordinary skill in the art, the wireless device may further include an audio receiver and the speech input is provided from the audio receiver to the dialog manager102. The next step, step134, includes receiving preference information, as discussed above with respect toFIG. 1, preference information114may be provided from a memory device disposed within the wireless device100.

Thereupon, the method further includes receiving environment information, step136. The environment information112may be provided from the WLAN, but in another embodiment, the environment information may also be provided from alternative sources, such as a GPS receiver (not shown) which provides location information or a cellular network which may provide timing information or toll information. The audio receiver142may be any typical audio receiving device, such as a microphone, and generates the speech input116in accordance with known audio encoding techniques such that the speech input may be recognized by a speech recognition engine. Thus, the method includes providing the speech input to either a first speech recognition engine or a second speech recognition engine based on the preference information and the environment information, step138. As discussed above with respect toFIG. 1, the first speech recognition engine may be embedded within the wireless device100, such as the embedded speech recognition engine104and the second speech recognition engine may be disposed externally, such as the WLAN speech recognition engine108and/or the network speech recognition engine110. Thereupon, one embodiment of the method is complete, step140.

In an alternative embodiment, the dialog manager102may provide feedback information to be stored within the memory device150. The feedback information may be directed to reliability and quality of service based upon previous speech recognitions conducted by the WLAN speech recognition engine108. For example, the memory device150may store information relating to a particular WLAN speech recognition engine, such as a manufacturing type of speech recognition engine, a specific location speech recognition engine or other variant factors which are directed to quality of service. Thereupon, this quality of service information may be included within the preference information114which is provided to the dialog manager102and utilized by the dialog manager102in determining to which speech recognition engine the speech input116is provided.

FIG. 3illustrates another example of the apparatus for selective distributed speech recognition including the wireless device100and a dialog manager102and the embedded speech recognition engine104disposed therein. The wireless device also includes an audio receiver142coupled to the dialog manager102, wherein the audio receiver142provides the speech input116to the dialog manager102. The audio receiver142receives an audio input144, typically from an end user. The dialog manager102is operably coupled to a transmitter/receiver146coupled to an antenna148, which provides for wireless communication.

The wireless device100further includes a memory device150, which in one embodiment includes a processor152and a memory154, wherein the memory154provides executable instructions156to the processor152. In another embodiment, the memory device150may further include any type of memory storing the preference information therein. The processor152may be, but not limited to, a single processor, a plurality of processors, a DSP, a microprocessor, ASIC, state machine, or any other implementation capable of processing or executing software or discrete logic or any suitable combination of hardware, software and/or firmware. The term processor should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include DSP hardware, ROM for storing software, RAM, and any other volatile or non-volatile storage medium. The memory154may be, but not limited to, a single memory, a plurality of memory locations, shared memory, CD, DVD, ROM, RAM, EEPROM, optical storage, or any other non-volatile storage capable of storing digital data for use by the processor152.

The wireless device100further includes an output device158, wherein the output device may be a speaker for audio output, a display or monitor for video output, or any other suitable interface for providing an output, as recognized by one having ordinary skill in the art. Output device158receives an output signal160from the dialog manager102.

The wireless device100may be in wireless communication with a wireless local area network162across communication path164, through the transmitter/receiver146and the antenna148. The WLAN162includes a WLAN access point166, a WLAN server168, wherein the WLAN access point166is in communication with the WLAN server168across communication path170and the WLAN server is in communication with the WLAN speech recognition engine108across communication path172.

The wireless device100may further be in communication with a cellular network174across communication path176, via the transmitter/receiver146and the antenna148. The cellular network may be in communication with a communication network178, wherein the communication network178may be a wireless area network, a wireless local area network, a cellular communication network, or any other suitable network for providing communication information between the wireless device100and a communication server180. The cellular network174is in communication with the communication server180and the network speech recognition engine110via communication path182, which may be a wired or wireless communication path. Furthermore, within the communication network178, the communication server180may be in communication with the network speech recognition engine110via communication path184.

FIG. 4illustrates an alternative embodiment of the dialog manager102, having a processor186operably coupled to a memory188for storing executable instructions190therein. The processor186receives the speech input116, the preference information114and the environment information112. In response thereto, the processor186, upon executing the executable instructions190, generates a routing signal192which provides for the direction of the speech input116. In an alternative embodiment, the processor186may not receive the speech input116, but rather only receive the environment information112and the preference information114. In this alternative embodiment, the routing information192may be provided to a router (not shown) which receives the speech input116and routes the speech information116to the designated speech recognition engine, such as104,108or110.

The executable instructions190provide for the processor186to perform comparison tests of environment information112with preference information114. In one embodiment, the preference information includes an if, then command and the environment information112provides conditions for the if statements within the preference information114. The executable instructions190allow the processor186to conduct conditional comparisons of various factors and thereupon provide for the specific routing of the speech input116to a preferred, through comparison of the preference information114with the environment information112, speech recognition engine.

The processor186may be, but not limited to, a single processor, a plurality of processors, a DSP, a microprocessor, ASIC, a state machine, or any other implementation capable of processing and executing software or discrete logic or any suitable combination of hardware, software and/or firmware. The term processor should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include DSP hardware, ROM for storing software, RAM, and any other volatile or non-volatile storage medium. The memory188may be, but not limited to, a single memory, a plurality of memory locations, a shared memory, CD, DVD, ROM, RAM, EEPROM, optical storage, or any other non-volatile storage capable of storing digital data for use by the processor186.

FIG. 5illustrates the steps of a flowchart of the method for selective distributed speech recognition, in accordance with the apparatus ofFIG. 3. The method begins200by receiving a speech input in a wireless device from an end user, step202. As illustrated, an audio input144is provided to the audio receiver142which thereupon provides the speech input116to the dialog manager102, within the wireless device100. The method includes receiving preference information from a memory device disposed within the wireless device, wherein the preference information may include a pricing preference, a time preference, a quality of service preference, a language preference and a system availability preference, step134.

Within the wireless device100, the memory device150provides the preference information114to the dialog manager102. The pricing preference may be an indication that a user may prefer to avoid using a particular network or a particular speech recognition engine, based upon a specific price preference, for example, having a toll charge above a specific dollar amount. A time preference may indicate a user's preference to select a network or a speech recognition engine based upon the specific time in which the communication or speech recognition may occur, for example, a user may have a greater quantity of available minutes after a specific time, therefore a time preference may indicate preference, for example, for the cellular network174after peak hours and the WLAN162during peak hours. A quality of service preference may indicate a reliability requirement that the user or the wireless device prefers with respect to communication with or speech recognition from the cellular network or the WLAN162. For example, the WLAN162may provide a reliability indicator and the dialog manager102may determine whether to provide communication for speech recognition based on the stated reliability of the WLAN162or the WLAN speech recognition engine108. A language preference may indicate a preference that the user wishes for specific speech recognition, including, but not limited to, a regional dialect, colloquialisms, a specific language (e.g. English, French, Spanish), vocabulary coverage, ethnic speech patterns, or other linguistic aspects.

A system availability preference may provide an indication that the user or communication device has a preference for a system with a predefined level of availability, for example, a minimum amount of available bandwidth for the transmission of speech to be recognized. As recognized by one having ordinary skill in the art, preference information may include further preferences designated by the wireless device100for the interpretation and determination of optimizing distributed speech recognition and the above provided list is for illustration purposes only and not meant to be so limiting herein.

The next step, step206, includes receiving environment information from a wireless local area network profile transmitted by a wireless local area network, wherein the environment information may include location information, time information, quality of service information, price information, system availability information and language information. The location information may include, but not limited to, information relating to a specific location within which the WLAN162may be disposed. For example, if the WLAN162is disposed within an airport, the environment information may provide an indication of the location being within an airport or may provide further information such as a city, state, zip code, area code or a general global positioning system location. Time information may include information such as the current time in which the WLAN profile is transmitted, restrictions and toll information based on time, such as peak and off-peak hours for communication, which may directly affect toll charges. Quality of service information may be directed to the level of quality that the WLAN162or the WLAN speech recognition engine108may be able to provide to the wireless device, such as a indication of the abilities of the WLAN speech recognition engine108, or a reliability factor, such as an average confidence value output provided from recognized terms generated by the WLAN speech recognition engine108. Price information may include information to the toll charges or accepted subscription agreements that may exist between different communication network178carriers and WLAN network162providers. System availability information may be directed to information related to the availability of the system at the given time of the generation of the wireless local area network profile, including bandwidth availability, or other pertinent information for determining the availability of effectively utilizing the WLAN162and/or the WLAN speech recognition engine108. Language information may include information directed to the different types of language that the WLAN speech recognition engine108is capable of recognizing, such as specific dialects, specific languages (e.g. English, French, Spanish), vocabulary coverage, accents, or other linguistic aspects.

Thereupon, the method includes providing the speech command to either an embedded speech recognition engine, a network speech recognition engine, or a wireless local area network speech recognition engine based on the preference information and the environment information, step208. If the dialog manager102, in response to the comparison of specific preference information to environment information, selects the embedded speech recognition104, the speech input116is provided via communication path118. If the dialog manager102selects the WLAN speech recognition engine108, the speech input is provided via the transmitter/receiver146through the antenna148across communication path164to the access point166. Within the WLAN162, the speech input is thereupon provided to the WLAN speech recognition engine108. As recognized by one having ordinary skill in the art, the speech input may be directed directly to the WLAN speech recognition engine108, bypassing the WLAN server168. Furthermore, if it is determined that the WLAN speech recognition engine108and the embedded speech recognition engine104are not to be used, the dialog manager102may, in one embodiment, default to the network speech recognition108which is provided via the communication path176through the cellular network174.

The next step,210, includes receiving at least one recognized term from the selected speech recognition engine. For example, if the WLAN speech recognition engine108is selected, the engine108generates a recognized term, or in another embodiment, generates an n-best list of recognized terms, and provides the at least one recognized term back to the wireless device100via communication path164, through the access point166, across the antenna148. The transmitter/receiver146may provide the at least one recognized term to the dialog manager102, via communication186. In one embodiment, the next step of the method for distributed speech recognition includes providing the at least one recognized term to an output device, step212. The dialog manager102provides the at least one recognized term to the output device158, wherein a user may readily ascertain the recognized term or n-best list of terms from the output device. For example, if the output device158is a screen, the screen may display the list of recognized terms, if there is more than one term, or the recognized term if there is only one recognized term.

A final step, step214, includes receiving a final confirmation of the correct recognized term of the at least one recognized term provided on the output. In one embodiment, the user may provide confirmation via an audio receiver142or may provide it via a toggle switch or keyboard (not shown), wherein the dialog manager102receives the final confirmation. As such, select distributed speech recognition is generated based on the wireless device100comparing at least one preference information with at least one environment information provided from the WLAN162and a proper speech recognition is thereupon selected in response thereto, step216.

FIG. 6illustrates the steps of a method of an example of distributed speech recognition. The method begins, step220, when the wireless device receives a pricing preference indicating that if the WLAN162charges more than X using the WLAN speech recognition engine108, that the dialog manager should choose a different speech recognition engine, step222. Next, step224, the dialog manager102receives pricing information, within the environment information, a part of the WLAN profile, indicating that the WLAN162charges Y per minute for usage of the WLAN speech recognition engine108.

The dialog manager102thereupon compares the pricing preference with the pricing information, step226. Illustrated at decision block228, if the charge X is greater than the charge Y, the dialog manager provides a speech input to the WLAN speech recognition engine108, indicating that the cost for using the WLAN speech recognition engine108is within an acceptable price range. Also indicated at decision block228, if X is not greater than Y, the dialog manager102chooses between the embedded speech recognition engine104and the network speech recognition engine110. In one embodiment, the network speech recognition engine110may be the default speech recognition engine and only when further factors provide, the embedded speech recognition engine104may be utilized, such as the speech input being within the speech recognition capabilities of the embedded speech recognition engine104. Thereupon, the dialog manager102provides the speech input to the selected embedded speech recognition engine104or the selected network speech recognition engine110, based on the selection within step232.

As discussed above with respect toFIG. 5, once the speech input has been recognized by a chosen speech recognition engine, the dialog manager receives at least one recognized term from the selected speech recognition engine, step236. Thereupon, the dialog manager may provide the at least one recognized term to the output device158, step238. Whereupon, step240, the dialog manager may receive confirmation of a correct recognized term. As such, the method is complete step242.

FIG. 7illustrates an alternative embodiment of a wireless device100having a router250disposed within the wireless device100and coupled to the dialog manager102. While this device100includes the embedded speech recognition engine104, the output device158, the memory device150and the audio receiver142. In this embodiment, the dialog manager102receives the performance information114from the memory device150and the environments information112from the transmitter/receiver146through the antenna148from the WLAN162.

The dialog manager102, as discussed above, based on the preference information114and the environment information112generates a routing signal252which is provided to the router250. The router250, receives the speech input116and routes the speech input116to the appropriate speech recognition engine, such as108,110, or104based on the routing signal252. If either the WLAN speech recognition engine108or the network speech recognition engine110is selected, the router provides the speech input via communication path254and if the embedded speech recognition engine104selected, the router250provides the speech input116via communication path256. In this alternative embodiment, the dialog manager never receives the speech input116, the speech input116is directly provided to the router250which is thereupon provided to the selected speech recognition engine.

It should be understood that there exists implementations of other variations and modifications and the invention and its various aspects, as may be readily apparent to those of ordinary skill in the art, and that the invention is not limited by the specific embodiments described herein. For example, the network speech recognition engine110and the WLAN speech recognition engine108may further be accessible across alternative networks, such as through the cellular network174and across intercommunication paths within the communication network178, a speech input may be eventually provided to the WLAN speech recognition engine108through internal routing. The transmission of the speech input through the WLAN access point166may provide for higher bandwidth availability and quicker access to the WLAN speech recognition engine, but as recognized by one having ordinary skill in the art, beyond the cellular network174, the communication network178may be able to be in communication with the wireless local area network162via other network connections, such as an internet routing connection. It is therefore contemplated and covered by the present invention, any and all modifications, variations, or equivalence that fall within the spirit and scope of the basic underlying principals disclosed and claimed herein.