5

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?

Buns of Aluminum
  • 2,439
  • 3
  • 26
  • 44
  • If Google engine is limited, you have always an option to use another engine, for example [CMUSphinx](http://cmusphinx.sourceforge.net/2011/05/building-pocketsphinx-on-android/) – Nikolay Shmyrev Jan 28 '13 at 16:30
  • I've seen CMUSphinx mentioned several places, but is it something that can be included in a normal Android app? It looks like you have to build it for your device, so is it feasible for an Android store app? – Buns of Aluminum Jan 28 '13 at 16:34
  • CMUSphinx can be used in Android store app just like any other software library – Nikolay Shmyrev Jan 28 '13 at 16:35

1 Answers1

3

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.

Kaarel
  • 10,554
  • 4
  • 56
  • 78