This invention relates to processing of audio files, and more specifically, to an improved technique of searching audio and textual strings.
Stored documents and audio files may be searched in a wide variety of business situations. The user may wish to search a video recording for specific topics, or may wish to search a textual file. Textual searching may be done, for example, for the purpose of reviewing long transcripts and other such items. Typically, search strings are entered by a user and the search string is compared to a stored file. When a match is found, an indication of such is conveyed to the user.
With regard to textual searching, one problem is that misspellings will not be matched. More specifically, if the search string spells a word differently from the way that the word appears in the document, the searching software would usually not find the word in the document. With regard to audio searching, the signal processing is usually extremely complex. This means that unless one employs a super high speed and expensive computer, the searching cannot be done in a reasonable time frame, and certainly cannot be accomplished in many times faster than real time. Thus, it is impractical to search a substantial size file of audio in a user interactive manner. Further, because speech to text algorithms are subject to error, prior known searching algorithms based on the textual output of a speech to text system are typically unreliable.
Still another issue is the use of “hard decisions” in audio searching. Specifically, in most prior systems, a threshold is set that represents a degree of similarity. If the search string and the file being searched meet the threshold, then a “match” is declared. These hard decisions are not optimum in audio searching, due to the large number of variables in search strings, particularly if such search strings are input in audio form themselves.
Another issue which has hindered the potential uses of audio searching software is the fact that the user interfaces are typically unreliable or cumbersome. More specifically, the user would typically interface with the system using a boolean searching strategy, which often requires that commands be spelled correctly. While the user may instruct the system to look for words within a certain “distance” of each other, such “distance” is usually specified by a number of words, sentences, or paragraphs. For example, a user may instruct a system to look for the word “take-off” in the same sentence as the word “airplane”. However, phonetic searching operates by sounds on actual audio signals, not by sentences. Thus, it is difficult for the software to accurately determine when items are in the same sentence, within three words of each other, etc.
In view of the foregoing, there exists a need in the art for an improved user interface and phonetic searching system that can provide high speed, search results.
There is also a need for a system that can provide a user-friendly and flexible interface into a phonetic and textual searching system.
There also exists a need for a better system of logic functionality for permitting a user to input items for searching in a textual or audio file.
There is still a further need in the art of a system that can search audio files thousands of times faster than real time.
The above and other problems of the prior art are overcome in accordance with the present invention. A first aspect of the invention relates to permitting a user to input searching criteria and command a software system to process an input search string against a prestored file that may be either of the audio type of the textual type. In a preferred embodiment, the user inputs words and the system determines whether each word in the input search string is a phonetic spelling or a linguistic spelling. Thus, the user may use “mix and match” in the input string. Other embodiments include allowing the user to specify distances between words by time, and/or by number of words and sentences.
The user is also permitted to input search strings to be used against a textual file, which will be converted to a phonetic description, and searched phonetically. In such a case, the search string may be input linguistically, phonetically, or via audio.
An algorithm is also disclosed for performing the phonetic searching. The preferred embodiment of the algorithm eliminates any hard decisions, and instead calculates a set of probabilities indicating where in the file the search string is likely to be, ranking such results preferably in order of increasing or decreasing probability. The algorithm preferably utilizes a stored probably matrix that includes rows representing time frames of the stored file, and columns representative of various phoneme states.
The foregoing and other advantages of the present invention will become apparent as the following description of the preferred embodiment and drawings are reviewed.
Returning to
The above techniques may be mixed and matched as the system implementer desires and as the particular system dictates. Thus, for example, the user may input a search string seeking to find occurrences of the term “rain” within two seconds of the term “Spain”, all in the same sentence as the word “plane.” Other variations are also possible.
Regardless of which such input method is used to enter the search string, all of the terms may be converted to phonetic representation prior to performing the search. The file to be searched is also either an audio file, or a text file that has been converted to a phonetic transcription.
In the event that the user does not know how to spell one or more words or phrases, part of the search string may be input in phonetic form. Thus, for example, a user can input a search string by specifying “The rain in Spain [ F AO L Z ] mainly on the plain”. The term [ F AO L Z ] is a phonetic representation of “falls.” The delimitors signify a phonetic representation. This would permit the system to search for the appropriate string even though only a portion of the string is spelled correctly. The user may also input word or nonsense utterance whose pronunciation using letter-to-sound rules approximate that of the target.
Notably, a novel aspect of the invention therefore, comprises converting the input string into phonetics by searching the input string to ascertain which words are entered linguistically, and which words have been entered phonetically. A text to speech program can then be utilized to convert the linguistically entered words into phonetics, while the phonetically entered words are converted by simply generating the phonemes. Any words that are misspelled linguistically will be detected via their absence from a dictionary. The spelling can then be corrected using standard techniques known and used in word processors, and the correct linguistically entered word ascertained and converted to phonetics. In another embodiment, the system could process correctly spelled words linguistically, and could presume that incorrectly spelled words are phonetically entered. Notably, even if the incorrect word is ascertained, as long as the ascertained word is phonetically similar to the desired word, then the phonetic searching described herein will operate substantially correctly.
Thus, a search string may be entered that specifies phonetically or linguistically which terms are to be located, and which specifies distances between items in the search string by either words, paragraphs, etc. or by time. The search string may even be entered in a manner that separates words by number of phonemes, although such a technique is less user-friendly and thus less desirable. The ability to specify search items in such a manner provides the most flexibility to a user, and represents an advance over fixed input type of systems.
In still another embodiment, the input string may itself be entered by voice commands. The voice commands are then placed through a speech recognition algorithm and are turned into a sequence of phonemes for phonetic searching. The algorithm to convert the voice string into the phonemes may be a commercially available such algorithm, or may utilize the technology described later herein.
File to search field 103 permits a user to specify whether the search is being performed on a text or an audio file. In the case of a text file, the system may convert such text first to a phonetic transcription. Note that the software may determine automatically from the examination of the file whether the file to be searched is an audio file or a text file. However, in the case where two files have the same name, it would be desirable to specify which file should be searched, either the audio or the textual. For phonetic searching, the file may be preprocessed in accordance with the algorithm described hereafter.
A quality meter 106 is also part of the user interface. The quality meter gives the user an indication of how accurate the search results are likely to be based upon the input search string being entered. The “quality” would usually increase as the number of words increases. Moreover, given the probabilistic nature of the search, and the lack of hard decisions, the longer and more unique the search string is, the more accurate the results. The quality meter includes an indicator that moves from a predetermined minimum to a predetermined maximum in order to indicate how “good” the input search string is.
The quality meter may be calibrated empirically by measuring the quality of results achieved with search strings of different lengths. Alternatively, the quality of the search may be related to any parameter of the string via empirical calculations. Thus, the quality may be related to the number of vowels in the search string, the number of separate words, or any other parameter. The system designer is free to pick any parameter that characterizes the search string, vary the values through a range, and then utilize changes in the accuracy of the result to calibrate the quality meter correctly.
Once calibrated, the quality meter determines that a particular search string is 50%, or 80%, or 90% accurate. The user may then keep lengthening and changing the search string until an acceptable quality is reached.
The algorithm for performing the search is essentially a matrix of phonemes, wherein one dimension of the matrix represents time frames of an audio file to be searched, and a second dimension of the matrix represents the 40 phonemes and a “bridge” state, representing the state between words. The second dimension actually includes 121 values, since each of the forty phonemes includes three states, and the “bridge” state is one additional state.
In order to maximize the speed of searching the stored audio file, a novel-searching algorithm, is disclosed. In the exemplary embodiment, multiple Gaussian mixtures are utilized to model a vector of 39 features, the features being comprised of 13 Mel Frequency Cepstral Coefficients (MFCC's) along with a first and second derivative for each. The models are then used to computer bs(Ot) for all states s, 1<s<S, where S is the number of states, and observation symbols O, at all time frames t, as specified in Rabiner Equation (8). The possible states are chosen from the 121 states, 120 of which represent 3 states of 40 phonemes, and one of which is a “bridge” state as described below. The model utilized is one of several standard models used to train in the well-known Balm Welch training algorithm.
In addition to being utilized to calculate bs(Ot) for all states and time frames, the models also contain state transition probabilities ajk as defined in Rabiner Equation (7). The transition probabilities ajk represent the probability that the signal will transition to a state k the next time frame if it is currently in state j. These transition probabilities can be ascertained using the Baum Welch algorithm as described in Rabiner III-C or other ways known in the art.
During pre-processing of the stored audio file, a matrix is constructed, wherein rows of the matrix represent time frames of an audio file, and columns of the matrix represent different possible states. Each entry in the matrix is the likelihood of the feature vector for a specified phoneme at a specified time as denoted bs(Ot), or more accurately, during a specified time frame. A representation of such a matrix is depicted in
Preferably, each of these probabilities is quantized with a four-bit log linear quantizer producing a quantized score. The score for each phoneme state is stored for every frame. In a preferred embodiment, the frame is 32 milliseconds long, and overlapping frames are calculated every 10 ms. Thus, with reference to
In addition to the foregoing preprocessing, a forward variable score for the bridge state αt(bridge) as described in Rabiner, equations (19) and (20), for all frames is calculated. Conceptually, this represents the probability that the system is entering the bridge state, given the signal history starting from the beginning of the signal and moving forward. It attempts to calculate the probability that, of the plural possible different paths through all of the possible states that the signal could take, it in fact took a path that would put it into the bridge state during this particular frame. This forward variable score at(bridge) is calculated for each frame (i.e., row) in the matrix of
The next step in the preprocessing, is to calculate and store P(O/λ), as described in Rabiner, eqn. (21). O represents all of the speech feature vectors O0 OT. The variable λ stands for the entire HMM network and acoustical models that were calculated when the speech signal was modeled according to the multiple guassian models and the Baum Welch training algorithm as previously described. Conceptually, the term P represents the probability that the input speech signal was produced by the acoustical model used to model the speech. Techniques and software for calculating P are known in the art.
The next step in the preprocessing stage is to calculate the backwards probability, Bt(bridge), as described in Appendix B eqn. (24) and (25) for all frames. This represents the probability that the signal is in the bridge state given the history looking backwards. In other words, starting from the end of the signal and working toward the beginning, as the frames are traversed, Bt(bridge) represents the probability that the signal has traversed a path of states that leads it into the bridge state at time t. This probability then must be multiplied by the acoustical probability that the signal is in the bridge state at time t, based upon the Guassian models previously described.
Next, we observe that the probability that a phoneme having its last state as state n ends in a particular time frame t can therefore be represented as
Γt(n)=[βt+1(bridge)]bbridge(Ot+1)][an,bridge]
where bbridge(Ot+1) is the acoustical probability of the bridge state given the feature vector from frame t+1. In other words, bbridge(Ot+1) is the 121st column of the matrix shown in
The an,bridge represents the transition probability from state n to the bridge state. State n is chosen to be the last state of the last phoneme of the search phrase, and thus depends on the search string. Nonetheless, the portion of the Γt(n) for each of the time frames that is represented by the first two factors of the right side of the above equation is all known in advance of the entry of the search string, and can be calculated during preprocessing. When the search string is entered, the calculation of the Γt(n) can be completed, yielding a set of variables that represent the probability that the system has moved from the bridge state at time t, given Ot+1, Ot+2, . . . , OT and its audio characteristics during time t.
After completing the foregoing preprocessing, the system will seek to find, during searching, for each time frame, the probability that the signal, moving backwards in time, goes from the bridge state to the state that is the last state of the search string. In other words, this represents the probability that the search string ended during a time frame in the prestored audio file.
In the search stage, a command may be given by a user to find a specified key word or phrase in the audio. The command may be given utilizing one of the exemplary user interfaces described herein, or another exemplary user interface. Once converted to phonetics, the goal now is to compare the search string to the preprocessed information and to ascertain, for each time frame in the matrix of
In furtherance of the above, the system needs to ascertain, as best as possible, what the state of the search string is at the time the string ends. In other words, the system attempts to ascertain the last state of the last phoneme of the search string. It then compares this last state to the stored preprocessed audio file in order to find the 32 ms frames that have the maximum probability that the last state of the search string occurred during said frame.
More specifically, the search string is processed initially to obtain a probability that the search string is in state k at a time frame of −1. This is initialized by setting
α1(k)=0
for all states (i.e., for all ks).
The variable at(k) as defined in Rabiner Equation (18), is the forward variable probability that the search string is the kth state during time frame t. For each time frame greater than −1, the probability that the search string traversed a sequence of states to arrive at a state k is calculated as follows:
Wherein bn(Ot+1) is the entry of the matrix of
Notably, any states not contained in the search string correspond to columns of the matrix of
Intuitively, the foregoing attempts to calculate the probability that the input signal has traversed a path defined by a set of states. For each time frame and each state, the above calculates the probability that the signal was in that state and stayed in that state, and adds it to the probability that the signal was in the prior state and moved to the state in question. The equation above for the first state is slightly different, because the first state was entered from the bridge state.
The system then can find the time frame in the stored audio file at which the search phrase is most likely to have ended by calculating the probability that the path of the search string through all possible state goes from state n, the last state of the search phrase, to the bridge state, during time frame t. The following equation yields such a result:
where λ is defined in Rabiner Equation (11)
The system computes the above equation for each of the time frames t, which represent the probabilities that the search string ended within a particular time frame. These probabilities are then sorted and preferably displayed in descending order. The result is a list of the time frames, in descending order of probability, during which it is most likely that the search phrase ended.
In essence, the algorithm is determining the probability that the searched for phrase ended during a particular time t. The algorithm may then output the set of probabilities, with the corresponding time t, in decreasing order. This can represent a decreasing ordered list of the most probable times that the searched for phrase appears in the stored audio signal.
It will be readily appreciated by those of skill in the art that the foregoing algorithm need not be limited to searching for the time frame in which a key phrase or word ends. By simply reversing the time order of the foregoing equations, which are set up to search for the end of a word, the algorithm may search for the beginning of a word. Moreover, after the particular time frames in which the beginning or end of the word occurs are ranked by probability value, the audio may be played back to a user. Preferably, the list of time frames would be displayed on the screen, and the user can select particular time frames. Once the time frame is selected, the system should preferably begin playing back the audio from the stored audio textual file from a few words, seconds, or sentences prior to the selected time frame, so that the user can see the context of the phrase.
We note that the term “Phonetic”, as used herein, is given its ordinary meaning. That is, it is meant to define the format used by most common dictionaries. The use of a phonetic search string provides more user flexibility because the user need not know the correct spellings of each word.
There is however, still another type of search string contemplated by the present invention, which is sometimes referred to as phonetic but which is different from the ordinary phonetic. We term this additional type of search string a “sounds like” phonetic search string. An example will help illustrate. Take the word “caterpillar”. A phonetic spelling is kat'er pil'er. A sounds like phonetic spelling would be “cat are pill or”, which although not strictly phonetic, represents still another manner in which search strings may be put in. Different deliminaters or other characters may be used to designated, for each term or sound in the input phrase, whether the term or sound is being entered linguistically, phonetically, or using sounds like phonetically. In such a manner, any combination of two or three of the foregoing techniques may be used depending upon user preferences.
While the foregoing describes the preferred embodiments of the invention, it will be appreciated that various other modifications or additions will be apparent to those of skill in the art. Such modifications or additions are intended to be covered by the following claims.
This application claims priority to U.S. Provisional Application No. 60/186,933 filed on Mar. 4, 2000. That application is incorporated herein by reference and appended hereto as Appendix A. This application also incorporates by reference “A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition”, by Lawrence Rabiner, published in February 1989 in Proceedings of the IEEE, Vol. 77, Iss. 2, pp. 257-285 (“Rabiner”). Excepts of Rabiner are appended hereto as Appendix B.
Number | Name | Date | Kind |
---|---|---|---|
4481593 | Bahler | Nov 1984 | A |
4802231 | Davis | Jan 1989 | A |
4896358 | Bahler et al. | Jan 1990 | A |
5123057 | Verly et al. | Jun 1992 | A |
5199077 | Wilcox et al. | Mar 1993 | A |
5218668 | Higgins et al. | Jun 1993 | A |
5406423 | Sato | Apr 1995 | A |
5440662 | Sukkar | Aug 1995 | A |
5440730 | Elmasri et al. | Aug 1995 | A |
5454062 | La Rue | Sep 1995 | A |
5483586 | Sussman | Jan 1996 | A |
5509104 | Lee et al. | Apr 1996 | A |
5526444 | Kopec et al. | Jun 1996 | A |
5557789 | Mase et al. | Sep 1996 | A |
5621849 | Sakurai et al. | Apr 1997 | A |
5649057 | Lee et al. | Jul 1997 | A |
5701452 | Siefert | Dec 1997 | A |
5732394 | Nakadai et al. | Mar 1998 | A |
5748840 | La Rue | May 1998 | A |
5787414 | Miike et al. | Jul 1998 | A |
5794194 | Takebayashi et al. | Aug 1998 | A |
5797123 | Chou et al. | Aug 1998 | A |
5822405 | Shaun | Oct 1998 | A |
5822409 | Chang et al. | Oct 1998 | A |
5822729 | Glass | Oct 1998 | A |
5832430 | Lleida et al. | Nov 1998 | A |
5842163 | Weintraub | Nov 1998 | A |
5884259 | Bahl et al. | Mar 1999 | A |
5884262 | Wise et al. | Mar 1999 | A |
5895464 | Bhandari et al. | Apr 1999 | A |
5909662 | Yamazaki et al. | Jun 1999 | A |
5918222 | Fukui et al. | Jun 1999 | A |
5918223 | Blum et al. | Jun 1999 | A |
5950159 | Knill | Sep 1999 | A |
6023659 | Seilhamer et al. | Feb 2000 | A |
6023677 | Class et al. | Feb 2000 | A |
6023726 | Saksena | Feb 2000 | A |
6073095 | Dharanipragada et al. | Jun 2000 | A |
6185527 | Petkovic et al. | Feb 2001 | B1 |
6253178 | Robillard et al. | Jun 2001 | B1 |
6260011 | Heckerman et al. | Jul 2001 | B1 |
6317710 | Huang et al. | Nov 2001 | B1 |
6345253 | Viswanathan | Feb 2002 | B1 |
6434520 | Kanevsky et al. | Aug 2002 | B1 |
7113910 | Pereira et al. | Sep 2006 | B1 |
20020052870 | Charlesworth et al. | May 2002 | A1 |
20050216443 | Morton et al. | Sep 2005 | A1 |
Number | Date | Country |
---|---|---|
0177854 | Jun 1989 | EP |
0398574 | Nov 1990 | EP |
Number | Date | Country | |
---|---|---|---|
60186933 | Mar 2000 | US |