The system may be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts throughout the different views.
An adaptive post-recognition system is capable of adapting to words, phrases, and/or sentences. The system may edit speech recognized from an audio signal or modify a recognition score associated with recognized speech. Some post-recognition systems edit or modify data in real time or near real time through interactions. Other post-recognition systems edit or modify data through user correction, or a combination of user correction and user interaction in real time or near real time. The post-recognition system may interface speaker-dependent and/or speaker-independent automatic speech recognition systems (SRS).
The adaptive post-recognition system 104 comprises software and/or hardware that is coupled to or is a unitary part of the speech recognition engine 102. The adaptive post-recognition system 104 analyzes the recognized speech data in view of available contextual objects and determines whether to modify some or all of the recognized speech data. When modification is warranted, the adaptive post-recognition processor 104 may alter a score associated with a textual string, the textual string, and/or other data fields to generate modified recognized speech data.
The interpreter 106 receives the modified recognized speech data, and converts the data into a form that may be processed by second tier software and/or hardware. In some adaptive automatic speech recognition systems 100, the interpreter 106 may be a parser. The dialog manager 108 may receive the data output from the interpreter 106 and may interpret the data to provide a control and/or input signal to one or more linked devices or applications. Additionally, the dialog manager 108 may provide response feedback data to the adaptive post-recognition system 104 and/or the speech recognition engine 102. The response feedback data may be stored in an external and/or internal volatile or non-volatile memory and may comprise an acceptance level of a modified textual string. In some adaptive automatic speech recognition systems 100, the response feedback may comprise data indicating an affirmative acceptance (e.g., yes, correct, continue, proceed, etc.) or a negative acceptance (e.g., no, incorrect, stop, redo, cancel, etc.).
The post-recognition processor 204 may apply one or more application rules to the recognized speech data and one or more contextual objects. Based on the results of the applied application rules, the post-recognition processor 204 may generate modified recognition speech data. The modified recognition speech data may comprise scores, modified scores, recognized text strings, modified recognized text strings, and/or other data fields that convey meaning to internal or ancillary hardware and/or other software. In some adaptive post-recognition systems 104, the modified recognition speech data may be presented as an n-best list. The modified recognition speech data may be passed to a second tier software and/or device coupled to the output interface 208, such as an interpreter 106.
In adaptive automatic speech recognition systems 100 that present the recognized speech data as an n-best list, modification of a score may change the position of a textual string and its associated data.
An application rule applied to another textual string may return a different result. For example, 604-1234 may be a frequently dialed number having contextual objects stored in memory 206 indicating such. When the post-recognition processor 204 applies an application rule to textual string “604 1234,” the contextual objects indicating that this is a frequently dialed number may cause the post-recognition processor 204 to modify the associated confidence score with a positive weight. The positive weight may comprise increasing the associated confidence score a predetermined amount. The value of a positive and/or negative weight may be configured based on frequency data, temporal data, recency data, and/or other temporal indicators associated with a contextual object or subcomponents of a contextual object. In some adaptive automatic speech recognition systems 100, the post-recognition processor 204 may be configured such that the application rules pass recognition speech data without any modifications. In these adaptive speech recognition systems 100, the adaptive post-recognition system 104 may perform as pass through logic.
In some adaptive post-recognition systems 104, contextual objects may be used to insert new information into the recognized speech data. For example, if the telephone number 765-4321 has been dialed repeatedly recently, contextual objects indicating such may be stored in a memory. If the recognized speech data comprises an n-best list with the textual string “769 4321” as the first entry (e.g., the most likely result) which has no contextual objects stored in a memory, an application rule may result in the post-recognition processor 204 inserting the textual string “765 4321” into the n-best list. The location where the new data is inserted and/or an associated score may depend on a number of factors. These factors may include the frequency data, temporal data, and/or recency data of the new information to be added.
In some adaptive post-recognition systems 104 contextual objects may be used to remove data from the recognized speech data. Some speech recognition engines 102 may misrecognize environmental noises, such as transient vehicle noises (e.g., road bumps, wind buffets, rain noises, etc.) and/or background noises (e.g., keyboard clicks, musical noise, etc.), as part of a spoken utterance. These environmental noises may add undesired data to a textual string included in recognized speech data. Upon applying an application rule and contextual objects, the post-recognition processor 204 may generate modified recognized data by identifying the unwanted data and extracting it from the textual string.
In a post-recognition system 104, the application rules stored in memory may be pre-programmed, acquired or modified through user interaction, or acquired or modified through local (e.g., rule grammar, dialog manager, etc.) or remote sources, such as a peripheral device, through a wireless or hardwire connection. The application rules may be adapted, for example based on feedback from a higher level application software and/or hardware, or by user action. If an error is caused by an application rule, the application rule may be dynamically updated or modified and stored in the memory.
Other contextual objects may be loaded into memory from one or more peripheral devices.
Some adaptive post-recognition systems 104 avoid reinforcing errors common to some speech recognition systems by adding or modifying contextual objects under limited conditions. In some systems, new contextual objects may be added or existing contextual objects updated only after being confirmed by a user. In some systems unconfirmed additions or changes may be stored as separate contextual objects in a memory; however these unconfirmed contextual objects may have lower scores than confirmed choices. In some systems unconfirmed and/or rejected items may be added or updated with negative weights, acting to reduce the likelihood or suppress the potentially wrong result for some period of time.
At act 804, based on one or more of the application rules and/or the contextual objects, some or all of the recognized speech data may be altered. Altering the recognized speech data may comprise modifying a score associated with a textual string by applying a positive or negative weighting value; adding, removing, or altering a portion of a textual string, and/or adding a new textual string and/or a score associated with a textual string.
At act 806, some or all of the altered recognized speech data may be transmitted to higher level software and/or a device. A higher level device may comprise an interpreter which may convert the altered recognized speech data into a form that may be processed by other higher level software and/or hardware.
At act 808, contextual objects and/or application rules may be updated. In some methods, the contextual objects and/or the application rules may be updated automatically when a user corrects, accepts, or rejects data output by an adaptive automatic speech recognition system. If the corrected output includes words or phrases that are stored as a contextual object, the words may be added to the contextual objects. If an error is caused by an application rule, the application rule may be statically or dynamically updated or modified and stored in a memory.
Some methods avoid reinforcing errors common to some speech recognition systems by adding or modifying contextual objects under limited conditions. In some systems, new contextual objects may be added or existing contextual objects updated only after being confirmed by a user. In some methods unconfirmed additions or changes may be stored as separate contextual objects in a memory; however these unconfirmed contextual objects may have lower scores than confirmed choices.
The systems and methods described above may be encoded in a computer readable medium such as a CD-ROM, disk, flash memory, RAM or ROM, or other machine readable medium as instructions for execution by a processor. Accordingly, the processor may execute the instructions to perform post-recognition processing. Alternatively or additionally, the methods may be implemented as analog or digital logic using hardware, such as one or more integrated circuits, or one or more processors executing sampling rate adaptation instructions; or in software in an application programming interface (API) or in a Dynamic Link Library (DLL), functions available in a shared memory or defined as local or remote procedure calls; or as a combination of hardware and software.
The methods may be encoded on a computer-readable medium, machine-readable medium, propagated-signal medium, and/or signal-bearing medium. The media may comprise any device that contains, stores, communicates, propagates, or transports software for use by or in connection with an instruction executable system, apparatus, or device. The machine-readable medium may selectively be, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. A non-exhaustive list of examples of a machine-readable medium includes: an electrical connection having one or more wires, a portable magnetic or optical disk, a volatile memory such as a Random Access Memory “RAM”, a Read-Only Memory “ROM,” an Erasable Programmable Read-Only Memory (e.g., EPROM) or Flash memory, or an optical fiber. A machine-readable medium may also include a tangible medium upon which executable instructions are printed, as the logic may be electronically stored as an image or in another format (e.g., through an optical scan), then compiled, and/or interpreted or otherwise processed. The processed medium may then be stored in a computer and/or machine memory.
The systems above may include additional or different logic and may be implemented in many different ways. A processor may be implemented as a microprocessor, microcontroller, application specific integrated circuit (ASIC), discrete logic, or a combination of other types of circuits or logic. Similarly, memories may be DRAM, SRAM, Flash, or other types of memory. Parameters (e.g., conditions and thresholds), and other data structures may be separately stored and managed, may be incorporated into a single memory one or more databases, or may be logically and physically distributed across many components. Programs and instruction sets may be parts of a single program, separate programs, or distributed across several memories and processors. The systems and methods described above may be applied to re-score and/or re-weigh recognized speech data that is presented in word graph path, word matrix, and/or word lattice formats, or any other generally recognized format used to represent results from a speech recognition system.
While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.
This application claims the benefit of priority from U.S. Provisional Application No. 60/851,149, filed Oct. 12, 2006, which is incorporated by reference.
Number | Date | Country | |
---|---|---|---|
60851149 | Oct 2006 | US |