# Patent

## Title
Phonetic searching

## Abstract

An improved method and apparatus is disclosed which uses probabilistic techniques to map an input search string with a prestored audio file, and recognize certain portions of a search string phonetically. An improved interface is disclosed which permits users to input search strings, linguistics, phonetics, or a combination of both, and also allows logic functions to be specified by indicating how far separated specific phonemes are in time.

## Background
RELATED APPLICATION
This application is a divisional application of U.S. application Ser. No. 09/799,385, filed Mar. 5, 2001, which claims priority to U.S. Provisional Application No. 60/186,933 filed on Mar. 4, 2000. The prior applications are incorporated herein by reference.


TECHNICAL FIELD
This invention relates to processing of audio files, and more specifically, to an improved technique of searching audio and textual strings.
BACKGROUND OF THE INVENTION
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 for a system that can search audio files thousands of times faster than real time.
SUMMARY OF THE INVENTION
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 or 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.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an exemplary input screen to interfacing to the system;
FIG. 2 shows an exemplary matrix utilized in accordance with the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
FIG. 1 shows an exemplary input screen, which may be utilized by the user in order to interface to the system. The figure includes an input string entry field 102, a file identification field 103, and a file type field 104. Other examples of an input screen may be utilized as well, and the invention is not limited to the simplistic exemplary input screen shown in FIG. 1.
Returning to FIG. 1, the input string may be entered using a variety of techniques. One technique is that the input string may be entered using a fully linguistic technique. For example, consider a lengthy file and a user desiring to search for the sentence “The rain in Spain falls mainly on the plane.” The search string may be input by a user simply entering the correctly spelled text. However, the search string may also be input utilizing boolean logic wherein the connectors represent different distances. For example, the user may instruct the software to search for the term “rain” within the same sentence, or within ten words of the term “mainly”. Moreover, the “distance” specified may be in the form of time. The user may input a search string that attempts to locate occurrences of the term “rain” within two seconds of the term “Spain”.
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 concerted 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 [FAOLZ] mainly on the plane”. The term [FAOLZ] is a phonetic representation of “falls.” The deliminators 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 compute bs(Ot) for all states s, 1≦s≦S, where S is the number of states, and observation symbols Ot 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 FIG. 2.
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 FIG. 2, if row 251 represents a particular 32 ms time slice from time X to time X+32 ms, then row 252 would represent a slice of time beginning at time X+10 ms and ending at time X+42 ms. The preprocessing of the stored audio signal, prior to searching, provides a significant speed increase in that it minimizes the processing requirements during searching. The output of the preprocessing step includes a matrix of probabilities as shown in FIG. 2, with each entry of the matrix representing the probability bk(Ot) as defined earlier that the signal is in that state at that time.
In addition to the foregoing preprocessing, a forward variable score for the bridge state α1(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 α1(bridge) is calculated for each frame (i.e., row) in the matrix of FIG. 2. Preferably, it is stored using sixteen bit quantized values, but the invention of course is not limited thereto.
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, β1(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, βt(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

Γtn=[β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 FIG. 2 during the time frame t+b 1.

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 FIG. 2, the probability that the search string ended during that frame.
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 αt(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:

    
    
        For k=1, which is the first state in the search string:

αt+1(1)=[αt(bridge)abridge,1+αt(1)a11]b1(Ot+1)

        For k>1 and up through n, the following applies:

αt+1(k)=[αt(k−1)αk−1,k+αt(k)αkk]bk(Ot+1).2≦k≦n,0≦t≦T 

    
    


Wherein bn(Ot+1) is the entry of the matrix of FIG. 2 appearing in the nth column, t+1 row. The transition probabilities ajk were previously calculated during the initial phase that modeled the signal.
Notably, any states not contained in the search string correspond to columns of the matrix of FIG. 2 that need not be processed. Thus, much of the matrix of FIG. 2 need not be loaded during searching, or equivalently, much of the matrix may be discarded prior to processing the search string. This technique saves significant processing resources, and results in a much faster search.
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 states 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:




  
    
      P
      t
      ′′
    
    ⁡
    
      (
      keyword
      )
    
  
  =
  
    
      
        
          
            α
            t
          
          ⁡
          
            (
            n
            )
          
        
        ⁢
        
          
            Γ
            t
          
          ⁡
          
            (
            n
            )
          
        
      
      
        P
        ⁡
        
          (
          
            O
            ❘
            λ
          
          )
        
      
    
    ⁢
    
      a
      
        n
        ,
        5
      
    
  




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 designate, 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.

## Claims

1. A method for finding a desired audio event in an audio signal comprising:
accepting audio data representing a recording of the audio signal in a recording interval having a beginning and an end, wherein a first end time comprises a time of one of the beginning and the end of the recording interval and a second end time comprises a time of the other of the beginning and the end;
preprocessing the audio data, including
computing preprocessing data associated with each of a series of times in the recording interval, including computing preprocessing data that include scores associated with each of the times based on the audio signal between said each of the series of times and the first end time of the recording interval, and
storing said preprocessing data;

determining a representation of the desired audio event; and
searching the audio signal for the desired audio event, including
computing scores for each of the series of times in the recording interval based on the representation of the desired audio event and associated with the audio signal between said each of the series of times and the second end time of the recording interval,
retrieving the stored preprocessing data, and
combining the scores based on the representation of the desired audio event and scores from the retrieved preprocessing data to form scores for the desired audio event each associated with a different time in the recording interval.

2. The method of claim 1 further comprising finding occurrences of the desired audio event based on the scores for said events.

3. The method of claim 1 wherein finding occurrences of the desired audio event based on the scores for said events includes ranking times in the recording interval according to the scores for the desired audio event at said times.

4. The method of claim 1 wherein computing the preprocessing data is performed independently of the desired audio event.

5. The method of claim 4 wherein computing the preprocessing data is performed prior to determining the representation of the desired audio event.

6. The method of claim 1 wherein computing the preprocessing data includes computing scores associated with each of a series of equally spaced times.

7. The method of claim 6 wherein the equally spaced times are spaced at intervals of 10 milliseconds.

8. The method of claim 1 wherein the first end time is earlier than the second end time in the recording interval.

9. The method of claim 1 wherein computing the preprocessing data includes computing probabilities of model states associated with each of said times.

10. The method of claim 1 wherein computing preprocessing data associated with each of the series of times in the recording interval further includes computing preprocessing data that includes scores associated with each of the series of times based on the audio signal between said time and the second end time of the recording interval.

11. The method of claim 10 wherein computing preprocessing data that includes scores associated with each of the series of times based on the audio signal between said time and the second end time of the recording interval includes computing a probability associated with each time.

12. The method of claim 1 wherein computing the preprocessing data further includes computing preprocessing data associated with each time and associated with each of a plurality of model states based on the audio signal in the vicinity of said time.

13. The method of claim 12 wherein computing preprocessing data associated with each time and associated with each of the plurality of model states includes computing a quantity associated with a likelihood of observing the audio signal in the vicinity of said time in each of the model states.

14. The method of claim 1 wherein preprocessing the audio data includes quantizing the computed data before storing said data.

15. The method of claim 1 wherein the computing the preprocessing data includes processing the audio data using a hidden Markov model.

16. The method of claim 15 wherein the hidden Markov model includes phonetic models.

17. The method of claim 15 wherein computing the preprocessing data associated with a time based on the audio signal between said time and the first end time of the recording interval includes computing a probability of observing the audio signal between said time and the first end time according to the hidden Markov model.

18. The method of claim 17 wherein computing a probability of observing the audio signal between said time and the first end time according to the hidden Markov model includes computing a probability of observing said audio signal and occupying a state of the model that is associated with an endpoint of the desired audio event.

19. The method of claim 17 wherein the computing the preprocessing data includes applying a recursive computation for successive of the times of the series of times in the recording interval.

20. The method of claim 1 wherein determining a representation of the desired audio event includes determining a phonetic representation of the desired audio event.

21. The method of claim 20 wherein determining a representation of the desired audio event includes accepting a text representation.

22. The method of claim 21 wherein accepting the text representation includes accepting one or more words.

23. The method of claim 22 wherein accepting words includes accepting a phrase.

24. The method of claim 21 wherein accepting the text representation includes accepting text representation of a pronunciation.

25. The method of claim 21 wherein accepting the text representation of a pronunciation includes accepting a representation in terms of phonetic units.

26. The method of claim 20 wherein determining a representation of the desired audio event includes accepting an audio signal.

27. The method of claim 26 wherein accepting the audio signal includes accepting data encoding a spoken word.

28. The method of claim 1 wherein determining a representation of the desired audio event includes determining a representation of multiple components of the desired audio event, and characteristics of a desired temporal relationship of the components.

29. The method of claim 28 wherein determining a representation of multiple components includes determining a phonetic representation of each of the components.

30. The method of claim 28 wherein determining characteristics of a desired temporal relationship of the components includes determining a maximum temporal separation of said components.

31. A method for finding a desired audio event in an audio signal comprising:
preprocessing the audio signal independently of the desired audio event, including
computing preprocessing data associated with each of a series of times in a recording interval, including computing preprocessing data that include scores associated with each of the series of times and associated with different model states, and
storing said preprocessing data; and

accepting a representation of the desired audio event;
searching the audio signal for the desired audio event, including
retrieving the scores from the stored preprocessing data,
computing scores using the accepted representation of the desired event, and
computing scores for occurrences at corresponding times of the desired audio event by combining the retrieved scores and scores computed using the accepted representation of the desired event.

32. The method of claim 31 wherein computing preprocessing data that include scores associated with each of the times and associated with different model states includes computing scores associated with phonetic models.

33. The method of claim 31 wherein computing scores for occurrences of the desired audio event includes evaluating an expression for a quantity characterizing a probability of occurrence of the desired audio event, wherein the expression includes a first term determined from the scores of the preprocessing data and second term determined using the representation of the desired audio event.

34. The method of claim 31 wherein the computing of the preprocessing data requires substantially more computation than the computing of the scores using the accepted representation of the desired event.