text:
Assessing decoys for use in an audio recognition process for identifying predetermined sounds in an unknown input audio signal, involves a test recognition process for matching known training audio signals to models representing the predetermined sounds and the decoys and determining for each of the decoys, from the results of the test recognition process, a score representing the effect of the respective decoy in the recognition of any of the known training audio signals. An advantage arising from generating scores for decoys is that the chance of a poor selection of decoys can be reduced. Thus the possibility of poor recognition performance arising from poorly selected decoys can be reduced. Furthermore, the requirement for expert input into the decoy creation process, which may be time consuming, can be reduced. This can make it easier, or quicker, or less expensive to install.
1. A method of assessing decoys for use in an audio recognition process for identifying predetermined sounds in an unknown input audio signal, the method comprising the steps of:
carrying out a test recognition process by matching known training audio signals to models representing the predetermined sounds and the decoys; and
determining for each of the decoys, from the results of the test recognition process, a score representing the effect of the respective decoy in the recognition of any of the known training audio signals,
wherein the known training audio signals comprise known non-vocabulary utterances, and the score additionally represents the effect of the respective decoy on the rejection of any of the non-vocabulary utterances.
2. The method of claim 1 further comprising the preliminary step of generating at least some of the decoys from a random combination of component sounds.
3. The method of claim 1 further comprising the steps of determining for the respective decoy, further scores relating to further ones of the known training audio signals, and determining an accumulated score from the score, and the further scores.
4. The method of claim 1 further comprising the step of selecting which decoys to use according to the determined scores.
5. The method of claim 1 wherein the audio recognition process comprises a speech recognition process, and the predetermined sounds comprise words.
6. The method of claim 1 wherein the step of determining the score comprises the steps of:
determining whether the respective decoy is a closer match to a given one of the known training audio signals than the best matching predetermined sound; and
determining the score according to the result.
7. The method of claim 6 wherein the step of determining the score comprises the steps of:
determining how many other decoys are a closer match to the given one of the known training audio signals than the best matching predetermined sound; and
determining the score according to the result.
8. The method of claim 6 wherein the step of determining the score comprises the steps of:
determining how close a match the respective decoy is relative to any other decoys which are a closer match to the given one of the known training audio signals than the best matching predetermined sound; and
determining the score according to the result.
9. A method of audio recognition for identifying predetermined sounds in an unknown input audio signal, using decoys having associated scores determined by carrying out a trial recognition process by matching known training audio signals to models representing the predetermined sounds and the decoys, the scores representing the effect of a respective decoy in the recognition of any of the known training audio signals, the method comprising the step of:
performing the audio recognition process for identifying predetermined sounds in an unknown input audio signal by matching the unknown input audio signal to models of the predetermined sounds and the decoys, according to the scores associated with the decoys, wherein the matching is carried out using decoys weighted according to their score.
1. Field of the Invention
The invention relates to methods of assessing decoys for use in an audio recognition process, to methods of audio recognition for identifying predetermined sounds in an unknown input audio signal, using decoys, to apparatus and to software for such methods.
2. Background Art
It is known to perform pattern matching such as speech recognition, using steps of:
1) matching an unknown input against a number of models of known speech, (a lexicon)
2) classifying the results (termed tokens), e.g. determining if the closest match is likely to be correct, with or without a positive rejection step.
Classifying recognition results without rejection is usually simple—the recognizer's top choice is either correct or wrong. With rejection, things are a little more complicated. Rejection attempts to detect when the recognition result is incorrect, either because the person said something that is outside the lexicon or because the recognizer has made an error. If the person has said something that is outside the lexicon, the utterance is called a non-vocabulary utterance, referred to herein at times as an imposter utterance. For example, a typical speech recognition application could have about 10% non-vocabulary utterances, which means that 10% of the time, the person says something that is not in the recognizer's vocabulary. The result, after rejection, is classified as one of:
correct acceptance (CA): The recognizer's top choice will lead to performing the correct action, and the rejection algorithm accepts the result (note that this does not mean that the recognizer has gotten every word correct, but just that it has gotten all the important ones correct. For example, in the locality task, it has gotten the locality correct but may have the wrong prefix or suffix).
false acceptance (FA): The top choice is incorrect, either because of a recognition error, or because the token is a non-vocabulary utterance but is not rejected.
correct rejection (CR): The token is an imposter and it is rejected.
false rejection (FR): The token is not a non-vocabulary utterance, but it is rejected (note that if the top choice of the recognizer is wrong, the rejection algorithm is correct to reject the result, but it is still referred to as a false rejection because the notion of correct and false are relative to what the speaker intended, and not the recognizer).
The other commonly used term is "forced choice accuracy," which refers to the number of times the recognizer's top choice is correct, without considering rejection. The maximum value for forced choice accuracy is 100% minus the non-vocabulary utterance rate. The forced choice accuracy is the maximum possible value for CA, which occurs when the rejection algorithm accepts all correct recognitions. Typically, however, a (hopefully) small percentage of the correct recognitions are rejected, so that CA is less (typically, on the order of 10%) than the forced choice accuracy.
Classification of a token as a CR or FR is sometimes altered by the definition of a non-vocabulary utterance, because of the notion of word spotting. The goal of a true word-spotting system is to pick out the important words, regardless of what the speaker may say before, between, or after them. Technically, if a person says something with a valid core, but an invalid prefix or suffix (where invalid means it is not in the supported prefix or suffix), the token is a non-vocabulary utterance. In the past, such a token has been considered correctly accepted if the recognizer gets the core right, but also correctly rejected if the token is rejected. To be consistent, one definition should be used, and the trend is towards considering a token to be a non-vocabulary utterance only if it does not have a core, or the core is outside of the supported vocabulary, since the goal is towards having a true word-spotting system. More precisely, the goal is to improve the automation rate, which is achieved by having a recognizer which gets all the important words correct, and realizes when it has made an error on an important word.
Rejection using decoys is known, for example from U.S. Pat. No. 5,097,509 (Lennig). Some non-vocabulary utterances may occur much more frequently than others. For example, non-vocabulary utterance tokens could be "Hello", "Ah", or nothing but telephone noise (the person said nothing at all, but there was enough noise on the line so that the end-pointer did not detect the lack of speech). The most effective way to reject these tokens is to use decoys. A decoy is simply a model for the non-vocabulary utterance that is added to the recognizer's lexicon. If a decoy is the top choice returned by the recognizer, the token is rejected, regardless of the result of any classification algorithm.
However, it is possible that decoys can reduce the effectiveness or speed of the classification, if they produce close matches to utterances that are within the vocabulary. Accordingly decoys need to be carefully selected to suit the application, or the lexicon. This task requires expert input and may be time consuming, thus limiting the breadth of applicability or the ease of installation of new systems.
It is known from U.S. Pat. No. 4,802,231 (Davis) to generate error templates for a pattern matching process such as speech recognition, derived from words input to the recogniser, and erroneously recognised as matching a word in the vocabulary of the recogniser. Composite error templates may be generated by combining error templates.
It is known from U.S. Pat. No. 5,649,057 (Lee at al) to generate statistical models of extraneous speech and background noise, for use in an HMM (Hidden Markov Model) based speech recognition system. The system involves representing a given speech input as a keyword preceded and followed by sequences of such unwanted sounds. A grammar driven continuous word recognition system is used to determine the best-matching sequence of unwanted sounds and keywords. The model or models of the unwanted noises are refined by an iterative training process, i.e. varying the parameters of the HMM until the difference in likelihoods in consecutive iterations is sufficiently small. The iterative process starts with manual input of the keywords, the most important unwanted words, and noise samples, but may be performed automatically thereafter.
It is an object of the invention to provide improved methods and apparatus.
According to a first aspect of the invention there is provided a method of assessing decoys for use in an audio recognition process for identifying predetermined sounds in an unknown input audio signal, the method comprising the steps of:
carrying out a test recognition process by matching known training audio signals to models representing the predetermined sounds and the decoys; and
determining for each of the decoys, from the results of the test recognition process, a score representing the effect of the respective decoy in the recognition of any of the known training audio signals. An advantage arising from generating scores for decoys is that the chance of a poor selection of decoys can be reduced. Thus the possibility of poor recognition performance arising from poorly selected decoys can be reduced. Furthermore, the requirement for expert input into the decoy creation process, which may be time consuming, can be reduced. This can make it easier, or quicker, or less expensive to install or adapt to particular circumstances. Also, better rejection, or less false acceptance may be achieved if some decoys are identified which are unexpectedly good.
Preferably, the known training audio signals comprise known non-vocabulary utterances, and the score additionally represents the effect of the respective decoy on the rejection of any of the non-vocabulary utterances. An advantage arising from this is that decoys suited to rejecting given non-vocabulary utterances could achieve good scores and be included in the final dictionary.
Preferably, the method comprises the preliminary step of generating at least some of the decoys from a random combination of component sounds. An advantage arising from this is that wider coverage of gaps between words in the vocabulary can be achieved, and the generation and selection can be easier to automate.
Preferably, the method further comprises the steps of determining for the respective decoy, further scores relating to further ones of the known training audio signals, and determining an accumulated score from the score, and the further scores. An advantage arising from this is that the scores will better reflect the effectiveness of the decoy.
Preferably, the method comprises the step of selecting which decoys to use according to the determined scores. An advantage arising from this is that ineffective decoys can be discarded, thus making the recognition process more economical, since fewer comparisons will need to be made.
Preferably, the audio recognition process comprises a speech recognition process, and the predetermined sounds comprise words. Preferably, the step of determining the score comprises the steps of:
determining whether the respective decoy is a closer match to a given one of the known training audio signals than the best matching predetermined sound; and
determining the score according to the result. An advantage arising from this is that it helps determine objectively which are particularly good, and which are particularly bad decoys.
Preferably, the step of determining the score comprises the steps of:
determining how many other decoys are a closer match to the given one of the known training audio signals than the best matching predetermined sound; and
determining the score according to the result. An advantage arising from this is that it helps determine objectively which are critically good, or critically bad decoys.
Preferably, the step of determining the score comprises the steps of:
determining how close a match the respective decoy is relative to any other decoys which are a closer match to the given one of the known training audio signals than the best matching predetermined sound; and
determining the score according to the result. An advantage arising from this is that it helps to refine the scoring further, to distinguish between clusters of decoys.
According to another aspect of the invention, there is provided a method of audio recognition for identifying predetermined sounds in an unknown input audio signal, using decoys having associated scores determined by carrying out a trial recognition process by matching known training audio signals to models representing the predetermined sounds and the decoys, the scores representing the effect of a respective decoy in the recognition of any of the known training audio signals, the method comprising the step of:
performing the audio recognition process for identifying predetermined sounds in an unknown input audio signal by matching the unknown input audio signal to models of the predetermined sounds and the decoys, according to the scores associated with the decoys. If the decoys are well selected, rejection of non-vocabulary utterances can be improved, and/or recognition can be improved. The latter occurs by reducing confusion between similar words in the vocabulary, by selection of decoys which lie in between the similar words, and thus can suppress incorrect recognition.
According to another aspect of the invention, there is provided apparatus arranged to carry out the above methods.
According to another aspect of the invention, there is provided corresponding software.
Any of the preferred features may be combined, and combined with any aspect of the invention, as would be apparent to a person skilled in the art.
To show, by way of example, how to put the invention into practice, embodiments will now be described in more detail, with reference to the accompanying drawings.
FIG. 1 shows an overall view of an example of a known pattern recognition process, for voice recognition;
FIG. 2 shows in schematic form some of the principal hardware elements for a known voice processing platform;
FIG. 3 shows in schematic form elements for dictionary generation including decoys, according to an embodiment of the invention;
FIG. 4 shows in schematic form elements for decoy testing and analysis according to an embodiment of the invention;
FIG. 5 shows in schematic form the decoy generation step of FIG. 3;
FIG. 6 shows in schematic form the decoy merging step of FIG. 3;
FIG. 7 shows in schematic form the generic decoy dictionary of FIG. 3;
FIG. 8 shows in schematic form the rejection training list of FIG. 4;
FIG. 9 shows in schematic form an overall view of the test recognition process of FIG. 4;
FIG. 10 shows in schematic form the recognition log of FIG. 4;
FIG. 11 shows in schematic form the decoy analysis step of FIG. 4;
FIG. 12 shows in schematic form the process of FIG. 11 of determining a score for each decoy;
FIG. 13 shows in schematic form the process of FIG. 11 of removing lowest scoring decoys;
FIG. 14 shows in schematic form an overall view of a recognition process using the dictionary with decoys according to an embodiment of the invention;
FIG. 15 shows in schematic form the word recognition step of the recognition process of FIG. 14;
FIGS. 16 to 18 show schematic representations of Hidden Markov Models;
FIG. 19 shows in schematic form the comparison step of FIG. 15;
FIG. 20 shows in schematic form the accept/reject decision step of FIG. 14; and
FIG. 21 shows hardware elements for a voice processing platform according to another embodiment of the invention.
FIG. 1—Voice Recognition
FIG. 1 shows an overall view of an example of a known pattern recognition process, for voice recognition. There are five main steps: channel adaptation (1), feature extraction (2), word end-point detection (3), speech recognition (4), and accept/reject decision logic (5).
In the first step—channel adaptation—the system monitors the characteristics of the telephone line that carries the speech, and creates an initial mathematical model of channel parameters, such as line noise level. This model, which is updated continually throughout the recognition process, is used to adapt the vector of coefficients generated during feature extraction so that the coefficients respond to foreground speech and block out line channel variations.
During the second step—feature extraction—the system divides the unknown word or phrase into short segments, called frames. Each frame lasts 12.75 milliseconds. Thus, a word such as Mississippi, which takes about a second to say, would be broken down into about 100 frames.
Next, the system conducts a spectral analysis of each frame and creates a mathematical vector representation of the spectrum. Each feature vector is a string of 15 coefficients. The first seven coefficients measure the energy of the frame at different frequency bands to distinguish, for example, between a high-frequency/s/sound, and a lower-frequency vowel. The remaining coefficients measure the rate of change of these spectral energies.
The third stage—word endpoint detection—is performed by an algorithm that uses the energy and short time spectrum of the speech signal. This algorithm removes silence before, after, and in the middle of the speech signal, and filters out unwanted background noise in order to expedite the speech-recognition stage.
Speech recognition is the fourth stage of the process. At this stage, the vector representations generated for each frame are compared with the FVR system's stored models for the recognition vocabulary. Each word in the vocabulary is represented by a string of hidden Markov models (HMMs), one for each phoneme in the word, as shown in U.S. Pat. No. 5,390,278 (Gupta et al.). The stored string of phoneme models that produces the best match is determined using the multiple-pass approach, at which point the spoken word is considered recognized, as shown in U.S. Pat. No. 5,515,475 (Gupta). The matching process is aided by statistical models and efficient search algorithms embedded in the hidden Markov models.
The final stage of the process is rejection decision scoring, which determines whether the best match found during the speech-recognition stage should be accepted or rejected. To perform this evaluation, the recognizer employs a mathematical distribution matrix. The closer the match, the more likely it is to be accepted. This feature provides the system with the ability to reject imposter input, that is, words not in its vocabulary.
FIG. 2—Known Service Controller Apparatus
FIG. 2 shows some of the principal hardware elements for a voice processing platform known as the Network Applications Vehicle (NAV). The NAV platform is designed for enhanced network services, and enables network providers to support an array of revenue-generating and cost-saving interactive and automated speech-recognition services.
The NAV cabinet is designed for central office installation and complies with Bell Communications Research Inc. (Bellcore) Network Equipment Building System specifications, a comprehensive set of requirements for central office equipment. Each NAV bay can be equipped with up to four speech-processing shelves. The NAV system can accommodate applications requiring from 24 to several thousand ports in single and multiple bay configurations.
The heart of NAV is a speech-processing subsystem known as the service controller. The service controller is comprised of a shelf of printed circuit cards and supporting software. NAV voice-processing technology is designed around the NAV bus, which combines an industry-standard VME computer bus with a proprietary digital voice or pulse code modulation (PCM) bus. (The PCM bus is based on Northern Telecom's DS-30 serial digital voice transmission standard used by DMS, Meridian Norstar, and Meridian 1 products.)
The service controller houses the main circuit cards as shown in FIG. 2, which include the following:
the digital trunk link (DTL) cards (103), proprietary cards that process incoming voice and data signals from the DS-1 digital network trunk and transmit them to the VME voice bus;
the time-slot interchange (TSI) card (104), a proprietary card that uses a custom silicon chip set developed for Northern Telecom's Meridian Norstar digital key telephone system to implement a 512 by 512 switching matrix for voice slot management. This matrix allows the DS-0 channels that enter the DTL card to be dynamically switched to the voice channels on the multi-channel telecommunications link card;
the multichannel telecommunications link (MTL) card (106), a proprietary card that terminates the voice signals generated by the TSI card uses digital signal processing to implement such functions as word end-point detection, speech recording and playback, compression and decompression, and speech concatenation; and detects dual-tone multifrequency tones entered by the person interacting with the system;
the speech recognition processor (SRP) card (105), a card for providing the computing power needed to support real-time speech recognition. The SRP further processes the speech information captured and pre-processed by the MTL card, selects the sequence of phoneme models in the recognition vocabulary that most closely matches the spoken word being recognized, scores the acceptability of the selected phoneme sequence using an accept/reject decision logic mathematical distribution matrix, and sends the result to the real-time service processor (RSP) card (102), a commercially available card that provides a third-party real-time operating system, called pSOS+, to perform real-time tasks, such as audio and resource management, and service control;
the master service processor (MSP) card (101), a commercially available card that uses a UNIX operating system to support computing and operations, administration, and maintenance functions. The MSP card provides an Ethernet controller, and a Small Computer Systems Interface (SCSI) to support disc and tape systems; and
the input/output controller (IOC) (107), a commercially available card that supports X.25 packet-switched data links to information sources, such as attendant functions, external to the NAV.
FIG. 3—Dictionary Generation Including Decoys
FIG. 3 illustrates in schematic form how a complete dictionary is created, including decoys, ready to be used in a test recognition process as shown in FIG. 4. Elements shown in rounded rectangles represent data structures, and processing stages for processing the data are shown in rectangular boxes.
An inventory of phonemes, 20, feeds a process 30 for generating decoys. The inventory preferably is made up of a large number of relatively simple models of sub-word structures such as phonemes or allophones. It is not necessary for these models to be as accurately represented as the models for the words in the vocabulary of the dictionary, and the amount of processing involved when matching audio input against the decoys can be reduced if relatively simple models are used.
The decoy generation process generates decoys made up of random combinations of the sub-word elements, as described in more detail with reference to FIG. 5 below. A generic decoy dictionary 40 is created. This may have several hundred, typically five hundred of the randomly generated decoys. It is described in more detail with reference to FIG. 7 below.
At 70 in FIG. 3, the decoys are merged with the dictionary of predetermined vocabulary 50, and with specific decoys in a specific decoy dictionary 60. In this way, a complete dictionary 80 is formed, as described in more detail below, with reference to FIG. 6.
FIG. 4—Test Recognition Process and Decoy Analysis
The complete dictionary 80 is used in a test recognition process 170, together with a rejection training list and audio file 150, and a complete model set 160. The audio file contains known words in the vocabulary, and known utterances not in the vocabulary. In the test recognition process 170, each of these words and non-vocabulary utterances is compared to the entries in the complete dictionary, to produce a recognition log 180, described in more detail below, with reference to FIGS. 8, 9, and 10.
The recognition log 180 is subjected to a decoy analysis process 190 to identify and remove decoys with the worst scores, to produce a final dictionary 200. The decoy analysis process will be described in more detail below, with reference to FIG. 11. The final dictionary 200 will incorporate as many of the entries of the complete dictionary 80 as are desired for a given application, as specified by a user, illustrated at 210.
FIG. 5—Decoy Generation
FIG. 5 shows how a random decoy length generator 360 is fed by a random number generator 370, and length contraints 350, which may be specified by a user, to suit a given application. At 380, a random allophone from the phonemic inventory 20 is inserted into the current decoy. At 385, it is determined if the length of the current decoy is less than that specified by the random length generator. If so, a further random allophone is inserted at 380. Otherwise, a new decoy is started at 390. If all the decoys required have been generated, according to a value for the required number of decoys, stored at 395, the process ends and the generic decoy dictionary 40 is fully populated.
FIG. 6—Merging Decoys
The step 70 of merging decoys with the dictionary of predetermined vocabulary and the dictionary of specific decoys, is carried out by a simple concatination of the dictionary entries at 260. Indices are updated at 270, so that there is one set of consecutively numbered indices for the entire concatinated dictionary, instead of three separate sets. The indices are used for numbering and making reference to entries in the dictionary.
At 280, the dictionary inventory is updated. The inventory functions as a contents list for the dictionary, and therefore a single inventory list of the entire dictionary is needed.
FIG. 7—Generic Decoy Dictionary
The structure of the dictionary is shown in schematic form in FIG. 7. First, allophone definitions 400 are provided, giving transcription for all the allophones used in the dictionary. This is followed by a list of entries in the dictionary 410, defined in terms of the above-mentioned allophones.
FIG. 8—Rejection Training List and Audio File
At 460, the audio file is illustrated. This would normally be a digital representation of an audio signal, recording actual human speech. A list of tokens 470 includes, for each token, a label 480 indicating the text of the token. Token here is used as indicating an utterance. The label might be in the form of a series of ASCII characters. Pointers 490 are included, indicating start and finish points of the given token, in the audio file. This could be achieved by timing markers in the audio file, or by appropriate memory addresses.
FIG. 9—Test Recognition Process 170
This process uses some of the features of the conventional recognition process shown in FIG. 1. First, feature vectors are extracted from the audio file, at 500, in a similar manner to the process of FIG. 1. This feature extraction process will be described in more detail below. End point detection is carried out at 510. This process differs from the end point detection of FIG. 1 in that the training list comprises pointers to the end points. These pointers are used to enable unambiguous end point detection.
The actual recognition then follows, using the complete dictionary 80. The three principal steps in the recognition are illustrated. Mahalanobis distances are precalculated at 520. This step and the significance of the Mahalanobis distances will be explained below in more detail. Briefly stated, the Mahalanobis distance gives a representation of the probability of a particular feature vector matching a given transition in the finite state model of the word in the more dictionary. Following this, the next two steps are concerned with finding the best matching path of successive transitions through the finite state model, based on the precalculated distances. At 530, a preliminary Viterbi fast match algorithm is used to find the most likely candidates in the dictionary. Only these most likely candidates are then taken forward to step 540, where they are rescored using the Viterbi algorithm and a full matching process using fully detailed models, and all the relevant feature vectors.
The results of the test recognition process are output to the recognition log 180.
Recognition Log 180
For each of the tokens in the training list, a record is maintained including the following information. First of all a record is kept of whether the token is in the dictionary, or whether it is an non-vocabulary utterance. This will be used later to determine whether the score should be positive or negative. An orthography of the token is included, comprising the text label, and other properties such as whether the speaker was male or female, whether the speech was recorded in a noisy environment, and so on. The record in the log then lists the N closest matching entries from the complete dictionary. Typically 10 to 20 matches might be included, depending on memory limitations, and how often all N matches are found to be decoys.
If all N matches are decoys, then it cannot be determined whether the decoys were successful in being closer matches than an incorrect vocabulary word from the dictionary, or whether the decoys were interfering and preventing a correct recognition. Hence, it is important to maintain N large enough that the closest matching vocabulary word in the complete dictionary is usually included in the N matches maintained in the recognition log. It would be conceivable to store all the closest matching dictionary entries until the first non-decoy, or vocabulary entry.
For each match with a given token, the recognition log includes details of the transcription, and the score output by the test recognition process. As illustrated in FIG. 10, the closest match to the first token, the word "call" is decoy number 4, with a transcription "KRL" , and a score of −20. The examples illustrated are not actual outputs, but are simplified examples for the purpose of illustration.
FIG. 11—Decoy Analysis
Each of the tokens in the recognition log 180 are then processed as illustrated in FIG. 11. At 600, the first token is retrieved. At 605, if the token is not a non-vocabulary utterance i.e. not an imposter but, is an in-dictionary token, then the scores determined subsequently will be negative. At 610, the parameter S is determined, representing how many decoys are closer matches than the closest matching vocabulary word. This is determined by searching through the closest matches in the record for that token, until the closest matching vocabulary word is found.
At 620, the parameter K is determined, representing the rank of each given decoy in the list of matches to that token, in the recognition log. K equals 1 for the closest matching decoy, K equals 2 for the second closest matching decoy, and so on.
At 630, a decoy effectiveness score for that token is determined for each of the S decoys, according to parameters S and K. At 640, this score is accumulated with other scores for the same decoy, when that decoy was matched to other tokens. This is typically implemented by incrementing or decrementing a counter for each of the decoys. At 650, the process loops back to step 620, to repeat the determination of the score for each of the S decoys. At 660, when all S decoys have been processed for a given token, the process loops back to step 605 to repeat for a next token, until all the tokens are processed.
Finally, at 670, the decoys with the worst accumulated scores are removed, to create the final dictionary containing only the best decoys. Some of the steps of FIG. 11 will now be described in more detail.
FIG. 12—Determing a Score for Each Decoy
The step 630 of FIG. 11 is expanded in FIG. 12. A decoy effectiveness score is determined at 710 using the algorithm shown, where the score equals (S−K+0.5)/S2. This algorithm is selected to give a linear relationship between the score and the rank, among the S decoys, though non linear relationships could be used. It also reflects directly how large S is. If S is small, it indicates that the decoy is particularly important, either particularly bad if it is more closely matched than the correct vocabulary word, or particularly good if it is more closely matched than an incorrect vocabulary word.
As well as determining a score which will be accumulated for a given decoy, it is also useful to record how many times a particular decoy is good or bad. As 720, a counter recording "bad" score is incremented if the decoy is one of several decoys better matched than the best and correct vocabulary word.
At 730, a counter recording an "ES_BAD" score is incremented if the decoy is the only decoy better matched than the best and correct vocabulary word.
At 740, a counter recording a "GOOD" score is incremented if the decoy is one of several decoys better matched than the best, but incorrect, vocabulary word.
Finally, at 750, a counter recording an "ES_GOOD" score is incremented if the decoy is the only decoy better matched than the best, but incorrect, vocabulary word.
As will be described below, the decision on which decoys to remove may be made just according to the accumulated score, or may be made dependent on some combination of the accumulated score, and the counters indicating how many times good or bad scores were obtained. The final outputs of the counters may be presented to a user for further manual selection of decoys after the automatic selection, or to enable the test recognition process, or the training list to be refined.
Not shown is a further counter, which may be incremented for a given decoy, each time there is an instance where all the entries in the recognition log for a given token, are decoys. In this case, a discussed above, it is ambiguous whether the score should be positive or negative, and therefore in such cases, the accumulated score for the decoy should not be changed. The number of times a decoy is matched and found in the recognition log, but for which the score is ambiguous, can be recorded and used in refining the decoy generation, testing and analysis processes. Optionally, the automatic removal of decoys could be made dependent on the ambiguity score not exceeding a given threshold.
FIG. 13—Removing Lowest Scoring Decoys
Various removal or selection algorithms could be envisaged, using the scores obtained above. In the example shown in FIG. 13, the accumulated scores are presented to the user, together with the counter outputs, to enable manual selection and removal, at 800. In the meantime, the automatic removal proceeds at steps 810 to 830. At 810, decoys with non-zero ES_BAD counter scores are removed, such decoys may be critical in preventing recognition in some instances, even if their overall accumulated score is not particularly bad.
At 820, decoys with non-zero BAD counter scores are removed. Such removal could be made dependent on whether sufficient decoys have been removed to meet the required number of decoys. Alternatively, the required number of decoys could be made dependent on the scores achieved, so that instead of using a fixed number of decoys, if the decoys score well, then more decoys are used, and if they score badly, then less decoys are used.
At step 830, if necessary to meet the required number of decoys, further decoys are removed according to their accumulated scores.
FIG. 14—Recognition Process Using Decoys
FIG. 14 illustrates in schematic form an overall view of a recognition process using the dictionary with decoys selected as discussed above, according to an embodiment of the invention. An application 850 initiates the speech recognition process by passing audio input at 860, to a speech recognition process corresponding to that shown in FIG. 1. This includes the steps of channel adaptation 51, feature extraction 52, word end-point detection 53, and word recognition 54, using the final dictionary, containing the selected decoys. Following an accept/reject decision 55, the closest match is returned to the application. At 870, the application determines if the top match is a decoy, and rejects the result if it is a decoy. This latter step could conceivably be carried out as part of the accept/reject decision 55.
FIG. 15—More Detailed View of Recognition Step
FIG. 15 shows in schematic form the main steps in the word recognition step 54 shown in FIG. 1 or in FIG. 14. Following word end point detection, each word is input as a series of observations in the form of cepstral vectors 20. At this point, Mahalanobis distances may be precalculated, for all observations, and all models, and stored as a table of scalar values, one for each branch of the model. If there are multiple PDFs (Probability Density Function) associated with each branch, the value that is stored for that branch is one which gives the highest likelihood, based on the calculated Mahalanobis distances, and weighting factors for each PDF (described below).
These distances give an indication of probability or closeness of match of individual observations to individual transitions to states. To complete the matching, it is still necessary to accumulate these probabilities for paths or sequences of states in the finite state machine, as follows. At 21, a comparison or matching step is carried out. For each observation in the series, a probability is calculated of the observations so far being the same as each of the multiple paths represented in the stored HMM trellis, as will be explained in more detail below. As shown at 22, this comparison step is repeated by following loop 1 for each model in the form of an HMM. The best score for each state in the trellis for the particular observation, is stored for use in calculating the probability scores for the next observation. As shown at 23, the process is repeated via loop 2 for the next observation, until all the observations have been processed.
This method of calculating all the relevant scores for one observation before moving on to the next observation results in the order of making the calculations corresponding to the order of receiving the observations. Also, it is intuitively well-matched to the way that equations of methods such as the Viterbi algorithm, are commonly understood and explained.
The speech recognition system described in more detail below is based on Flexible Vocabulary Recognition (FVR), which relies on phone-based sub-word models to perform speaker-independent recognition over the telephone. Most applications using this technology are currently based on isolated word recognition, with a limited word-spotting capability in some applications. Rejection as shown in step 55 of FIG. 1, or FIG. 14, is an integral component of the technology, since the system must detect both its own recognition errors and when the user has said something that it cannot understand, in order to provide reliable performance. The sub-word models use hidden Markov modelling.
Feature Extraction
The purpose of the signal processing component is to convert the utterance, which is a series of samples of speech, into a more compact series of feature vectors. Besides being more compact, the feature vectors provide better speech recognition performance since they tend to remove many speaker-dependent effects and improve the robustness of the system to noise. The feature vector currently consists of 15 elements, which are constructed from the mel-cepstral coefficients (refer to Deller et al.). The first seven elements of the feature vector, often referred to as the static parameters, are the cepstral coefficients c1, . . . , C7. The remaining eight elements, often called the dynamic parameters, or delta cep, are δc0, . . . , δc7, which are estimates of the first derivative of each cepstral coefficient.
There are three types of feature vector, or cep, in use. The first is standard cep, which is based on the usual mel-cep. The second, which is called equalized cep, uses a simple noise model to remove some of the effects of noise in the utterance. The last, called enhanced cep, uses cepstral mean subtraction to remove some of the channel-dependent effects. The calculation of the standard cep is taken from Sharp et al. (1992).
In standard cep, the observed speech signal ( y(t) ), sampled at fs=8 kHz, is decomposed into overlapping frames of duration Nw=204 samples, and overlap No=102 samples. A power spectrum is computed for each frame, using a K=256 point FFT. Log-channel energies (LCE) are computed by passing the spectrum through a triangular filter bank. Finally, the energies are transformed into the mel-cepstrum (MEL-CEP). Each frame is represented by a 15-dimensional vector consisting of seven static MEL-CEP parameters, seven dynamic MEL-CEP parameters, and one dynamic energy parameter.
Flexible Vocabulary Recognition (FVR)
FVR attempts to produce a set of models for a new application or task without requiring task-specific training data for the models. Ideally, the application builder would provide a list of words to be recognized, hit "Return", and the FVR process would automatically construct a load, including the models to be used, lexicon, and the language model (in a continuous-speech application). Although having accoustic models which accurately model speech, even for novel tasks, is crucial for a successful system, FVR also relies on the ability to predict how people are going to pronounce words, based simply on the orthography. This, in itself, is a fairly daunting problem, for many reasons, including:
1. speaker variability—different speakers tend to pronounce words differently, depending on their background, and the environment.
2. different accents—the accent can vary widely, even in the same country (compare Newfoundland with Ontario, or Georgia with New York City).
3. non-English words—many proper names (such as locality and company names) do not originate from English, so that even native speakers may not be sure how they are pronounced.
4. non-native speakers—even humans may have difficulty understanding non-native speakers with strong accents.
Some of these problems have been dealt with, at least to some degree, even if only by collecting the appropriate training data. For others, such as strongly different accents, collecting some training data for the accent region to use as the basis for modelling may be the only solution.
FIG. 16—Accoustic Modelling, and a Basic HMM Topology
The first step is to determine which allophones to use. Allophones are accoustic realisations of individual phonemes, in particular phonetic contexts, i.e. dependent on what comes before or after it. Having decided on a set of allophones to use, it is necessary to find models for each allophone that can be used to recognize utterances. The modelling paradigm used here is to construct models using hidden Markov models (HMMs) (see Deller et al. 1993, Rabiner 1989) (see FIG. 16, illustrating a number of states, and paths leading to the next state, or to the same state). The HMMs for the allophones can be easily concatenated together to produce word models. Essentially, an HMM is a finite state machine, with probability distributions (pdfs) attached to it. A basic assumption of the HMM paradigm is that the random process modelled by each state is stationary for the duration of the state. In this way, speech, which is non-stationary, can be modelled as a series of piece-wise stationary segments.
The primary tool for training and testing models is a C++ program and library that allows many functions related to HMMs to be performed. In addition, if it is intended to be used as a research tool, it should be easy to modify, and support a very flexible set of model topologies, and arbitrary parameter tying.
HMMs are assumed to be transition based. That is, if the HMM is used to actually generate a random process, then observations are produced when a transition is traversed. In the transition-based topology, each transition leaving a state may have a different pdf to model it. A disadvantage of the transition-based approach is that the transitions from one state to another may tend to be less well trained, since fewer frames may be aligned to them than the self-loops. To avoid this problem, as well as to reduce the number of parameters, a state-based topology can be used, where the pdf is state-dependent, and all the transitions out of the state share the same pdf. This is achieved by tying together the pdfs of all the transitions leaving a state.
Each pdf is assumed to be a mixture of N-variate Gaussian distributions, where N is the dimensionality of the feature vector. Recall that the pdf of an N-variate Gaussian pdf has the form
where x is the N-dimensional observation vector, μ is the mean vector, and C is the covariance matrix. A single Gaussian distribution is unimodal; that is, it has a single mean. To more accurately model speech, it is necessary to use multimodal distributions; that is, pdfs that have more than one mean. A multimodal Gaussian, or mixture distribution, is obtained by taking a weighted sum of unimodal pdfs; that is,
where Σw
is the unimodal pdf of each mixture component. In theory, a Gaussian mixture distribution can match an arbitrary distribution, arbitrarily closely, if there are sufficient mixture components. In most cases, speech can be modelled with a fairly small number of mixture components (from 5 to 40, depending on the type of models and the application).
Exactly how many mixture components should be used is still an open problem. A larger number of mixture components will cover the acoustic space better, but if there are too many, it may be impossible to train them well, and the computation overhead may become too expensive. One way to overcome, at least to some degree, these two opposing constraints is to use the same mixture components in more than one mixture distribution. Such an approach is called tied-mixtures. There are many possible ways in which the mixture components may be tied. For example, as in the original tied-mixtures research, a large number of mixture components may be used, where each mixture distribution has the same underlying unimodal distributions, but the mixture weights are dependent on the state in which they occur. Another approach would be to constrain all the allophones of a phone to share the same mixture components, with allophone-dependent mixture weights.
To support such a wide variety of potential tyings, a flexible model structure should be provided (the price of such flexibility is that it is not always simple to set up the models, since a certain amount of careful book-keeping must be done). Briefly, the C++ program and library is constructed in terms of layers of pools, and each layer contains pointers to the layer below. At the bottom layer, there are rotations (the rotation is determined from the covariance matrix—see below). The next layer contains pdfs, which consist of a mean vector and a pointer to a rotation. Pdf_sets are collections of pointers to pdfs. A mixture contains a pointer to a pdf_set and a vector of mixture weights. The fenone, which is essentially a state in the HMM, contains pointers to several mixtures (one for each transition out of the fenone), a set of transition weights, and the destination state for each transition. The next higher layer is the state layer, which has pointers to fenones (usually, each state has one fenone associated with it). Finally, there is the model layer, which is a collection of states and represents the HMM, which itself typically models an allophone. This notion of pools clearly supports a wide variety of tyings, but it is also necessary to keep careful track of the pointers. Tools do exist that provide basic schemes with a minimum of effort on the user's part, but more sophisticated schemes require their own tools.
The Rotation Matrix
A rotation matrix is a covariance matrix that has been transformed to reduce the number of floating point multiplications. During training and recognition, it is necessary to make computations of the form
for each mixture component in the model set (Equation 4 is referred to as a Mahalanobis distance). The problem with applying Equation 4 directly is that it contains a large number of redundant computations, particularly when the total number of rotations is reasonably small (which is usually the case). Using several tricks, it is possible to reduce the number of multiplications significantly.
The first trick involves decomposition of the inverse of the covariance matrix into a product of two matrices of the form
where L is a lower triangular matrix (that is, all of its components above the main diagonal are zero). This decomposition, using the Cholesky algorithm, is possible because the covariance matrix is always positive definite (that is, all of its eigenvalues are positive). The Cholesky algorithm is simple, fast, and numerically stable.
Equation 4 can be rewritten as
and, observing that Lx=y and Lμ i=z, Equation 4 reduces to
where z and z t z are precomputed. The y's are computed at each frame by multiplying the observation vector x by each rotation matrix L in the model set (this is where the assumption that the number of rotations matrices is relatively small comes into play).
FIGS. 17, 18—The Viterbi Algorithm, and A Trellis of an HMM
Given a set of HMMs, which will be assumed to be modelling allophones, a lexicon, and an utterance, it is necessary to determine the likelihood of the utterance matching an entry in the lexicon. This likelihood will be used to train the models and, during recognition, the lexical entry with the maximum likelihood will be the recognizer's choice for what the utterance is. The Viterbi algorithm is a dynamic programming algorithm originally applied to operations research, and since applied nearly everywhere else (refer to Rabiner 1989 for more details). Basically, the set of HMMs and the lexicon (for recognition) or transcription (for training) are transformed into a trellis. The Viterbi algorithm finds the most likely path through the trellis.
As an example of the Viterbi algorithm, consider an utterance, which consists of the series of observations, 0={o1, o2, . . . , oT}. The observations are the cepstral vectors determined by the feature extraction step. As well, to simplify the example, only a single HMM is considered. Recall that an HMM is represented by a series of states connected by transitions. The trellis is simply another representation of the HMM, where a copy of the states is placed at each time, and the transitions go from one state at time t to another state at time t+1 (see FIG. 17).
Finding the Best State Sequence
Basically, the Viterbi algorithm finds the state sequence, or path, through the trellis that best corresponds to the observation 0. For each state at each time, the likelihood of the best path arriving at that state at that time is maintained. To see how this is done, suppose that the algorithm has been applied up to time t−1. Let S(i, t) be the likelihood, or score, of the best path arriving at state i at time t. It is computed by finding
where P(ot|j,i) is the probability of the observation at time t, ot, given the transition going from state j to state i, which is the likelihood defined by Equation 2, and pji is the transition probability from state j to state i. The best state sequence is defined as the path that has the best score at time T, and usually ends in the terminal state of the HMM (by assumption).
Solving the Underflow Problem
A practical problem of directly applying Equation 8 is that the scores are likely to be extremely small numbers, and get smaller as T becomes larger. This results in serious numerical underflow problems. The simplest solution is to retain 1nS(i,t) instead of S(i,t). This is very convenient for the computation of the likelihoods, since the exponentiation is no longer necessary. Therefore, Equation 3 becomes
(where the products are computed using the rotations as in Equation 7).
The Viterbi Approximation for Mixture Distributions
Logarithms solve the underflow problem, but introduce a new problem, involving the calculation of the logarithm of a sum. Let J be the value of j that satisfies the max in Equation 8. Then, using logarithms,
The problem is that, using Equation 2, P(ot|J,i)=ΣWJ,mfj,m(ot), since the observation densities are modelled by mixture distributions, but only 1nfj,i(ot) is being computed. If there are only two terms, say 1np, and 1np2, then the fastest and most numerically stable method of computing 1n(p1+p2) is to use
The trick used in Equation 11 is appropriate for the addition of two components, but the number of mixture components is generally much larger than two. To solve this problem, an approximation is used:
based on the observation that if the mean of each mixture component is sufficiently far from the others, then 1nP(J,i) will be dominated by the mixture component which is nearest to ot, since ot will be in the tails of the distributions of the other mixture components. This turns out to be the case most of the time. Effectively, this approximation converts a single transition from state J to state i, with probability pJi, and a mixture distribution, to M parallel transitions from J to i, each with a transition probability pJiwJ,m, and a unimodal distribution.
The Block Viterbi Algorithm
Consider the trellis shown in FIG. 7. As described above with reference to finding the best state sequence, the Viterbi algorithm finds, for each state,
where u(t) corresponds to the input scores to the HMM (the output scores of the previous HMM in the word model) between frames t and t+1, b,(t) is the score of transition I for frame t (determined above), and v(t) is the score at the output of the HMM between frames t and t+1.
The usual implementation of the Viterbi algorithm (referred to as the frame-synchronous Viterbi algorithm) is:
for each frame t
for each HMM m
apply Equation 13.
In other words, frame t is processed for every transition of every model before frame t+1 is processed.
The block Viterbi algorithm processes frames in blocks, simply by changing the order of the loop:
for each block b
for each HMM m
for each frame t in the current block b
apply Equation 13.
For each block, u is assumed to be available (for the inputs to the first HMMs, it is initialized appropriately, and for all other HMMs, the order of their processing ensures that it is available when it is required). Using u, the output scores for the HMM v are calculated for every frame of the block and passed to subsequent HMMs. At the beginning of the block, the trellis state values ( s1(t),s2(t),s3(t) ) are restored to the values they had at the end of the previous block. The vectors of scores, u and v, are called score buffers. The optimization of the block Viterbi algorithm is discussed further below.
The block size is typically 40. The advantage to the block version of the Viterbi algorithm is that it uses memory more efficiently, both in terms of speed of access and limiting the amount of memory required.
The Training Algorithm
Once the allophones have been chosen, models must be trained. There are several techniques that can be used to train models, all based on iterative approaches, where an initial estimate of the parameters of the models is progressively refined. Historically, the first method, referred to as the Baum-Welch algorithm, is a variant of the E-M algorithm (see Deller et al. 1993, Rabiner 1989). The method used here, which is less expensive in terms of computation than the Baum-Welch algorithm, is based on the Viterbi algorithm. Both of these methods are variants of maximum likelihood estimation (MLE), which means that they attempt to maximize the average likelihood of the training tokens, according to the model parameters. More recently, methods that attempt to maximize the discrimination between competing models have been considered, either by directly attempting to maximize the difference between the correct model and the other models, or by maximizing the mutual information (for example, see Normandin 1991).
Recognition is also based on the Viterbi algorithm, but has a different set of challenges from training. Training of models is generally done off line, so that the constraints of speed and complexity are quite generous. For recognition, the constraints are much tighter, particularly for real applications. Applications use a Speech Recognition Processor (SRP), which may use six CPUs to perform the recognition. The SRP has only a finite amount of memory, which places constraints on the number of parameters (basically, the number of means and, to some degree, the number of models) in the model set. As well, the typical specification for processing delay is that the recognition must be "real-time plus half a second," which means that the recognition must be complete no more than half a second after the end of the utterance (ideally, the end of the utterance is where the person stops speaking).
As well as operating under strict constraints of memory and time, recognition must also be more robust than training. Typically, people using speech applications will make errors and say things that are not in the vocabulary of the recognizer. For real applications, it is necessary to detect these circumstances, as well as the cases where recognizer is itself in error. The process of detecting such conditions is called rejection.
The Basic Recognition Algorithm
As mentioned above, the recognition algorithm is based on the Viterbi algorithm. It consists of two steps. The first, called the fast-match, is, as its name implies, a first fast pass through the utterance, which returns several choices (typically on the order of 20 to 30) that are most likely to include what the person has said. The second step, called rescoring, performs a more expensive algorithm on each of the choices returned by the fast-match. The top choice after rescoring is what is returned by the recognizer as being what the person has said. As well, for rejection, it is necessary to have a second choice, to compare to the first. The idea of the second choice is that if it is too close to the first choice, then there is not enough confidence in the recognition result, and it should be rejected.
Lexical Graphs
Typically, the recognition vocabulary, or lexicon, is a list of words or phrases, each of which has one or more transcriptions. Although the current technology is based on isolated word recognition, people often do not say the word or phrase in isolation. For example, for a directory assistance task, where the first step is to recognize the locality name, the person may not be sure of the locality, and so may say "Ah, Ottawa", or "Ah, Denver", instead of simply "Ottawa" or "Denver". As well, people also have a tendency to be polite, even to machines, so that they may say "Denver, please". To handle these cases, a limited word-spotting approach is used. An utterance is assumed to consist of an optional prefix, a core, and an optional suffix. The core is basically the desired recognition vocabulary (for the locality recognition, it would be one of the list of localities in the lexicon). Often, most of the utterances in an application can be modelled in this way, using a relatively small number of prefix and suffix entries.
To reduce the complexity of the recognition task, each part of the lexicon is specified by a graph. For example, the supported prefixes might be
Ah, For
It's in
Ah, in
Ah, it's in
There is a large amount of overlap between the entries, and merging them into a lexical graph will result in a smaller task.
Each branch on a lexical graph represents a sequence of one or more models, which means that each branch also has a trellis, formed by the states of each model on the branch. Therefore, the lexical graph has a large trellis, which is constructed by connecting the trellises for each branch together.
FIG. 19, Comparison
FIG. 19 shows in more detail the comparison step, in which matching scores for paths are determined. At 24, the first state in the model is identified. At 25, an updated running score is calculated, for each of the paths to the state. (As explained above, there would be two paths to each state other than the first state, as shown in FIG. 18.) The running score is determined as described earlier. The preceding running score for the given path is retrieved from memory, and a transition probability factor retrieved, and the updated running score calculated from these and from the Mahalanobis distance for this transition, retrieved from the precalculated table. The same procedure is then carried out for the second path to the state, and the lesser of the two updated running scores is discarded, while the remaining score is stored for later use in calculating succeeding running scores. At 27 and 28, the procedure is repeated for further states in the model, for the given observation.
FIG. 20—The Accept/Reject Decision
FIG. 20 shows in more detail the accept/reject decision function of FIG. 1 or FIG. 14. Preferably, the top three matches from the preceding word recognition stage are passed to the accept/reject decision stage. At 910, rejection parameters are determined for the best match. Typical parameters might include the score per frame computed by dividing the accumulated likelihoods of the frames by the number of frames. Score ratio is another parameter. This can include the ratios of the first to second choices, and first to third choices. It is typically the most important of the parameters. The third parameter could be duration, comparing the duration of the word with the model in the dictionary.
At 920, a weighted sum of rejection parameters is obtained. The weighting can be trained in a similar manner to the training of the models in the dictionary, using training sets and adjusting the weights according to whether the output is correct or incorrect.
930 shows the thresholding step to determine whether to output a best match or whether to output an indication of rejection of all the matches, according to whether the weighted sum is above a threshold. The threshold can be chosen from experience by choosing a value which gives an acceptable performance for the application or applications which will use the process.
FIG. 21—Alternative Hardware Arrangement
FIG. 21 shows an alternative hardware configuration for carrying out the steps of FIG. 1 or FIG. 14. A desktop computer 132 is connected directly to a voice input such as a microphone or an interface to a telephone line as illustrated at 131. The desktop computer includes a Pentium processor 133 which includes an on-chip cache 134. The cache may include fast memory provided external to the processor. Global memory would be provided by RAM 135. Such an arrangement could be used to carry out some or all of the steps shown in FIG. 1 or 14. Clearly, the computer could be linked to other computers to share the tasks, and perhaps speed the processing.
Other Variations
Although the examples described above make use of a finite state machine model and viterbi recognition algorithm, for the test recognition, clearly other methods could be used. Although the examples described above make use of non-vocabulary utterances in the training audio signal, it would be conceivable to have no non-vocabulary utterances in the training audio signal. Although the examples described above make use of random combinations of allophones to generate the decoys, it would be conceivable to generate the decoys more systematically.
Although the examples described above make use of a separate set of allophone models for the decoys, so that simpler models can be used, than those used for the vocabulary words, it would be conceivable to use the same set of allophone models. Although the examples described above make use of the decoy scores by selecting the best decoys, it would be quite possible to make use of the scores as a weighting factor in the recognition.
For more details of these and other ways of implementing embodiments of the invention, reference is made to the documents listed below.
Other variations will be apparent to persons of average skill in the art, within the scope of the claims, and are not intended to be excluded.
Deller, J. R., Proakis, J. G., and Hansen, J. H. L. (1993) Discrete-time processing of speech signals. Macmillan Publishing.
Ladefoged, P. (1993) A course in phonetics, 3rd ed. Harcourt Brace Jovanovich.
Normandin, Y. (1991) Hidden Markov models, maximum mutual information estimation, and the speech recognition problem. Ph.D. thesis, McGill University.
O'Shaughnessy, D. (1990) Speech Communication: Human and Machine. Addison-Wesley. Addison-Wesley Series in Electrical Engineering: Digital Signal Processing.
Rabiner, L. R. (1989) A tutorial on hidden Markov models and selected applications in speech recognition, Proceedings of the IEEE, Vol. 77, No.2, February, pp. 257-285.
Sharp, D., et al. (1992) Speech recognition research. BNR TL92-1062.
Wilpon, J. G., and Rabiner, L. R. (1985) A modified k-means clustering algorithm for use in isolated word recognition, IEEE Transactions on Acoustics, Speech, and Signal Processing, 3:587-594.
Patent Citations
Referenced by
Legal Events
Original Image


text:
Thanks for redeeming.{{else}}
Success! Thanks for repurchasing.{{/if}} {{else}} {{#if Expired}}
Increase my visibility!{{else}} {{#if IsMultiPack}}
{{#if HasMultiPack}} You have {{MultiPackCount}} top spot(s) left. Now loading you into the search listings... {{else}} You have used all top spots. Now loading you into the search listings... {{/if}}{{else}}
We are loading you into the search listing pages...{{/if}} {{/if}} {{/if}} {{/if}}
{{Current}} just saw you!{{/if}} {{#if LastTopSpotPurchaseIsMulti }} {{#if HasAnyTopSpot}}
{{#if HasFreeTopSpot }} {{ UnclaimedTopSpotFree }} Free {{/if}} {{#if HasPaidTopSpot }} {{#if HasFreeTopSpot }} & {{/if}} {{ MultiPackCount }} {{/if}} Top Spot{{#if Plural}}s{{/if}} Left{{else}}
0 Top Spot{{#if Plural}}s{{/if}} Left{{/if}} {{else}} {{#if HasFreeTopSpot }}
{{ UnclaimedTopSpotFree }} Top Spot{{#if Plural}}s{{/if}} Left{{/if}} {{/if}} {{else}} {{#if HasResults}}
{{Current}} see you now!{{else}} {{/if}} {{/if}}
You can now invite anyone to meet at your favorite Starbucks.
Limited-time feature
42 year old man | Atlanta, GA, USA | Seeking women 30-46 within 50 miles
Active within 24 hours
As a person I like to think of myself as confident but not arrogant. I understand that there's a time to give and be loving and understanding. I also believe in standing up for what I believe and not being walked on. I'm always there for my friends and loved ones. I don't run from adversity. I care what people think of me because I believe in being the best man I can be. I?m also like being spontaneous, adventurous, romantic, surprising them with little gestures, sensual, playful, and basically having that type of fun you see two people who just met in the movies having! Someone to laugh with, hang out with, be spontaneous with, and have fun with! I'm looking for someone who has similar qualities and desires someone who they can connect with. I feel there has to be mutual physical attraction for there to be good chemistry between two people. So being fit and having good looks are important, as well as sensuality and affection and having some similar interest helps. That all for now, let?s talk and see where it goes!
Alumni connections , Book club , Coffee and conversation , Business networking , Cooking , Dining out , Fishing/Hunting , Gardening/Landscaping , Hobbies and crafts , Movies/Videos , Museums and art , Music and concerts , Exploring new areas , Nightclubs/Dancing , Performing arts , Playing cards , Playing sports , Political interests , Religion/Spiritual , Shopping/Antiques , Travel/Sightseeing , Volunteering , Watching sports , Wine tasting
Aerobics, Baseball, Basketball, Billiards / Pool, Bowling, Dancing, Football, Golf, Other types of exercise, Running, Skiing, Swimming, Tennis / Racquet sports, Walking / Hiking, Weights / Machines
I exercise 3-4 times per week.
I like Dogs
Middle of the Road
Z{{Cta}} {{#if HasMoreInfo}} ?{{CtaSecondary}} {{/if}}
|What he is looking for
|5'11" (180cms)
|3'0" (91cms) to 8'11" (271cms)
|Body type:
|Athletic and toned
|Slender, About average, Curvy, Athletic and toned
|Black, Brown, Green, Hazel
|Auburn / Red, Black, Light brown, Dark brown, Salt and pepper
|No Way
|No Way
|Social Drinker
|Never, Social Drinker, Moderately
|Technical / Science / Computers / Engineering
|No preference
|I'll tell you later
|No preference
|Never Married, Widow / Widower, Divorced
|Have kids:
|Yes, and they sometimes live at home (1)
|Yes, and they sometimes live at home, No, Yes, and they live at home
|Wants kids:
|Definitely, Someday, Not sure, No, but it's OK if my partner has kids
|Black / African descent
|Asian, Black / African descent, Latino / Hispanic, Middle Eastern, Other
|Christian / Other
|Christian / Catholic, Christian / LDS, Christian / Protestant, Jewish, Muslim / Islam, Spiritual but not religious, Christian / Other
|Bachelors degree
|Some college, Associates degree, Bachelors degree, Graduate degree, PhD / Post Doctoral

subset: commoncrawl


text:
The availability of next generation sequencing (NGS) technologies has opened the door to new strategies of SNP discovery and genotyping. Rapid genome-wide SNP detection via deep resequencing of reduced representation libraries of restriction digested pools of genomic DNA combined with a reference genome has been successfully used for SNP discovery in microorganisms [1], plants [2]and domestic animals [3]. Taking a step further from using NGS for SNP discovery, Baird et al [1]showed that NGS of short tags derived from barcoded multiplexed genomic representations generated with restriction enzymes could be used for direct genotyping of individuals, calling this method RAD (Restriction-site associated DNA) sequencing. RAD sequencing involves cutting a genome with at least one restriction enzyme and NGS the ends of the resulting fragments. We have recently developed a first set of SNPs for high-throughput genotyping of species of Eucalyptus. Although SNP assay success was high, the proportion of polymorphic SNPs declined as phylogenetic distance between species increased, down to <20% when contrasting E. grandis and E. globulus, the two main worldwide commercially planted species were considered [4]. In this work we used RAD sequencing to discover polymorphic SNPs across these two species. Additionally we were interested in assessing the potential of RAD for direct genotyping-by-sequencing in Eucalyptus.
DNA was extracted separately from 18 unrelated individual trees of E. grandis and 18 of E. globulus. For each species three bulks of six individuals were prepared with equimolar amounts of picogreen quantified DNA. DNA samples were delivered to Floragenex who carried out the RAD reduced representation library preparation using PstI and Illumina 75 bp single-end sequencing on a GAIIx. Raw sequence data was filtered for quality and mapped onto the 11 chromosomes of the E. grandis reference genome available in Phytozome. SNPs in the short sequence tags were called for nucleotides with quality Q> 30 at the position and a minimum of 6X coverage.
Results and conclusions
The average sequencing depth exceeded 28X for all bulked samples, providing a minimum estimated ~5X coverage for each individual present in each bulk providing a 93.75% probability of detecting a heterozygous SNP position. With 18 individuals per species (36 chromosomes), the probability of detecting a SNP allele with a Minimum Allele Frequency (MAF) > 0.1 is > 95% [5] therefore providing good power to select informative SNPs in each species separately and even more so in both species simultaneously. RAD sequence tags may be present or absent in specific individuals depending on the presence of the PstI restriction site providing large numbers of dominant markers; SNPs detected within the aligned tags provide additional co-dominant markers (Figure 1).
Figure 1. Screenshots of RAD sequencing tags mapped onto the Eucalyptus genome. (A) RAD tags generated from the six bulked samples (top to bottom) from 8 sequential PstI sites showing the variability in the presence or absence of tags across samples and in different directions (red = forward; blue=reverse); (B) close-up screenshot of SNPs detected in the RAD tags of two bulked samples.
Out of a total of 200,712 SNPs declared with high confidence, 42,300 were simultaneously polymorphic in the two species while the remaining were fixed in one or the other. These 42,300 SNPs provide an average density of one SNP every 14 kbp in the Eucalyptus genome. These SNPs could be immediately used to select an evenly spaced set of SNPs for the development of a high density SNP genotyping platform.
Figure 2. (A) Sampling of the PstI sites in the 11 chromosomes of Eucalyptus provided by RAD sequencing. Counts (into bars) and percent (Y axis) of unsampled PstI sites, RAD sequence tags generated in both directions out of the PstI site or in single directions (fwd or rev); (B) Distribution of the distances between adjacent RAD sequencing tags across the 605 Mbp of the Eucalyptus genome.
Taken together, the RAD tags plus the SNPs into them provide excellent marker density for applications such as Genomic Selection [6]. Besides the RAD method, Elshire et al. [7] recently described a straightforward method of genotyping-by-sequencing. Additionally the DArT complexity reduction protocol has also been streamlined based on NGS for a number of plant genomes including Eucalyptus (see Sansaloni et al. this meeting). All these NGS based genotyping methods will cause a paradigm shift in our ability to carry out high density, high throughput and low-cost genotyping of large numbers of samples, unlocking incredible opportunities in forest tree genetics and breeding in the years to come.
Baird NA, Etter PD, Atwood TS, Currey MC, Shiver AL, Lewis ZA, Selker EU, Cresko WA, Johnson EA: Rapid SNP Discovery and Genetic Mapping Using Sequenced RAD Markers.
Myles S, Chia JM, Hurwitz B, Simon C, Zhong GY, Buckler E, Ware D: Rapid Genomic Characterization of the Genus Vitis.
Van Tassell CP, Smith TPL, Matukumalli LK, Taylor JF, Schnabel RD, Lawley CT, Haudenschild CD, Moore SS, Warren WC, Sonstegard TS: SNP discovery and allele frequency estimation by deep sequencing of reduced representation libraries.
Nature Methods 2008, 5(3):247-252. PubMed Abstract | Publisher Full Text
Grattapaglia D, Silva-Junior O, Kirst M, Lima BM, Faria DA, Pappas GJ: High-throughput SNP genotyping in the highly heterozygous genome of Eucalyptus: assay success, polymorphism and transferability across species.
BMC Plant Biology 2011, 11:65. PubMed Abstract | BioMed Central Full Text | PubMed Central Full Text
Ott J: Strategies for Characterizing Highly Polymorphic Markers in Human Gene-Mapping.
American Journal of Human Genetics 1992, 51(2):283-290. PubMed Abstract | PubMed Central Full Text
Grattapaglia D, Resende MDV: Genomic selection in forest tree breeding.
Tree Genetics & Genomes 2011, 7(2):241-255. PubMed Abstract | Publisher Full Text
Elshire RJ, Glaubitz JC, Sun Q, Poland JA, Kawamoto K, Buckler ES, Mitchell SE: A Robust, Simple Genotyping-by-Sequencing (GBS) Approach for High Diversity Species.
PLoS One 2011, 6(5):e19379. PubMed Abstract | Publisher Full Text | PubMed Central Full Text


text:
Visit our other Wisconsin Historical Society websites!
Refine or narrow your results by clicking any term in the gray boxes below.
Expand your results by removing any breadcrumb in a gray outlined box above. Click on the blue "X" to remove the term.
Narrow your results by entering a keyword into the search box above. Then click the "Search Within" checkbox, then click on the orange "Search" button.
If you did not find what you are looking for or you did not get any results, try changing your search term(s). See our Search Help page for more tips.
Date: 1961-09-19 ca.
Description: View of a tree-lined residential street. The street is lined with large homes with generously-sized yards.
Date: 1951-06-15
Description: A parade consisting of a band and baseball players walks down Main Street to celebrate the opening day of Little League baseball in Reedsburg.
Date: 1875
Description: View of Main Street from Mackey's Mill.
Date: 1921
Description: View down Main Street. A millinery, meat market, bakery, hotel and shoe store are on the left. An osteopath, a hardware store, a barber shop, a small resta...
Date: 1957 ca.
Description: Aerial view of many buildings in Reedsburg.
Date: 1895 ca.
Description: Exterior view of the Kipp residence with laundry hanging in front and a man seated on the porch.
Date: 1965
Description: Street corner with old Dolly Madison Dairies buildings.
Date: 1905 ca.
Description: Exterior view of a woolen mill.
Date: date unknown
Description: Charles Steppe, the biological father of Lewis Arms, leads a horse down a street. The horse is wearing an ornate bridle and they may be in a parade.
Date: 1900 ca.
Description: View of Main Street with a machine and repair shop on the right and multiple horse-drawn vehicles visible along the road.
Description: View from shoreline over the Baraboo River towards a dam, with a mill on the opposite shoreline. A bridge and a business district are in the background.
Date: 1925 ca.
Description: Exterior view of The Big Store with two men standing outside its entrance.
Description: Aerial view of town with multiple buildings and a water tower visible in the background.
Description: Exterior view of the Kipp residence with a woman in the front yard reclining in a hammock.
Date: 1952-01-03
Description: Exterior view of the Doctor John Booher home, overlooking the Baraboo river near Reedsburg.
Description: Mrs. John Booher and her two daughters sit on a sofa in the first floor living room of their home overlooking the Baraboo river near Reedsburg. The poles b...
Description: Exterior view of a woolen mill with an advertisement sign for Patton's Sun Proof-Paints in the front.
Date: 1962-05-20 ca.
Description: A parked tractor on a street near industrial buildings.
Description: Interior view of the Doctor John Booher home overlooking the Baraboo river near Reedsburg. The photograph shows the hanging staircase — the bottom step doe...
Description: Elevated view of multiple homes and buildings.
If you didn't find the material you searched for, our Library Reference Staff can help.
Call our reference desk at 608-264-6535 or email us at:
© 1996-2015 Wisconsin Historical Society, 816 State Street, Madison, WI 53706


text:
In this picture taken on Thursday, Aug. 16, 2012, Juli Kisan combs the hair of Buddu, a one and a half-year-old sloth bear at the family's home in Lakhapada, 350 kikometers from Bhubaneswar.
The wild bear, which was rescued from the family by wildlife officials on Friday, Aug. 17, 2012, wandered into the village while following a herd of goats and had lived with the family ever since.
Photos: AP


text:
We are open DAILY 10am-5:30pm -weather permitting
We are open from 10am to 5:30pm (weather permitting) daily through August 21.
607-734-0641 - airport (Why don't you answer the phone?!)
607-742-4213 - Office (9-5 weekdays)
ADDRESS: 57 Soaring Hill Dr. Elmira, NY 14903
Price: $96 for high performance ASK-21, $90 for Schweizer 2-33 basic trainer. We accept Visa and Mastercard or cash (exact change is preferred)
More information on rides can be found here.
View a video of the Harris Hill flight experience at Mark Twain Country.com
Flight Training
Weather permitting, flight training is takes place every Wed. evening April through October - from 5pm until dusk. Interested in learning how to fly by joining HHSC? Come out and ask us!
While at Harris Hill visit the National Soaring Museum
Harris Hill shares its site and history with the National Soaring Museum, a world class museum dedicated to the preservation of motorless flight and the home of the Soaring Hall of Fame. Many of the members of HHSC work or volunteer at the NSM. HHSC and the NSM cooperate on many events including hosting the International Vintage Sailplane Meet.
Duty Schedule | Members only | Articles & Essays | Snow Bird | Waypoints | Pilot info | Links | Condor | Contact Us
The Soaring Capital of America


text:
NewsMay 29 2013
Museum opens for the summer season
Posted by Lucy
The Lyman County Historical Society's Pioneer Museum at Presho opened this week for the summer season.
The museum will be open from 5:00 to 8:00 PM on Sunday, Tuesday, Thursday, and Saturday; and 9:00 am to 1:30 PM on Monday, Wednesday, and Friday until Labor Day.
Co-curators Gloria Johnson and Shannon Groth will oversee several part time employees at the museum this summer.
Volunteers are always needed and welcome to great visitors, dust, or water outdoor flowers. Contact Gloria or Shannon if you're interested in volunteering your time at the Lyman County Museum.
- Scavenging through the county
- WCE Cooperative finishes up repairs after weekend storms
- High winds damage structures,
- North Central Farmers Elevator and South Dakota Wheat Growers Member-Owners Vote No on Unification
- Lyman School Board Election results
- Construction at new elevator site stays on schedule
- What's new at the museum
- Local Lions Club projects recognized
- Lyman reunion moves to Clubhouse
- Remebering those who gave all
- Presho HS reunion set


text:
Search Parts
Refine Your Search
Prices (1)
Hemmings Sponsored Links
Viewing 1-7 of 7
Sort By:
These ads appeared in the July, 2015 issue of Hemmings Motor NewsCurrent Subscribers Sign In or Link your subscription to view this month's ads.
1948-1951 Willys Jeepster InteriorsLocation: Edgewater,MD
Description: INTERIOR: 1948-1951 Willys Jeepster seats, nice used, smooth black with white piping, ready to install, $750. For pictures: [Email Seller]
1937-1942 Willys Body partsLocation: Portland,OR
Description: 37-42 WILLYS new steel body parts: fenders, doors, trunk lids, garnish moldings, patch panels, etc, also new coupe bodies; also available: 33-36 Willys rear fenders. 503-254-2561, 503-703-2340, OR; rolandsrodshop.com
Willys WindowsLocation: Diamond Springs,CA
Description: AUTO glass for classic Willys made from original factory patterns. 530-626-6923, CA; instant quote online: www.classicflatglass.com
Willys Jeep Parts listsLocation: Manorville,NY
Description: WILLYS Jeep parts, your one stop shop for NOS and high quality reproduction parts for MB-GPW, M38-M38A1, CJ-2A-3A, CJ5, send $2 for list of choice. Peter Debella, 1319 Pulaski St, Riverhead, NY 11901, 631-874-8660; visit my website: www.debellajeepparts.com
Willys ExhaustsLocation: Manorville,NY
Description: WILLYS CJ2A, 3A, 3B, CJ-5 NOS exhaust system, exhaust pipe, extension pipe, tailpipe, muffler, all 4 parts for only $135 plus shipping. Peter Debella, 1319 Pulaski St, Riverhead, NY 11901, PH: 631-874-8660.
Willys Truck partsLocation: Wakefield,MA
Description: WILLYS weatherseals, side window kits, restoration items. 781-246-3266, MA; www.patwalshrestorations.com**40-YR**
Willys MixedLocation: Wakefield,MA
Description: WILLYS cars weatherseals, window settings, restoration items. 781-246-3266, MA; www.patwalshrestorations.com**40-YR**
Your message has been sent successfully!


text:
Shown (at right) is Mica Parker, the newest member of the Nolan County Hospital District board of directors.
Parker's appointment was approved by the board during their meeting held Thursday, Aug. 29, and she will serve as the District 1 trustee.
Administering the oath of office to Parker is board president Steve Holcomb.
[1] mailto:email@example.com
[2] http://www.sweetwaterreporter.com/sites/default/files/new hospital board member Parker.JPG


text:
Saturday March 21, 2015
Hyatt Regency Century Plaza
Los Angeles
It's our biggest night of the year, and we want you to be there.
Join us in honoring NFL Pro Football Hall of Fame Quarterback Warren Moon with the Unstoppable Achievement award at the 6th annual Unstoppable Gala, as we celebrate our work and help bring education and a future to children in need.
You'll be surrounded by mega influencers including celebrities, all-star sports legends, best-selling authors, global thought leaders and some of the greatest minds in business and philanthropy.
Warren Moon
Unstoppable Achievement
Award Honoree
NFL Hall of Fame Quarterback
Tony Gonzalez
Gala Co-Chair
NFL Legend
CBS Sports Analyst
Shawn King
Gala Co-Host
Malcom Jamal Warner
Gala Co-Host
Actor, Entertainer
This Event is Sold Out
Click here to check out this year's Sponsorship Opportunities
for hotel information.
This year's Gala is Proudly Sponsored By
Schedule of Evening's Event:
5:30 p.m. VIP Red Carpet and Celebrity Reception
6:30 p.m. General Reception
7:30 p.m. Dinner, Entertainment and Evening Program with Live Auction
10:30 p.m. - 1:00 a.m. Unstoppable Gala After Party
2014 Angel Ambassadors
Unstoppable Gala Sponsors
Platinum Sponsors
Diamond Sponsors
Premium VIP Table Sponsors
VIP Table Sponsors
Media Sponsors


text:
The Hope Tapered Headset is designed to fit frames which are sized to accept integral 1 1/8" top cup and 1.5" integral bottom cups, where the fork steerer has a 1.5" crown and a 1 1/8" top. They include replaceable…
- Option:
- Black
- Price:
- Stock:
- In Stock
In Stock – The item is in stock at our warehouse. UK next day delivery available if ordered before 3pm or try our Click & Collect service (FREE).
For UK next day delivery
The Hope Tapered Headset is designed to fit frames which are sized to accept integral 1 1/8" top cup and 1.5" integral bottom cups, where the fork steerer has a 1.5" crown and a 1 1/8" top. They include replaceable custom made stainless steel bearings. The cups, taper ring and crown race, which is split for east installation and removal, are all machined from 2014 T6 Aluminium.
As you might have worked out by now, headsets are a bit of a minefield! Integrated, integral, reducers, dimensions and types all contribute to confusing the situation. Don't panic! We now have top and bottom cups available separately allowing Hope headsets to fit almost any frame and fork combination. Please see the sizing chart on this page for more information, or call and speak to one of our sales team for expert advice.
- Cups:
Machined Aluminium
- Steerer Size:
1 1/8" – 1.5" tapered
- Headtube Type / Internal Size - Top:
Integral (43.95mm)
- Headtube Type / Internal Size - Bottom:
1.5" Integral (55.9mm)
- Bearings:
Custom made Stainless Steel, sealed cartridge bearings
- Extra Features:
Hed Doctor included
- Weight:
Customer Reviews
In Stock
In Stock – The item is in stock at our warehouse. UK next day delivery available if ordered before 3pm or try our Click & Collect service (FREE).
For UK next day delivery
We offer a range of delivery services for our UK and International customers. UK Customers can select our FREE standard delivery option on most non bike orders over £20. Or if you're in a hurry you can upgrade to our Next Day, Saturday or Sunday delivery services. You can also use our free Click & Collect service, where you can collect your purchases from a choice of over 50 Evans Cycles stores. International customers can benefit from FREE delivery on most orders and save UK VAT if we are shipping outside of the EU.
Bike build & delivery
UK bike delivery charge includes assembly by our fully trained mechanics, pre-delivery inspection and safety check, packing in our custom bike box, multi-tool and delivery from only £9.99 per bike.Click here to see how we deliver your bike
Standard, Next Day, Saturday & Sunday UK delivery
We offer a FREE standard delivery service on orders over £20, as well as Next Day, Saturday & Sunday delivery options to UK addresses. Click here for more details
Click & Collect
Using our Click & Collect service your order will be delivered to a choice of over 50 Evans Cycles stores nationwide for collection. This service is FREE of charge for all orders. To check store stock and collection times, use the "Check store stock" button above. Click here for more details
International delivery (Incl BFPO, ROI, Channel Island & Isle of Man)
We offer a FREE delivery service on most International orders. Orders delivered outside the EU are exempt from VAT. To calculate the charges for your order simply add products to your basket and proceed through the checkout process, where you will need to enter your delivery details. Our website will present you with the relevant delivery options and the charges for your basket of goods. Click here for more details.
Easy Returns
Our priority is to ensure that you are highly satisfied with your purchase. In the unlikely event that you are not, please feel free to return your goods within 90 days of the purchase date for a full exchange or refund. Returns can be made in your local store or sent back to our distribution centre.
Time for an overhaul?
£58.32Save 20%!
£83.33Save 20%!
£22.49Save 10%!
£49.99Save 20%!
£54.16Save 10%!
£74.99Save 15%!
£83.33Save 20%!
Look after your bike...
£5.83Save 10%!
£5.83Save 10%!
£8.33Save 10%!
£4.58Save 30%!
£4.58Save 40%!
£8.33Save 10%!


text:
initial FF XIII impressions
By JudahJones 2 Comments
So took the opportunity to trim the fat off my game collection and traded in some games towards FFXIII. gamestop was its usual zoolike self (when will parents learns that the more family members you bring the worse it will be and the longer it will take?) Anyway, got the game and hightailed it out of there.
First things first, the game looks great: The cutscenes in particular look amazing and the in game engine is almost right up there with it. The animations are really expressive too: Characters hunch, sway and realistically look like they're punching, slashing or casting stuff at the enemy. The much battle system is actually far simpler than made out to be, though i am only about 2 hours in so its still severly dumbed down. basically the system from FFXII the only difference that I miss is that at least in XII when you were waiting for your queued action to perform, you could move around the targeted enemies: it didnt give you a tactical advantage, but at least it made it look better then the staredowns that tend to occur in my battles. Though again, to be fair I did turn the battle time to slow to ease myself into it. I do wish that they would take the training wheels off the battle system sooner, as all i am doing is just hitting attack-attack-attack-potion-attack, but apprently the game is designed to be streamlined. maybe when more battle functions emerge, I'll appreciate the autopilot more
In terms of the linearity, yes, all i have been doing for my 2 hours played is running forward through corridors. But I dont think its that big a deal because it fits in with the context of the story: the first act takes place on a monorail track, the next takes place in a base I am infiltrating, of course its going to be linear/corridors! The one change that does suck (but is undoubtedly practical) is that now all shopping is done at savepoints. Though part of the allure of any RPG is to enter a new town, head straight for the store and see what regional goodies are for sale, I'll admit that was one of the annoyances in other traditional RPGs like Lost Odyssey and Tales of Vesperia, i would need to buy a specific item (usual trying to craft something) and I'd have long forgottem what tiny dot on the map sold it. So i'm willing to work with this new system.
And only a closing note, Sazh rocks. the dude has sweet 'fro, an adorable chocobo chick lives in it . And his idle animation in battle is a lil ol' diddy bop bounce. Barrett, you have a wortyy sucessor to carry the 'token black character in a final fantasy game' role.


text:
Crysis 2 DX11 Patch Live
View Single Post
Registered User
Join Date: Mar 2007
Posts: 693
Re: Crysis 2 DX11 Patch Live
The way Crysis 2 uses video memory is weird though. I had all my settings on Ultra in DX11 with high-res textures and saw it was using ~1500MB VRAM at 5760x1080.
So I turned off the high-res textures, and it was still using ~1500MB VRAM. I then turned all the settings on lowest and still saw the same VRAM usage. I then switched to DX9 and still saw the same VRAM usage. So I finally dialed down the resolution to 1920x1080, and only then did my VRAM usage go down, to ~1150MB! This was still with the same lowest settings and no high-res textures at DX9. This can't be right or people with 1GB cards would have seen terrible performance before, which wasn't the case.
So I'm thinking Crysis 2 just hogs as much VRAM as possible, and doesn't actually use all of the VRAM its occupying for at any given moment in the game, instead using the additional VRAM as a cache for other textures that aren't being used to reduce future loading times and such. OF course, with my original settings, I'm even amazed I get the performance that I do, barring the rampant popup and flickering of objects. However, its something I noticed even on my 6970 in my other machine at 1920x1080, and it also doesn't happen in DX9, so I'm thinking its something with the renderer.
Intel Core i7 3930K | Asus X79 Sabertooth | 4x4 GB G.Skill RipJaw PC3-12800 | 2x EVGA NVIDIA GTX TITAN Signature 6GB SLI | OCZ Vertex 3 240GB SSD | 2x500 GB Seagate Barracuda RAID 0 | LG BD-ROM | Cyber Acoustics CA3001WB 2.1 Speakers | SeaSonic 1250W PSU | 3x Acer GD235HZ 23.6in 120Hz | Silverstone Fortress FT02 | Windows 8 Pro x64 | NVIDIA 3DVision SURROUND
Intel Core i7 2600K | Gigabyte Z68X-UD3H | 2x4 GB G.Skill Ripjaw PC3-12800 | XFX AMD R9 290X 4GB | Intel X-25M G2 160GB SSD | 2x250GB RAID 0 | Samsung BD-ROM | ABS SL 1050W PSU | Toshiba 42" REGZA 1080p HDTV | Antec 900 ATX | Windows 8 Pro x64
Sailor Jupiter
Intel Pentium Dual-Core E5200 | ZOTAC Geforce 9300 | 2x2 GB OCZ Fatal1ty PC2-8500 | WD 1TB | Hitachi 2TB External | MediaSonic HFR2-SU3S2 4x3TB Seagate Barracuda RAID 1+0 | LG Blu-Ray/HD DVD-ROM | FSP 150W PSU | Toshiba 42" REGZA 1080p HDTV | Foxconn RS233 mini-ITX | Windows 7 Pro x86
View Public Profile
Visit newparad1gm's homepage!
Find More Posts by newparad1gm