Reply To: Crash when Generating Language Model

Home Forums OpenEars Crash when Generating Language Model Reply To: Crash when Generating Language Model

Halle Winkler

I’ll give you some background so you can make informed choices about the input text for best results.

In order to perform recognition, it’s necessary to have an acoustic model, a phonetic dictionary, and either a language model or a grammar. The acoustic model is a bundle in OpenEars and under most circumstances you don’t do anything special with it, and the language model or grammar can be made from any kind of arbitrary input (punctuation is fine) but it has to match what it in the phonetic dictionary in order for recognition to work. The language model/grammar are about constraining the search space for language, and the phonetic dictionary is about transcribing the actual word sounds which a word is comprised of.

In order to make these phonetic transcriptions of word sounds for the phonetic dictionary, OpenEars first just tries to look them up in the file LanguageModelGeneratorLookupList.text in the acoustic model bundle, and it may get one or several alternate pronunciations. That is the best case scenario because it means that a word with a few different pronunciations will tend to be recognized correctly. If it can’t find any pronunciations in that file, it will go to the fallback method, which will take a single best guess. This is not as good because a) the guess might be wrong, or b) it might be right but it’s only one pronunciation and there might be more than one correct way to say the word (e.g. the word “orange” which has different regional pronunciations), so the other pronunciations will not be recognized accurately.

So if words are submitted to the first method with extraneous punctuation, they won’t be found in the preferred lookup method (as an example, “it’s” is not in the main lookup dictionary for some reason). But if it’s very obvious how it would be pronounced, a successful phonetic transcription might be made by the fallback method anyway. That is what is happening when you submit “it’s” and it appears to be working. For “I’d”, it is actually in the main lookup dictionary. I think this probably (narrowly) means you should keep apostrophes in, since “id” is pronounced different from “I’d”, but keep an eye on things and see if you end up with any words which can never be recognized by the engine, which is a potential sign of a bad entry from the fallback method.

Remember to put your text in all caps!