CONTEXT DEPENDENT PHONEME NETWORKS FOR ENCODING SPEECH INFORMATION

Abstract: A method and apparatus for generating a context dependent phoneme network as an intermediate step of encoding speech information. The context dependent phoneme network is generated from speech in a phoneme network generator (48) associated with an operating system (44). The context dependent phoneme network is then transmitted to a first application (52).

Description: CONTEXT DEPENDENT PHONEME NETWORKS FOR ENCODING SPEECH INFORMATION Field of the Invention The present invention relates generally to computer speech recognition. Background of the Invention Recent advances in computer hardware and software have allowed computer speech recognition (CSR) to cross the threshold of usability. Systems are now available for high end personal computers that can be used for large vocabulary, continuous speech dictation. To obtain adequate performance, such systems need to be adapted to a specific user's voice and environment of usage. In addition, these systems can only recognize words drawn from a certain vocabulary and are usually tied to a particular language model, which captures the relative probabilities of different sequences of words. Without all of these constraints, it is very difficult to get adequate performance from a CSR system. In most CSR systems, the user and environment specific part, or acoustic models, are usually separate to the vocabulary and language models. However, because of the above constraints, any application that requires speech recognition needs access to both the user/environment specific acoustic models and the application specific vocabulary and language models. This is a major obstacle to moving CSR systems beyond standalone dictation, to systems where many different users will need to access different applications, possibly in parallel and often over the internet or a local area network (LAN) . The reason is that either: (a) each application will have to keep separate acoustic models for each user/ environment; or (b) each user will need to maintain separate sets of vocabularies and language models for each application they wish to use. Since the size of acoustic and language models are typically in the order of megabytes to tens of megabytes for a medium to large vocabulary application, it follows that in either scenario (a) or (b) , the systems' resources are going to be easily overwhelmed. One possibility is to store the acoustic models on a different machine to the vocabulary and language models, and connect the machines via a local area network (LAN) or the internet. However, in either (a) or (b) , enormous amounts of network traffic will be generated as megabytes of data are shifted to the target recognizer. Thus, a need exists for a CSR system that is independent of the vocabulary and language models of an application without sacrificing performance in terms of final recognition accuracy. Brief Description of the Drawings A preferred embodiment of the invention is now described, by way of example only, with reference to the accompanying drawings in which: FIG. 1 illustrates a simple phoneme network; FIG. 2 illustrates a tri-phone network equivalent to FIG. 1 according to the preferred embodiment of the present invention; FIG. 3 illustrates an encoding for the tri-phone network of FIG. 2 according to the preferred embodiment of the present invention; FIG. 4 is a general block diagram of an overall system according to the preferred embodiment of the present invention; FIG. 5 is a detailed block diagram of the overall system according to the preferred embodiment of the present invention; and FIG. 6 is a detailed block diagram of FIG. 5 according to the preferred embodiment of the present invention. Detailed Description of the Preferred Embodiment Context dependent phoneme networks (CD phoneme networks) are proposed as a solution to the above problems of the state-of-the- art . A method and apparatus for generating a CD phoneme network as an intermediate step of encoding speech information is described herein. CD phoneme networks arise from splitting speech recognition into two parts: a client that is user and environment specific, that continually listens and encodes the user's speech as a CD phoneme network, and a set of applications that can use these CD phoneme networks together with an application specific vocabulary and language models to perform final recognition. CD phoneme networks provide a way for encoding the output from the client that is independent of vocabulary and language models of a first (i.e., target) application: thus any application which can use these CD phoneme networks does not need access to the user/environment specific acoustic models that are used to originally generate the CD phoneme networks. Importantly, unlike simple phoneme networks, CD phoneme networks encode the speech information in a way that does not sacrifice any performance in terms of final recognition accuracy, and may even enhance the performance . With respect to the architecture proposed herein, the aspects of recognition which require knowledge of the user and environment take place at the site of the user. This has the advantage, from the user's perspective, of leveraging his adaptation investment to any application. From an application developer's point of view, it removes the headache of having to maintain user specific models, which could prove very attractive for internet service providers with many thousands of users. Furthermore, the aspects of recognition which require access to large language models and vocabularies and, as a consequence, large amounts of disk space, can take place at a centralized application. Thus, improvements in the language models and vocabularies of the centralized application are automatically available to all users without the need to download huge data files. Before describing CD phoneme networks in detail, it is useful to describe simple phoneme networks as an intermediate stage for speech recognition. As shown in FIG. 1, a phoneme network consists of a set of nodes 1, 2, 3 and 4 and arcs 10, 12, 14, 16, 18 and 19. The nodes 1, 2, 3 and 4 represent possible phoneme start and end times. The arcs 10, 12, 14, 16, 18 and 19, which link a "from node" 2 with a "to node" 3, represent a particular phoneme starting and ending at the times corresponding to the "from" and "to" nodes. Associated with each arc 10, 12, 14, 16, 18 and 19 is a score 20 or likelihood of the phoneme. A key deficiency of the simple phoneme network and the reason why it is not used as an intermediate stage in most speech recognizers is that the arc scores 20 and 22 are context independent. In other words, the score 22 on the IH arc 18 between nodes 2 (t=10) and 3 (t=35) is independent of which arc is taken to get to node 2 or which arc is taken from node 3. CD phoneme networks correct this by making the arc scores context dependent. The context of an arc can be split into a "from context" which is determined by the path taken to reach the "from node" and the "to context" which is determined by the path taken after the "to node". In more sophisticated speech recognition networks, the "from" and "to" contexts will affect the score of the phoneme associated with a particular arc. The way the context is used will vary depending on the complexity of the system. Simple phoneme networks, where no context is used, sit at one end of the spectrum. In a tri-phone network, for example, the "from context" is the phoneme associated with the last arc taken to reach the "from node" while the "to context" is the phoneme associated with the first arc taken from the "to node" . In even more complex systems, such as quin-phone networks, the "from" and "to" contexts consist of the last two and first two arcs of the paths taken to reach the "from node" and the "to node". In order to ensure that the "from" and "to" contexts of an arc match the "from" and "to" contexts of the scores associated with the arc, the "from" and "to" nodes of the arc may need to be split. FIG. 2 is an illustration of this split for the specific case of a tri-phone equivalent to the simple phoneme network shown in FIG. 1. In the case of FIG. 2, the nodes have been split so that both the arcs 24 and 26 going into any node (e.g., node 3a) have the same phoneme label (e.g., AH), and the arcs 28 and 30 coming from any node (e.g., node 3a) have the same phoneme label (e.g., K) . The arc scores 32 and 34 can now represent tri- phones scores, since the "from" and "to" phoneme contexts will be uniquely specified. For example, the score 36 on the arc 38 linking node 2b to node 3d represents the tri-phone score of IH with a left context of TH and a right context of G. FIG. 3 illustrates an encoding for the tri-phone network shown in FIG. 2. FIG. 3 consists of a list of nodes associated with times. For each node, there is a sublist of arcs consisting of all the arcs originating at that particular node. Associated with each arc is a phoneme label, a tri-phone score and a "to node" . Because the tri-phone networks have tri-phone scores attached to each arc, they can serve as input to any cross word speech recognizer. A phoneme network generator can then search the tri-phone network for the path that gives the best score given a particular vocabulary and language model. The phoneme network generator does not need to have any user or environment specific acoustic models or even access to the original speech. All the information required to decode the words in a speech signal is captured in the tri-phone network itself. Referring to FIGS. 4 and 5, in accordance with the preferred embodiment of the present invention, a data storage medium 40 is described herein having stored thereon instructions and data which, when loaded into at least a first general purpose microprocessor 42 having an operating system 44, cause at least the first general purpose microprocessor 42 to perform a method for generating a CD phoneme network as an intermediate step of encoding speech information. Preferably, the first general purpose microprocessor 42 comprises a first part 46 of the operating system 44 having a phoneme network generator 48 (preferably a CD phoneme network generator) and a second part 50 of the operating system 44 having at least a first application 52. The phoneme network generator 48 and the first application 52 are independently associated with the operating system 44 and are tools of a dynamic link library. The first and second parts 46 and 50, respectively, of the operating system 44 may form a unitary operating system on a single general purpose microprocessor or other computer. Alternatively, the second part 50 of the operating system 44 can be stored on a second general purpose microprocessor 72, separate from the first part 46 and the first general purpose microprocessor 42. When the second part 50 of the operating system 44 has at least a first and a second application 52 and 58, respectively, each of the two applications 52 and 58, respectively, can have different vocabularies 60 and 62, respectively, and different language models 64 and 66, respectively. Alternatively, the first and the second applications 52 and 58, respectively, can share a common vocabulary 68 and a common language model 70. The phoneme network generator 48 and the first application 52 may be remotely located from each other and connected by a link 56, either a wireless link or a network link (i.e., the first part 46 of the operating system 44 may be remotely located from the second part 50 of the operating system 44) . In operation, the phoneme network generator 48 generates a CD phoneme network having an output 54 defining the CD phoneme network. The output 54 of the phoneme network generator 48 is in a format capable of being stored for later input to the first application 52. The first application 52 is adapted to receive the output 54 of the phoneme network generator 48. Referring to FIG. 6, the phoneme network generator 48 is shown in detail, comprising a microphone 72 connected to an analog-to-digital converter 74 connected in turn to an input of the first part 46 of the operating system 44. The data storage medium 40 having an alphabet of phonemes 80 is also connected to an input of the first part 46 of the operating system 44. The first part 46 of the operating system 44 is dependent on user and environment specific acoustic models. The first part 46 of the operating system 44 comprises a number of elements formed in software. These include a feature extraction element 76 having an input and an output, and a Viterbi decoder 78 having and input connected to the output of the feature extraction element 76 and having an input connected to the data storage medium 40. Alternatively, element 78 (the Viterbi decoder) may be a Baum-Welsh based decoder or elements 60 and 62 (the feature extraction and the Viterbi decoder, respectively) may be combined and replaced by a neural-network based decoder. The second part 50 of the operating system 44 is dependent on a first application selectable independently from the first part 46 of the operating system 44. The second part 50 of the operating system 44 encompasses the first application 52 having inputs coupled to the outputs 82, 84 and 86 of the Viterbi decoder 78. The outputs 82, 84 and 86 of the Viterbi decoder 78 are a phoneme label, a score and a "from" node - "to" node pair, respectively, which define the arcs of the CD phoneme network. The first application 52 is coupled to a vocabulary 60 and a language model 64. A graphic user interface 88 in the form of a computer program is provided having inputs connected to the output of the first application 52 and having an output coupled to a display 90. In operation, the first part 46 of the operating system 44 generates a CD phoneme network in order to capture user and environment specific acoustic models. Thus, the first part 46 of the operating system 44 converts raw speech to a CD phoneme network with the aid of user and environment specific acoustic models and phoneme language models which are continuously adapting to the user's voice, environment and use of language. The models could be running on a personal computer, a cellular telephone, pager or any other appropriately configured piece of hardware. The first part 46 of the operating system 44 extracts from a speech signal the desired information required for speech recognition, packages the desired information in a vocabulary, language model, user and environment independent format and transmits the desired information to the second part 50 of the operating system 44. The second part 50 of the operating system 44 then uses appropriate search engine applets to extract from the CD phoneme network information relevant to the needs of the first application 52 using the vocabulary 60 and the language model 64 of the first application 52 in order to retrieve a candidate recognition result and deliver the candidate recognition result to the first application 52. A variety of such search engine applets can be imagined ranging from a dictation applet, a form filing applet, an SQL-Query applet to even an natural language query applet. Preferably, after attempting recognition in a first search engine (e.g., second part 50 of the operating system 44), and upon unsatisfactory recognition in the first search engine, the CD phoneme network is forwarded to a second search engine 100. The second search engine 100 subsequently retrieves a candidate recognition result and delivers the candidate recognition result to the first application 52. The implementation of passing the CD phoneme network from a first search engine to a second search engine to achieve a greater confidence level of accuracy can be extended to any number of search engines. For example, the second part 50 of the operating system 44 can be set up to pass the CD phoneme network to a subsequent search engine if the confidence level of a current search engine does not exceed a predefined threshold. Passing the CD phoneme network from one search engine to another will continue to occur until a search engine can produce a candidate recognition result that exceeds the predefined threshold with respect to the confidence level of accuracy. Alternatively, the second part 50 of the operating system 44 can send the CD phoneme network to at least two search engines simultaneously. The confidence levels of accuracy of the at least two search engines are compared and the search engine with the highest confidence level of accuracy is selected to operate the first application 52. By combining appropriate vocabularies and language models with the relevant search engine applets, a developer will be able to rapidly speech enable his applications. Many languages could act as the glue for combining applets together, including visual basic and hypertext markup language (HTML) . In the case of HTML, it is easy to see that almost any web page can be speech enabled if applets are designed for hypertext links, drop-down lists, combination-boxes and text entry fields. This approach, in accordance with the preferred embodiment of the present invention, can be extended to networks with either more or less context than tri-phone networks . All that will change is the degree of node splitting required to ensure the correct "from" and "to" contexts for each arc. The phoneme network generator 48 itself does not need to be aware of the exact nature of the context used to determine each arc score, since the network itself will enforce the constraint that the paths leading "from" and "to" an arc have the context appropriate for the arc score. It is an aspect of the present invention that a method for encoding speech information comprises generating a context depenedent phoneme network from speech in a phoneme network generator associated with an operating system; transmitting the context dependent phoneme network to a first (or a plurality of) application (s ) ; and extracting, at the first (or the plurality of) application (s ) , information needed from the context dependent phoneme network using a vocabulary and a language model (s) of the first (or the plurality of) application (s) in order to operate the first (or the plurality of) application (s) . It is another aspect of the present invention that a method for encoding speech information comprises providing an operating system comprising two parts, wherein a first part of the operating system is dependent on user and environment specific acoustic models and a second part of the operating system is dependent on a first (or a plurality of) application (s) selectable independently from the first part of the operating system, wherein the second part of the operating system extarcts information needed from the context dependent phoneme network using a vocabulary and language model (s) of the first (or the plurality of) application (s) . It is yet another aspect of the present invention that an appaartus for encoding speech information comprises an operating system; a phoneme network generator generating a context dependent network having an output defining the context dependent phoneme network; and a first (or a pluality of) application (s) adapted to receive the output of the phoneme network generator and extract information needed from the output using a vocabulary and language model (s) of the first (or the plurality of) application(s) , wherein the phoneme network generator and the first (or the plurality of) application (s) are independently associated with the operating system. The output of the phoneme network generator is in a format capable of being stored for later input to the first (or the plurality of) application (s) . The phoneme network generator and the first (or the plurality of) application (s) can be remotely located, connected by a wireless link or connected by a network link. While the invention has been described in conjunction with a specific embodiment thereof, additional advantages and modifications will readily occur to those skilled in the art. The invention, in its broader aspects, is therefore not limited to the specific details, representative apparatus and illustrative examples shown and described. Various alterations, modifications and variations will be apparent to those skilled in the art in light of the foregoing description. Thus, it should be understood that the invention is not limited by the foregoing description, but embraces all such alterations, modifications and variations in accordance with the spirit and scope of the appended claims.

