1. Field of the Invention
The present invention relates to the field of text to speech processing and, more particularly, to training a phonetic decision tree with limited phonetic exceptions for a text-to-speech system.
2. Description of the Related Art
Text-to-speech (TTS) systems are an integral component of speech processing systems. Conventional TTS systems utilize a phonetic decision tree when synthesizing the words contained in an input text string into speech output. These phonetic trees are typically created using a very sizable set of randomly selected words called the training data; the set often contains tens or hundreds of thousands of words. The accuracy of the phonetic tree is then evaluated using test data, which is another set of random words.
Due to phonetic inconsistencies inherent within written languages, these phonetic trees often include extraneous branches to handle such exceptional words. For example, the word “some” is pronounced as “sum” and not with a long ‘o’ as with other phonetically similar words such as “home” and “dome”. When the randomly selected training data contains a large quantity of these phonetically exceptional words, the phonetic tree contains as many extraneous branches. These extraneous branches increase the processing time required by the TTS system to produce the speech output. Additionally, the larger size of the phonetic tree requires more storage space within the system.
Reducing the quantity of phonetic exceptions in the training data would help to streamline the phonetic tree. However, the voluminous size of the training data inhibits the use of a manual process to eliminate phonetic exceptions. An automated process currently does not exist for creating a phonetic tree that is not influenced by phonetic exceptions.
What is needed is an automated solution that creates a phonetic tree without the influence of phonetic exceptions. That is, the solution would use an automated process to remove the influence of phonetic exceptions on the phonetic tree. Ideally, such a solution would result in the creation of a phonetic tree containing only standard phonetic translations. Additionally, this solution can utilize an exception dictionary to phonetize words containing phonetic exceptions.
The present invention discloses a technique for training a phonetic decision tree with limited exposure to phonetically exceptional terms. That is, the phonetic exceptions that exist within the data set used for training and evaluating the phonetic decision tree can be removed. Such a process can be performed in the development environment of a text-to-speech (TTS) system using a semi-automated method that allows for the predetermination of training data sets and termination conditions. The terms identified as phonetic exceptions can be collected and stored as an exception dictionary for use during runtime phonetization of such terms when encountered in a text input string.
The present invention can be implemented in accordance with numerous aspects consistent with the material presented herein. For example, one aspect of the present invention can include a method for training an exception-limited phonetic decision tree. An initial subset of data can be selected and used for creating an initial phonetic decision tree. Additional terms can then be incorporated into the subset. The enlarged subset can be used to evaluate the phonetic decision tree with the results being categorized as either correctly or incorrectly phonetized. An exception-limited phonetic tree can be generated from the set of correctly phonetized terms. If the termination conditions for the method have been determined to be unsatisfactorily met, then steps of the method can be repeated.
Another aspect of the present invention can include a system for training an exception-limited phonetic tree. The system can include a training data set, a training engine, and a phonetic tree generation engine. The training engine can be configured to evaluate the phonetic tree using the training data set and a set of standard pronunciations to categorize the results based on accuracy. The phonetic tree generation engine can be configured to create an exception-limited phonetic tree from terms categorized as correctly phonetized.
Still another aspect of the present invention can include a method for creating a phonetic tree for speech synthesis. The method can include a step of generating an initial phonetic tree from a training data set of words and corresponding word pronunciations. Each word in the data set can be text-to-speech converted using the phonetic tree. Each text-to-speech converted word can be compared against a corresponding word pronunciation from the data set. Words can be removed from the training set that were not correctly text-to-speech converted using the phonetic tree. A new phonetic tree can be created using the modified training data set resulting from the removing step. The new phonetic tree can be either an intermediate tree used to produce a production tree after further processing or a production tree. A production tree can be a phonetic tree used by a speech synthesis engine to generate speech output from text input in a runtime environment.
It should be noted that various aspects of the invention can be implemented as a program for controlling computing equipment to implement the functions described herein, or as a program for enabling computing equipment to perform processes corresponding to the steps disclosed herein. This program may be provided by storing the program in a magnetic disk, an optical disk, a semiconductor memory, any other recording medium, or can also be provided as a digitally encoded signal conveyed via a carrier wave. The described program can be a single program or can be implemented as multiple subprograms, each of which interact within a single computing device or interact in a distributed fashion across a network space.
The method detailed herein can also be a method performed at least in part by a service agent and/or a machine manipulated by a service agent in response to a service request.
There are shown in the drawings, embodiments which are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown.
The development environment 105 can be a system used for the creation and evaluation of components for the runtime environment 140 of a TTS system. It should be noted that such a development environment 105 can include a wide variety of components for various functions. As such, only components that are particularly relevant to the present invention have been included in this figure.
In this example, the TTS development environment 105 can include components for the selective training of a phonetic decision tree. These components can include a phonetic tree generation engine 110, a training engine 120, and a speech synthesis engine 115. The various phonetic trees used within the development environment 105, including the exception-limited phonetic tree 134, can be generated by the phonetic tree generation engine 110. The phonetic tree generation engine 110 can be a software component configured to generate a phonetic tree from a training data set 127.
The training engine 120 can be a component configured to provide a semi-automated mechanism by which to limit the amount of phonetic exceptions used in the training of the phonetic decision tree. It should be noted that such a mechanism is of particular significance because it overcomes the prohibitive issue of removing phonetic exceptions from large data sets to produce an exception-limited phonetic tree 134.
The training engine 120 can include a training interface 122 and can access a training data store 125. The training interface 122 can be mechanism by which a user can interact with the training engine 120. The training interface 122 can be implemented in a variety of ways, including, but not limited to, a graphical user interface (GUI), a command-line interface, a touch-screen interface, a voice command interface, and the like. Interactions performed with the training interface 122 can include, but are not limited to, grouping terms into one or more training data sets 127, defining one or more termination conditions, selecting a set of standard pronunciations 128 for use, and the like.
The training data store 125 can include training data sets 127 and a set of standard pronunciations 128. Training data sets 127 can be collections of terms to be used when evaluating the accuracy of a phonetic tree. A training data set 127 can represent a subset of terms available for a language. For example, a first data set 127 can represent the top 30% of most frequently used words in a language and a second data set 127 can contain the top 31-40% most frequently used words.
In another embodiment, the training data sets 127 can represent subsets of a larger pool of input data (not shown). In such an embodiment, the input data (not shown) can also be contained within the training data store 125.
When evaluating the accuracy of the phonetic tree, the training engine 120 can compare the phonetizations generated by the speech synthesis engine 120 against those contained within the set of standard pronunciations 128. The set of standard pronunciations 128 can include synthesized speech of the accepted pronunciations of terms contained within the training data sets 127.
The training process within the development environment 105 can produce an exception-limited phonetic tree 134 and an exception data set 136 that can be transferred to a runtime environment 140 of the TTS system. The exception-limited phonetic tree 134 can represent a phonetic decision tree created using a specific training process such that the tree 134 can contain fewer decision branches for words containing phonetic exceptions.
As used herein, the term “exception-limited” describes a phonetic tree with a minimal amount of branches allotted to handling terms containing phonetic exceptions. A phonetic exception occurs when a word exhibits a weak correspondence between its spelling and expected phonetic pronunciation. For example, the accepted pronunciation of phonetic portion “ough” is “uff” as in “rough”, “tough”, and “enough”. Thus, other terms containing “ough” that do not comply with the expected pronunciation, such as “bough” and “through”, are considered to be phonetic exceptions.
The exception data set 136 can represent the phonetic exceptions encountered during the training process of the exception-limited phonetic tree 134. These phonetic exceptions can exist within the training data sets 127 and the training engine 120 can group such words into the exception data set 136. For example, the word “bough” would be placed within the exception data set 136 when encountered by the training engine 120 within a training set 127.
The runtime environment 140 can be a system used for the synthesis of text input 160 into a corresponding speech output 165. It should be noted that the runtime environment 140 can include a wide variety of components for various functions, such as normalizing the text input 160. As with the development environment 105, only components of particular relevance to the present invention have been included in the runtime environment 140.
The speech synthesis engine 145 can be used by the runtime environment 140 to produce speech output 165 for the text input 160. The speech synthesis engine 145 can utilize the exception-limited phonetic tree 134 and exception data set 136, which were received from the development environment 105. The exception-limited phonetic tree 134 can be stored in a data store 150 that is accessible by the speech synthesis engine 145. Likewise, the exception data set 136 can be stored within an exception dictionary 155 that is also accessible by the speech synthesis engine 145.
The speech synthesis engine 145 can utilize the contents of the exception dictionary 155 to handle synthesis of phonetic exceptions within the text input 160. The speech synthesis engine 145 can synthesize speech for words within the text input 160 having standard pronunciations utilizing the exception-limited phonetic tree 134. The speech synthesis engine 145 can include an algorithm that determines whether the engine 145 should use the exception-limited phonetic tree 134 or the exception dictionary 155 for synthesis.
In another contemplated embodiment, the exception dictionary 155 can be utilized by a specialized exception handler (not shown) in the runtime environment 140 to handle phonetic exceptions within the text input 160.
As used herein, presented data stores, including stores 125, 150, and 155, can be a physical or virtual storage space configured to store digital information. Data stores 125, 150, and 155 can be physically implemented within any type of hardware including, but not limited to, a magnetic disk, an optical disk, a semiconductor memory, a digitally encoded plastic memory, or any other recording medium. Data stores 125, 150, and 155 can be a stand-alone storage unit as well as a storage unit formed from a plurality of physical devices. Additionally, information can be stored within data stores 125, 150, and 155 in a variety of manners. For example, information can be stored within a database structure or can be stored within one or more files of a file storage system, where each file may or may not be indexed for information searching purposes. Further, data stores 125, 150, and/or 155 can utilize one or more encryption mechanisms to protect stored information from unauthorized access.
Method 200 can begin with step 205 where an initial training data set can be selected. The initial training data set can be used to generate an initial phonetic decision tree in step 210. In step 215, the training data set can be augmented with additional terms. The additional terms used in step 215 can be contained within another training data set or a superset of data.
The accuracy of phonetic decision tree can be evaluated using the augmented training data set in step 220. In step 225, the output of step 220 can be categorized into correct and incorrect phonetizations. A new phonetic decision tree can be generated in step 230 with the correct phonetizations of step 225.
In step 235, the training engine can determine if one or more termination conditions have been met. For example, a simplistic termination condition can be to terminate method 200 after a set number of iterations.
When the termination condition(s) have not been met, step 240 can execute where the previous phonetic decision tree can be discarded from the process and can be replaced with the decision tree that was generated in step 230.
Optionally, step 245 can be performed in which the incorrect phonetizations from step 225 can be removed from the training data set and can be added to an exception data set. The flow of method 200 can then return to step 215.
When step 235 determines that the termination condition(s) have been satisfied, step 250 can execute in which a runtime exception dictionary can be created with the exception data set. In step 255, the last phonetic tree generated by method 200 can be conveyed to a runtime environment for use in speech synthesis.
In the first training iteration 300, the training system 310 can receive a training data set 307 and an initial phonetic tree 315. The training system 310 can represent the processing components of a development environment used in the training of a phonetic tree, such as the training engine 120, phonetic tree generation engine 110, and speech synthesis engine 115 of system 100.
The initial phonetic tree 315 can be previously generated by the training system 310. As shown in this example, the training data set 307 can be a subset of a larger set of input data 305. The training data set 307 can include words such as “fly”, “some”, “home”, and “phobia”.
The training system 310 can determine if the initial phonetic tree 315 correctly phonetizes the words contained with the training data set 307. Words that the initial phonetic tree 315 correctly phonetizes can be placed in a set of correctly phonetized words 325.
Those incorrectly phonetized can be placed in a set of incorrectly phonetized words 320. In this example, the set of correctly phonetized words 325 contains the words “fly” and “home” and the set of incorrectly phonetized words 320 contains the words “phobia” and “some”. The incorrectly phonetized words 320 can then be stored in an exception data set 322.
Once the initial phonetic tree 315 has been evaluated with the words of the training data set 307, the training system 310 can generate an intermediate phonetic tree 330 with the correctly phonetized words.
It should be noted that the use of the correctly phonetized words 325 to generate the intermediate phonetic tree 330 can remove existing branches for phonetizing phonetic exceptions from the initial phonetic tree 315. Such a process can then overcome any phonetic issues that were introduced during the creation of the initial phonetic tree 315.
The second training iteration 335 can perform a process similar to the first training iteration 300. In this iteration 335, the training system 310 evaluates the intermediate phonetic tree 330 from the previous iteration 300 with a modified training data set 340. As shown in this example, the training data set 340 contains those words that were correctly phonetized in the previous iteration 300 as well as additional terms. In this example, the training data set 340 contains the words “fly”, “bough”, “home”, “rough”, and “through”.
In this example, the training system 310 places the words “fly”, “home”, and “rough” into the set of correctly phonetized words 350. The set of incorrectly phonetized words 345 contains the words “bough” and “through”. The incorrectly phonetized words 345 can then be added to the exception data set 322. The second iteration 335 can finish with the generation of the intermediate phonetic tree 355.
Iterations of this process can continue until the Nth iteration 360 is reached. The Nth iteration 360 can be determined by the evaluation of one or more termination conditions by the training system 310. The training system 310 can evaluate the intermediate phonetic tree 355 from the previous iteration 335 with a modified training data set 365.
In this example, the training data set 365 contains those words that were correctly phonetized in the previous iteration 335 as well as the additional words “ogre”, “joke”, “red”, and “fjord”. Evaluation of the intermediate phonetic tree 355 can result in the training system 310 placing the words “fly”, “home”, “rough”, “red”, and “joke” into the set of correctly phonetized words 375 and “ogre” and “fjord” into the set of incorrectly phonetized words 370. The incorrectly phonetized words 370 can then be added to the exception data set 322.
The Nth iteration 360 can conclude with the generation of the exception-limited phonetic tree 380 using the set of correctly phonetized words 375.
The present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
The present invention also may be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
This invention may be embodied in other forms without departing from the spirit or essential attributes thereof. Accordingly, reference should be made to the following claims, rather than to the foregoing specification, as indicating the scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
4692941 | Jacks et al. | Sep 1987 | A |
5652829 | Hong | Jul 1997 | A |
5787274 | Agrawal et al. | Jul 1998 | A |
5870735 | Agrawal et al. | Feb 1999 | A |
6119085 | Lewis et al. | Sep 2000 | A |
6138115 | Agrawal et al. | Oct 2000 | A |
6363342 | Shaw et al. | Mar 2002 | B2 |
6411932 | Molnar et al. | Jun 2002 | B1 |
6889219 | Epstein et al. | May 2005 | B2 |
6993535 | Bolle et al. | Jan 2006 | B2 |
7016887 | Stockfisch | Mar 2006 | B2 |
7356468 | Webster | Apr 2008 | B2 |
7467087 | Gillick et al. | Dec 2008 | B1 |
20040034524 | Rajput et al. | Feb 2004 | A1 |
20050192807 | Emam et al. | Sep 2005 | A1 |
20070255567 | Bangalore et al. | Nov 2007 | A1 |
Number | Date | Country | |
---|---|---|---|
20080319753 A1 | Dec 2008 | US |