0

I'm thinking about implementing basic voice control for an iOS app. The app will have a dictionary with about 30 entries, where each entry is a first and last name. When the user speaks to the app, the app will need to select the correct name from the list of ~30.

One thing I'm not sure about: the list of names is defined by each user of the app. So every user will have a different set of names.

I'm wondering if there is a an open source library that is customizable on this level? My biggest concern is that I won't be able to let the user define the dictionary.

Any ideas on how this could be done?

Thanks in advance, and please forgive the vague question :)

#### ### ### ###

Update: I am aware of the OpenEars library. Can't find anything on their site on if they allow limited, user-defined dictionaries. I can see that an app developer can set a custom dictionary, but nothing on if the app's end user could do this. Thanks for the help!

Chris
  • 719
  • 1
  • 7
  • 22
  • possible duplicate of [iPhone App › Add voice recognition?](http://stackoverflow.com/questions/942312/iphone-app-add-voice-recognition) – Nikolay Shmyrev Feb 22 '14 at 22:14
  • 2
    Thanks for the link to that one! It's a similar question, but mine is more detailed with what I'm trying to do. The other question asks "how do I do voice recognition?". I'm asking "how can I do voice control with a limited, user-defined dictionary without sending data to server for processing?". Also, that question was posted 3 and a half years ago. – Chris Feb 23 '14 at 19:04
  • The answer is still the same - openears. You need to do some research before you ask another question. – Nikolay Shmyrev Feb 23 '14 at 19:21
  • I knew about OpenEars before posting. I don't see anything about user-defined limited dictionaries on the OpenEars site. Maybe you've found a plugin that allows this? It actually looks at this point like Julius may be the better option. I think your dismissal of my question is unfair. – Chris Feb 24 '14 at 02:42
  • Limited vocabulary is supported out of box, it's actually the main feature of openears, you can learn about it by reading the documentation http://www.politepix.com/openears/#LanguageModelGenerator_Class_Reference. Julius is not a good option because it doesn't have good acoustic models, pocketsphinx acoustic models are way better than Julius ones. – Nikolay Shmyrev Feb 24 '14 at 07:38
  • Hi Chris, OpenEars developer here. Sure, OpenEars allows dynamic generation of language models from NSArrays of NSStrings, meaning that you can generate a model (your vocabulary) based on any text you can acquire an NSArray of, including contact info if you have permission. You can easily see how to use LanguageModelGenerator if you give the tutorial a try. Good luck! – Halle Feb 24 '14 at 15:15
  • You're welcome, feel free to ask implementation questions in the OpenEars forums if they come up. – Halle Feb 24 '14 at 18:32
  • @Halle I tried to go to the forums, but I'm not getting the registration confirmation emails on my gmail account. No big deal, just FYI. Thanks again for your help! – Chris Feb 24 '14 at 20:08
  • OK, thanks for the heads-up. If you want to troubleshoot it it's probably better to get in touch via the site contact form. – Halle Feb 25 '14 at 08:52

2 Answers2

1

OpenEars allows you to define your own vocabulary out of the box using http://www.politepix.com/openears/#LanguageModelGenerator_Class_Reference

You can ignore all words outside of the vocabulary you define by using the Rejecto plugin.

You can do something similar with Julius, but I'm told OpenEars has better acoustic models.

Chris
  • 719
  • 1
  • 7
  • 22
0

I have used Julius in the past it worked very well on a Linux machine.

Now for iOS, some guys creaceed have compiled it for our lovely platform and propose a SDK.

I have no clue on how good it is, but at least there is a trial version you could check. In my opinion for your purpose (1/30 possibilities) it should work pretty well.

Vincent Zgueb
  • 1,491
  • 11
  • 11
  • Creaceed actually make an app called Vocalia that uses the app users contacts as the dictionary. It works quite well even with over a thousand contacts. It seems Julius may do the trick - thank you! – Chris Feb 24 '14 at 02:45