Claims: CLAIMS We claim: 1. A method for encoding speech information comprising: generating a context dependent phoneme network from speech in a phoneme network generator associated with an operating system using an acoustic model adapting to a user's voice; and transmitting the context dependent phoneme network to a first application. 2. The method according to claim 1 wherein the context dependent phoneme network is vocabulary and language model independent. 3. The method according to claim 1 further comprising extracting, at the first application, information needed from the context dependent phoneme network using vocabulary and language models of the first application in order to operate the first application. 4. A method for encoding speech information comprising providing an operating system comprising two parts, wherein a first part of the operating system is dependent on user and environment specific acoustic models which are continuously adapting to a user's voice and a second part of the operating system is dependent on a first application selectable independently from the first part of the operating system, wherein the second part of the operating system extracts information needed from the context dependnet phoneme network using vocabulary and language models of the first application 5. The method according to claim 4 wherein the first part of the operating system generates a context dependent phoneme network, in order to capture user and environment specific acoustic models and transmits the context dependent phoneme network to the second part of the operating system. 6. The method according to claim 4 further comprising a second application, wherein the first application and the second application comprise different vocabularies and different language models . 7. The method according to claim 4 further comprising a second application, wherein the first application and the second application share a common vocabulary and a common language model. 8. A method for encoding speech information comprising: converting speech to a context dependent phoneme network with an aid of user and environment specific acoustic models and phoneme language models; adapting the context dependent phoneme network continuously based on the user and environment specific acoustic models and phoneme language models; extracting desired information required for speech recognition from a speech signal; and packaging the desired information in a vocabulary, language model , user and environment independent format . 9. An apparatus for encoding speech information comprising: an operating system; a phoneme network generator generating a context dependent phoneme network having an output defining the context dependent phoneme network; and a first application adapted to receive the output of the phoneme network generator and extract information needed from the output using a vocabulary and a language model of the first application, wherein the phoneme network generator and the first application are independently associated with the operating system. 10. A data storage medium comprising instructions and data which, when loaded into a first general purpose microprocessor having an operating system cause the first general purpose microprocessor to comprise a phoneme network generator generating a context dependent phoneme network having an output defining the context dependent phoneme network and a first application adapted to receive the output of the phoneme network generator and extract infotmation needed from the output using a vocabulary and language model of the first application, wherein the phoneme network generator and the first application are independently associated with the operating system. 11. The data storage medium according to claim 10 wherein the data storage medium comprises a first part having stored thereon the phoneme network generator and a second part having stored thereon the first application. 12. A method comprising: generating a context dependent phoneme network as an intermediate step of encoding speech information; attempting recognition in a first search engine; upon unsatisfactory recognition in the first search engine, forwarding the context dependent phoneme network to a second search engine; and retrieving from the second search engine a candidate recognition result.

Inventors: AUSTIN STEPHEN, BALAKRISHNAN SREERAM, AUSTIN, STEPHEN, BALAKRISHNAN, SREERAM
Applicants: MOTOROLA INC, MOTOROLA INC.
Application year: 1998
Main classification: G10L5
IPC codes: G10L15