7

I am making a Smart House Control System right now, and I have a little problem. I was thinking on using Cosmos for a base system, and adding the needed namespace libraries to it, but as the usual System.Speech.Recognition namespace depends too much on Windows Speech API, I have to forget about using it.

So my question is, is there any (free if possible) voice recognition and/or speech speech synthesizer library for C#, what has the following:

  • support for multi-language speaking
  • extracting text content from speech sample
  • synthesizing speech with selectable (or user-written) speech pattern (voice)

A general usage, non-windows dependent library would be the best, and of course, if it was free too.

fonix232
  • 2,132
  • 6
  • 39
  • 69
  • 3
    Wow, I never knew there was [built-in speech recognition](http://msdn.microsoft.com/en-us/library/system.speech.recognition.aspx) in the .net framework. Also, [this](http://msdn.microsoft.com/en-us/library/system.speech.synthesis.aspx). – BlueRaja - Danny Pflughoeft May 25 '10 at 17:20
  • @BlueRaja - You should make this an answer. I would upvote you. I didn't know about this either. – JasCav May 25 '10 at 17:29
  • I don't believe fonix232 isn't using a Microsoft OS for this - he's apparently using an open-source OS written in IL. Link is http://www.gocosmos.org/index.en.aspx. – Eric Brown May 27 '10 at 16:16

2 Answers2

2

Check out this project: http://cmusphinx.sourceforge.net/

It's an open source speech recognition project. It is trainable with any language you want plus since its open source you can modify it to suit your needs or expand it.

Icemanind
  • 47,519
  • 50
  • 171
  • 296
  • The only problem is, that it isn't a purely C# library. And as I said, I want to use a purely C# library, as Cosmos requires it. – fonix232 May 25 '10 at 19:14
  • hi icemanind, i am searching for an speech recognition program to get the best possible results, do you think CMU Sphinx can offer me this? – Fernando Santiago Jan 19 '13 at 20:03
  • @FernandoSantiago - I think its the best FREE option. If you don't have money to spend, then its the way to go. Keep in mind, as fonix232 pointed out, its not pure C#. Its got some C++ under the hood too – Icemanind Jan 20 '13 at 00:50
  • Thank you @icemanind, I am going to give it a try. Do you have any tutorial or something like this? because i have been searching on the web, and the official page seems to be so confusing to me [CMU Sphinx](http://cmusphinx.sourceforge.net/wiki/tutorialpocketsphinx), the farest i got is this [Tutorial](http://mariangemarcano.blogspot.dk/2012/09/speech-recognition-with-pocketsphinx.html) – Fernando Santiago Jan 20 '13 at 02:17
2

Voxeo offers developer accounts which you could use to develop a speech powered home automation system. I've interfaced it to my own home automation system for a small subset of the commands my home understands and it works great. You'll need to learn some VoiceXML to use it.

SAPI works OK for voice synthesis; I use SAPI in my system for spoken prompts in the house like a weather forecast that comes over the speakers in the morning when you walk into the bathroom. If Cosmos doesn't allow you to include all the DLLs you need maybe you could create a separate service using SAPI and then use WCF (or other) to communicate between them??

For the related problem of understanding natural language in a typed form I've developed a C# NLP Engine which I hope to be able to make available for non-commercial at some point in the future.

Extracting text from speech without specifying any grammar up-front is a very hard problem and is going to be error prone. Even if you could solve that, you'd still have the problem of trying to understand what they said using NLP. Constructing a grammar that guides the recognizer to the kinds of sentences you want to recognize (like VoiceXML does) is likely to achieve much higher accuracy.

Ian Mercer
  • 38,490
  • 8
  • 97
  • 133