This invention relates to systems and methods for providing synthesized speech.
The use of voice synthesis in various applications appears to be increasing. For example, airlines increasing provide telephone numbers which a user can call in order to hear flight arrival and departure information presented as synthesized speech. As another example, many computer and software manufactures now offer telephone numbers which provide user help and/or technical documents as synthesized speech. Also introduced have been telephone numbers that a user can call in order to hear web content presented using voice synthesis. Furthermore, there are vending machines, such as airline and train ticket vending kiosks, that use synthesized speech to communicate with users.
Accordingly, there may be increased interest in technologies that allow synthesized speech to be presented in an effective manner.
According to embodiments of the present invention, there are provided systems and methods for providing synthesized speech in a manner that may take into account the environment where the speech is presented.
In certain embodiments, the manner in which speech is presented might take into consideration ambient noise and/or might seek to optimize speech audibility.
General Operation
Embodiments of the present invention provide systems and methods for speech synthesis that take into account the environment where the speech is presented, in certain embodiments with the goal of improving the audibility and/or understandability of the speech. Such systems and methods may be applicable, for example, in providing synthesized speech to a user via telephone, wireless device, or the like.
As an exemplary implementation, the manner in which synthesized speech is presented to a user might depend upon the ambient noise present in the user's environment. It is specifically noted, however, that environmental factors and/or aspects other than ambient noise may be taken into account.
Shown in
Also shown in
Further shown in
Also shown in
A speech synthesis module may, in accordance with embodiments of the presentation invention, maintain and/or have access do a bank of phonemes, words and/or other components from which speech can be constructed. In certain embodiments, the phonemes or the like may be grouped into classes. The bank might contain multiple versions of various particular phonemes, words, components and/or the like. Thus the bank might maintain versions of a particular phoneme that are of varying durations, pitches, intensities, and/or the like.
A speech synthesis module might, by choosing appropriate phonemes or the like from the bank, formulate speech corresponding to the indication of what should be spoken. As just noted, the bank might possess more than one version of each phoneme or the like. In accordance with embodiments of the invention, the speech synthesis module could employ a received directive to determine which versions of phonemes or the like or classes thereof should be employed.
Various aspects of the present invention will now be described in greater detail.
New Suggestion Module
As noted above, a new suggestion module may receive input relating to an environment for presenting synthesized speech and make a suggestion as to how a speech synthesis module should present that speech, the suggestion based on a new determination of which speech presentation is most appropriate for the environment. Such a suggestion could specify various entities (i.e., phonemes or the like or classes thereof).
In some cases the input received could be in the form of matrices or the like corresponding to spectral and/or other properties of the environment. The matrices could, for example, correspond to spectral proprieties of the ambient noise in the environment. In other embodiments, the module might receive direct environmental input (such as ambient noise sensed by a microphone or the like) and create its own corresponding matrices or the like.
Furthermore, in certain embodiments of the invention, there may be matrices or the like corresponding to characteristic spectral and/or other properties of various entities in the bank of a speech synthesis module. Such matrices or the like could be held in a store associated, for example, with the speech synthesis module or a new session module. The characteristic properties corresponding to a particular class of phonemes or the like could be, for example, the spectral properties relating to that class when employed to synthesize one or more chosen test words and/or sounds in an effectively noiseless environment. Similarly, the characteristic properties corresponding to one or more particular phonemes or the like could be, for example, the spectral properties of the one or more particular phonemes or the like when employed to synthesize one or more chosen test words and/or sounds in an effectively noiseless environment. The test words and/or sounds could be chosen by a sound and/or hearing expert such as an audiologist, physician, or recording engineer so as to effectively characterize the class, phoneme, phonemes, or the like.
Accordingly, a new suggestion module receiving input relating to an environment (step 201 of
Audibility might be determined, for example, by considering the spectral difference between one or more matrices corresponding to an environment's ambient noise and one or more matrices corresponding to the characteristic spectral properties of an entity. A match could be declared, for example, when the spectral difference was found to be positive beyond a certain predetermined threshold. According to various embodiments, the algorithm employed may take into account the connection type and/or bandwidth employed in speech presentation. It is further noted that, in certain cases, the consideration of spectral difference could be frequency weighted, perhaps considering normal human auditory perception. Physiological and/or psychological aspects of perception could be considered. In certain embodiments, abnormal human auditory perception could be considered in order to more effectively meet the needs of a hearing impaired user. In such embodiments, a user may be able to make a new suggestion module aware of the nature of her impairment. For example, at the start of a session employing the present invention, a user could provide a user identifier and/or password, perhaps via a telephone microphone or microphone used by the new suggestion module for receiving environmental input. The new suggestion module could use the provided information to consult a central server containing information about the user's impairment. Steps might be taken, in some embodiments, so that the process could take place without divulging the identity of the user. It is specifically noted that the consideration of normal and/or abnormal human auditory perception in determining audibility is noted limited to the case where the determination involves consideration of spectral difference.
Having made a determination of how a speech synthesis module should present speech to the environment, a new suggestion module could dispatch a corresponding suggestion to, for instance, a selection module (step 205). The suggestion could include, for example, a specification of one or more entities employable in presenting the speech. In embodiments of the present invention, the suggestion could include an indication of the level of audibility of each specified entity. As alluded to above, in the case where matches are declared for two or more mutually exclusive entities, the entity providing the highest level of audibility could be chosen for inclusion in the suggestion.
Historical Suggestion Module
As noted above, a historical suggestion module may receive input relating to an environment for presenting synthesized speech and make a suggestion as to how a speech synthesis module should present that speech, the suggestion based on predetermined and/or precompiled notions of which presentations are most appropriate for various environments. Such a suggestion could specify various entities (i.e., phonemes or the like or classes thereof).
More specifically, a historical selection module, upon receiving environmental input (step 301 of
The database or the like could, for example, hold correlations between speech presentation suggestions and matrices or the like corresponding to properties. Accordingly, a historical suggestion module might search the database or the like for the matrices or the like most closely matching the matrices or the like corresponding to the sensed environment (step 303). The historical suggestion module could then retrieve from the database the corresponding presentation suggestion or suggestions (step 305).
The algorithm for finding a closest match could be designed by an audio expert, statistician, or the like. In certain embodiments the matching algorithm might take into account physiological, psychological, and/or other aspects of human auditory or other perception so that a match would be determined between two sets of matrices or the like in the case where the corresponding environmental conditions would be perceived similarly by a human. In the case where environmental properties related partially or totally to ambient noise conditions, the matching algorithm might be frequency-weighted or otherwise weighted in a manner that bore in mind human auditory perception. As will be discussed in greater detail below, in certain embodiments, abnormal human perception could be taken into account in order to more effectively meet the needs of a hearing impaired user.
The database or the like could be compiled, for example, through user testing. Users could be subjected to various environmental conditions and made to listen to synthesized speech presented in a number of varying ways. The various environmental conditions could, for instance, be different ambient sound conditions, while the varying ways of presenting synthesized speech could correspond to the use of varying versions of individual phonemes, words, and/or other components, or classes thereof. The users could be asked which presentations provided the most audible speech, and the results could be assembled and/or statistically analyzed in order to determine correlations between presentations and environmental properties. An expert, such as an audiologist, physician, or recording engineering, might play a role in determining the correlations. Additionally or alternately, a computer may be employed in making the correlations.
As a next step, the banks of speech synthesis modules might next be loaded with the entities (e.g., phonemes or classes thereof) found during testing to provide audible speech with regard to certain environmental properties. Such loading might not be necessary for a particular speech synthesis module in the case where the entities were already available to the module. Such might be the case, for example, if the test users were only made to experience presentations already producible by one or more speech synthesis modules.
As alluded to above, in various embodiments abnormal human auditory or other perception could be considered. In such embodiments, a user might be able to make a historical suggestion module aware of the nature of her impairment in a manner analogous to that described above with reference to a new suggestion module. In such embodiments, the above-noted user testing might be performed with respect to both unimpaired users and users with varying impairments. Accordingly, the database or the like could be made to hold not only correlations corresponding to testing of unimpaired users, but also correlations corresponding to users of various specific impairments, classes of impairment, or the like. Thus a historical suggestion module could consult the appropriate correlation or correlations for a user's specified impairment.
It is noted that, in a manner perhaps analogous to that described with reference to abnormal human perception, the connection type and/or bandwidth employed in speech presentation could be considered. Accordingly, the database or the like could be made to hold not only correlations of the sort noted above, but also correlations corresponding to various connection types, connection bandwidths, and the like employable in speech presentation.
It is further noted that, in certain embodiments, the actions of an audio expert might be used in place of user testing. Thus a recording engineer or other expert might design and/or select phonemes or the like that she determined and/or decided to provide audible speech for particular environmental situations, and it would be these entitles that could be provided to speech synthesis modules as necessary.
Once a historical suggestion module has made a determination of how a speech synthesis module should present speech to the environment, the historical suggestion module could dispatch the corresponding suggestion to, for example, a selection module (step 307). As alluded to above, the suggestion could include, for example, a specification of one or more entities. Furthermore, as stated above, in formulating the suggestion databases or the like may have been searched for one or more closest matches relating to inputted environmental conditions. Further to this, it is noted that in certain embodiments of the invention a dispatched suggestion could include an indication of the closeness of each such match.
Selection Module
As noted above, a selection module may receive suggestions from one or more suggestion modules and employ these suggestions in determining a directive relating to how a speech synthesis module should present speech. The determined directive could be passed to a speech synthesis module or modification module.
In certain embodiments of the invention, it might be desired that there be a limit on the frequency with which a selection module dispatches directives to a modification module or speech synthesis module. Such might be the case, for example, where it was decided that there should be some restriction as to how often a speech synthesis module should change the way in which it presents speech. Such functionality may be implemented, for example, by stipulating that a selection module dispatch directives at a stipulated frequency.
It is further noted that certain embodiments could allow a user, system administrator, or the like to override such a frequency requirement by commanding a selection module to formulate and dispatch a directive. Such functionality could, for example, allow a user receiving presented speech in a manner she found unsatisfactory to have a new (and perhaps different) directive dispatched without having to wait for a directive to be automatically dispatched in accordance with the specified frequency.
Certain embodiments of the invention might allow a user or the like to directly request that a new directive be dispatched, perhaps by saying something to the effect of “please speak differently” or “please choose a new voice”. Embodiments might also allow a user or the like to indirectly request that a new directive be dispatched, perhaps by saying something to the effect of “huh?” or “what?” or “I don't understand!”. In the case where such a statement is spoken by the user to which synthesized speech is being presented, the statement might be received via a microphone or the like, such as a microphone or the like used to receive environmental input, and could be processed via known speech recognition techniques. In a similar manner, a system administrator or the like might speak such a command into a microphone for processing via speech recognition. Alternately, a user, system administrator, or the like might enter such a command, for example, through a device or telephone keyboard, keypad, menu, user interface, or the like.
It is further noted that embodiments of the present invention provide functionality wherein a selection module may, in formulating and dispatching a directive, choose to override a frequency requirement of the sort noted above. For instance, in the case where interactive speech is presented to a user, a selection module might act to override a frequency requirement if the user failed to respond to interactive speech voice prompts, and/or responded in a nonsensical manner.
In terms of formulating a particular directive as to how speech should be presented, according to some embodiments of the invention a selection module may act to accept all of the most recently received suggestions dispatched by a particular suggestion module. In such embodiments, there are a number of ways in which a selection module could choose which suggestion module's suggestions should be implemented.
For instance, as alluded to above a suggestion module might include with its suggestion some sort of the certitude of its suggestion. As a specific example, it was noted that a new suggestion module might include with a suggestion an indication of the perceived level of audibility of each entity specified in the suggestion. Accordingly, a selection module might choose to implement the suggestions of the suggestion module that expressed the higher level of certitude in its suggestions. In various embodiments of the invention, a system designer, system administrator, or the like could specify how a selection module should handle the case where two suggestion modules expressed equal levels of certitude.
For example, it might be specified that one sort of suggestion module be favored in ties. More specifically, it might be specified that, in the case of a tie between the level of certitude expressed by a historical suggestion module and some other sort of suggestion module, that the selection module should choose to implement the suggestions of the historical suggestion module. It is further noted that a system designer, system administrator, or the like might specify that a selection module apply certain weightings when evaluating the certitudes expressed by various suggestion modules. For example, it might be specified that certitudes expressed by new suggestion modules be viewed with a weighting of 1.0 while certitudes expressed by a historical selection module be viewed with a weighting of 1.3.
As another example, a system designer, system administrator, or the like might stipulate that a selection module should, instead of comparing the certitudes expressed by various suggestion modules, preferentially implement the suggestions of a specified suggestion module. For instance, it might be stipulated that in the case where a selection module receives suggestions from a historical suggestion module and one or more suggestion modules that are not historical suggestion modules, the selection module's dispatched directive should comprise only the suggestions of the historical suggestion module. As related example, such a stipulation might further indicate that the suggestions of the preferred module should only be implemented in the case where the level of certitude expressed by the preferred suggestion module is above a predetermined threshold.
In certain embodiments, a selection module may allow a user receiving presented speech to choose among various presentations. For instance, a selection module might have a voice synthesis module present a sample phrase or the like in various ways. The ways could, for example, correspond to suggestions received from various suggestion modules. The selection module might then query the user as to which way was best, and dispatch a directive consistent with the user's selection.
It is further noted that, in some embodiments, a selection module might dispatch a directive that includes suggestions of more than one suggestion module. Thus a directive might be dispatched that included certain suggestions dispatched by a new suggestion module and certain suggestions dispatched by a historical module. As an example, suppose certain phonemes were specified by a first suggestion module and some of the same phonemes were specified by a second suggestion module, with a each module providing specification of certitude for each phoneme. For each case where a version of a certain phoneme was specified by the first suggestion module, and a different version of the same phoneme was specified by the second suggestion module, the selection module might select the version of the phoneme associated with a higher specified certitude. Accordingly, the selection module might assemble a directive specifying certain phonemes suggested by the first suggestion module and certain phonemes suggested by the second suggestion module.
Modification Module
As noted above, certain embodiments of the invention may employ a modification module. Such a modification muddle may act to modify a directive dispatched by a selection module before passing the directive on to a speech synthesis module. In certain embodiments, the modification could be in accordance with input received from a user, system administrator, or the like. Such an input might request, for example, that presented speech be lower, softer, slower, higher pitched, or lower pitched.
A modification module could have knowledge of the bank of entities associated with the synthesis module with which it communicates. Accordingly, upon receiving an instruction to modify presented speech, the modification module could examine a directive received form a selection module and note, for example, the entities specified in the directive. Using its knowledge of the speech synthesis module's bank, the modification module could determine entities in the bank that differed, in the manner specified in the received instruction, from the ones specified by the directive. The modification module could then dispatch to the speech synthesis module a version of the directive modified to specify the determined entities.
As a specific example, if a modification module received an instruction that the presented speech should be faster, the modification module could note the phonemes or classes thereof specified in the directive received from the corresponding selection module. The modification module could then employ its knowledge of the bank of the speech synthesis module with which it communicates in modifying the directive to specify phonemes or classes thereof that were similar to the ones originally specified but which differed by offering faster speech presentation. The modified directive could then be dispatched to the speech synthesis module. The newly-specified phonemes might differ from the ones originally specified insofar as generating sounds of shorter duration.
In certain embodiments, a modification module might not modify received directives to specify entities different than those originally specified. Instead, a modification module might append to a received directive signal processing commands. Accordingly, in such embodiments a modification module receiving instructions to speed up speech presentation might append to a received directive an appropriate signal processing command. The receiving speech synthesis module could interpret the directive with appended command to specify that it should speed up speech presentation by applying signal processing to the specified entities. Such signal processing could employ known techniques for achieving the specified presentation change.
According to further embodiments, a modification module might implement certain received instructions by modifying directives to specify different entities, but may implement other instructions by appending signal processing commands. For example, a modification module might carry out instructions for louder or softer speech by appending one or more signal processing commands, but carry out all other instructions by directive modification. As another example, a modification module might attempt to carry out all received instructions via directive modification but, in the case where an instruction could not be fulfilled via directive modification, fulfill it via a signal processing command. Such might occur, for example, in the case where the corresponding speech synthesis module did not have in its banks the appropriate entities to implement an instruction received by the modification module.
It is further noted that certain embodiments of the invention could allow a user, system administrator, or the like to use speech input to provide to a modification module the previously-noted instructions regarding the way in which speech presentation should be changed. Thus a user, system administrator, or the like might provide instructions by stating phrases to the effect of, for example, “talk faster”, “talk slower”, “talk softer”, “talk louder”, “talk more high-pitched”, “talk lower pitched”, “speak like a woman”, or “speak like a man”. In the case where such an instruction was spoken by the user to which synthesized speech is being presented, the instruction might be received via a microphone or the like, such as a microphone or the like used to receive environmental input. The received instruction could be processed via known speech recognition techniques. In a similar manner, a system administrator or the like might speak such an instruction into a microphone for processing via speech recognition. Alternately, a system administrator or user might enter such a command through a keyboard, keypad, menu, or the like, perhaps associated with a telephone or device.
It is additionally noted that in various embodiments a modification module might send to one or more suggestion modules information relating to modifications made. In such embodiments, the receiving suggestion modules might use the information to provide more appropriate suggestions in the future.
Hardware and Software
Certain aspects of the present invention may be implemented using computers. For example, the above-noted suggestion modules, selection modules, identification modules, and/or speech synthesis modules may be implemented as software modules running on computers. For example, one or more of these modules could operate on a call-center computer having a telephone interface whereby speech could be presented to a dial-in user via the earpiece of the user's telephone, and whereby commands and environmental properties could be received via the mouthpiece of the user's telephone. In a similar manner, one or more of the modules could operate on a kiosk or vending machine computer having audio input and output capabilities. Furthermore, various procedures and the like described herein may be executed by or with the help of computers.
The phrases “computer”, “general purpose computer”, and the like, as used herein, refer but are not limited to a media device, a personal computer, an engineering workstation, a call-center, a PC, a Macintosh, a PDA, a kiosk, a vending machine, a wired or wireless terminal, a server, a network access point, or the like, perhaps running an operating system such as OS X, Linux, Darwin, Windows XP, Windows CE, Palm OS, Symbian OS, or the like, possibly with support for Java or .NET.
The phrases “general purpose computer”, “computer”, and the like also refer, but are not limited to, one or more processors operatively connected to one or more memory or storage units, wherein the memory or storage may contain data, algorithms, and/or program code, and the processor or processors may execute the program code and/or manipulate the program code, data, and/or algorithms. Accordingly, exemplary computer 4000 as shown in
In accordance with the present invention, a computer may run one or more software modules designed to perform one or more of the above-described operations, the modules being programmed using a language such as Java, Objective C, C, C#, or C++ according to methods known in the art.
Ramifications and Scope
Although the description above contains many specifics, these are merely provided to illustrate the invention and should not be construed as limitations of the invention's scope. Thus it will be apparent to those skilled in the art that various modifications and variations can be made in the system and processes of the present invention without departing from the spirit or scope of the invention.
The present application is a continuation of U.S. patent application Ser. No. 12/607,362, filed Oct. 28, 2009, now U.S. Pat. No. 8,086,459, which is a continuation of U.S. patent application Ser. No. 11/924,682, filed Oct. 26, 2007, now U.S. Pat. No. 7,624,017, which is a division of U.S. patent application Ser. No. 10/162,932, filed Jun. 5, 2002, now U.S. Pat. No. 7,305,340, the contents of which are incorporated herein by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
4400787 | Mandel et al. | Aug 1983 | A |
4856072 | Schneider et al. | Aug 1989 | A |
5305420 | Nakamura et al. | Apr 1994 | A |
5749071 | Silverman | May 1998 | A |
5926790 | Wright | Jul 1999 | A |
6035273 | Spies | Mar 2000 | A |
6044343 | Cong et al. | Mar 2000 | A |
6081777 | Grabb | Jun 2000 | A |
6173266 | Marx et al. | Jan 2001 | B1 |
6240347 | Everhart et al. | May 2001 | B1 |
6426919 | Gerosa | Jul 2002 | B1 |
6470316 | Chihara | Oct 2002 | B1 |
6725199 | Brittan et al. | Apr 2004 | B2 |
6782361 | El-Maleh et al. | Aug 2004 | B1 |
6810379 | Vermeulen et al. | Oct 2004 | B1 |
6964023 | Maes et al. | Nov 2005 | B2 |
6999930 | Roberts et al. | Feb 2006 | B1 |
7019749 | Guo et al. | Mar 2006 | B2 |
7027568 | Simpson et al. | Apr 2006 | B1 |
7050968 | Murashima | May 2006 | B1 |
7050977 | Bennett | May 2006 | B1 |
7062440 | Brittan et al. | Jun 2006 | B2 |
7110951 | Lemelson et al. | Sep 2006 | B1 |
7124079 | Johansson et al. | Oct 2006 | B1 |
7190469 | Gomi | Mar 2007 | B1 |
7191132 | Brittan et al. | Mar 2007 | B2 |
7305340 | Rosen et al. | Dec 2007 | B1 |
20020055844 | L'Esperance et al. | May 2002 | A1 |
20020128838 | Veprek | Sep 2002 | A1 |
20020152255 | Smith et al. | Oct 2002 | A1 |
20020184027 | Brittan et al. | Dec 2002 | A1 |
20020184030 | Brittan et al. | Dec 2002 | A1 |
20020198714 | Zhou | Dec 2002 | A1 |
20030012221 | El-Maleh et al. | Jan 2003 | A1 |
20030061049 | Erten | Mar 2003 | A1 |
Number | Date | Country | |
---|---|---|---|
20120072223 A1 | Mar 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10162932 | Jun 2002 | US |
Child | 11924682 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12627573 | Nov 2009 | US |
Child | 13303405 | US | |
Parent | 11924682 | Oct 2007 | US |
Child | 12627573 | US |