Click here to Skip to main content
15,884,836 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi All,

I am created a program for continuous speech recognition, but its accuracy is very low. Please help me. I have written code that is the problem?


C#
using SpeechLib;

namespace Speech_Recognition
{
    public partial class SRForm : Form
    {
        private SpeechLib.SpSharedRecoContext objRecoContext;
        private SpeechLib.ISpeechRecoGrammar grammar;
        public SRForm()
        {
            InitializeComponent();
            initSAPI();
        }

        private void initSAPI()
        {
            try
            {
                //Create Instance The Main Object (SpSharedRecoContext)And Activating The Recognition Event
                objRecoContext = new SpeechLib.SpSharedRecoContext();
                objRecoContext.Recognition += new _ISpeechRecoContextEvents_RecognitionEventHandler(RecoContext_Recognition);
                objRecoContext.EventInterests = SpeechLib.SpeechRecoEvents.SRERecognition | SpeechLib.SpeechRecoEvents.SREAudioLevel;
                //Grammar Creation with Default Value 'ID = 0' And Grammar Activation
               grammar = objRecoContext.CreateGrammar(0);
               grammar.DictationSetState(SpeechRuleState.SGDSActive);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Exception \n" + ex.ToString(), "Error - initSAPI");
            }
        }
        //---------------------------------------------------------------------------------------------------------

        //Main ObjRecoContext Event And launched when engine recognized a phrase
        public void RecoContext_Recognition(int StreamNumber, object StreamPosition, SpeechRecognitionType RecognitionType, ISpeechRecoResult e)
        {
            //Get And Display Phrase
            string phrase = e.PhraseInfo.GetText(0, -1, true);
           richTextBox1.Text+= phrase + " ";
        }
    }
}


Thanks in Advance.
Posted
Updated 18-Jul-11 1:40am
v3

1 solution

Nothing can be done. This is the quality of the recognition engine you use right now. Alternatively, you could use System.Speech.Recognition, http://msdn.microsoft.com/en-us/library/system.speech.recognition.aspx[^] with DictationGrammar. This is simpler, but the qualify will be the same.

The engine provide pretty good quality if all the grammars used at a time and taken together are reasonably small, and all the works used in all of them are distinctly different in pronunciation. This is not a case with DictationGrammar, where the number of looks-alike is enormous.

A have read the article in Scientific American claiming that original Nuance Dragon NaturallySpeaking provides really smooth dictation, never tried: http://en.wikipedia.org/wiki/Dragon_NaturallySpeaking[^].

There is a number of other products I'm not familiar with. See:
http://en.wikipedia.org/wiki/Speech_recognition[^],
http://en.wikipedia.org/wiki/Digital_dictation[^],
http://en.wikipedia.org/wiki/Digital_dictation_software[^].

—SA
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900