Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Speech to Text on Android with custom unusual word matching

I would like to be able to use Android's Speech-To-Text engine to recognize a variety of unusual words in sentences.

To give an example, the word "electroencephalograph" comes out of STT as "electronics supply graph". When I use Soundex or Metaphone to compare what is spoken to a hard-coded value, the value seem to never match or randomly match. If I use a threshold (Math.abs(str1.compareTo(str2)) <= 1, for example), then the matching becomes very loose and almost anything will match.

In essence, what I would like to do is similar to looking up quotes from a quote-database by reciting the quote. The problem seems to be more in the limited wordset used by Google's Speech-To-Text engine.

Any ideas?

like image 422
Buns of Aluminum Avatar asked Oct 22 '22 18:10

Buns of Aluminum


1 Answers

You could try CMUSphinx with or without grammar-based speech recognition.

Look at the Inimesed app. This is an open-source Android app which does JSGF-based speech recognition using CMUSphinx. In this case the grammar is compiled on the basis of the user's address book. You could simply throw out this part and have a fixed grammar that contains all your phrases.

If the problem is more that you have free-form sentences which contain occasional unusual words then grammar-based speech recognition might not work. In this case recognize with the n-gram language model but include all the unusual words in the dictionary.

like image 57
Kaarel Avatar answered Nov 03 '22 23:11

Kaarel