COM Exception in Visual Studio with language c#


I have this code referring to a modality that generates a grammar and sends message to an IM (interaction modality). But every time I run the program I have this exetion. I have already seen several solutions like the computer having wrong COM settings and I have changed and nothing has changed, it does not run.

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using mmisharp;
 using Microsoft.Speech.Recognition;

 namespace speechModality
     public class SpeechMod
         private SpeechRecognitionEngine sre;
         private Grammar gr;
         public event EventHandler<SpeechEventArg> Recognized;
         protected virtual void onRecognized(SpeechEventArg msg)
             EventHandler<SpeechEventArg> handler = Recognized;
             if (handler != null)
                 handler(this, msg);

         private LifeCycleEvents lce;
         private MmiCommunication mmic;

         public SpeechMod()
             //init LifeCycleEvents..
             lce = new LifeCycleEvents("ASR", "FUSION","speech-1", "acoustic", "command"); // LifeCycleEvents(string source, string target, string id, string medium, string mode)
             //mmic = new MmiCommunication("localhost",9876,"User1", "ASR");  //PORT TO FUSION - uncomment this line to work with fusion later
             mmic = new MmiCommunication("localhost", 8000, "User1", "ASR"); // MmiCommunication(string IMhost, int portIM, string UserOD, string thisModalityName)


             //load pt recognizer
             sre = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("pt-PT"));
             gr = new Grammar(Environment.CurrentDirectory + "\\ptG.grxml", "rootRule");

             sre.SpeechRecognized += Sre_SpeechRecognized;
             sre.SpeechHypothesized += Sre_SpeechHypothesized;


         private void Sre_SpeechHypothesized(object sender, SpeechHypothesizedEventArgs e)
             onRecognized(new SpeechEventArg() { Text = e.Result.Text, Confidence = e.Result.Confidence, Final = false });

         private void Sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
             onRecognized(new SpeechEventArg(){Text = e.Result.Text, Confidence = e.Result.Confidence, Final = true});

             // IMPORTANT TO KEEP THE FORMAT {"recognized":["SHAPE","COLOR"]}
             string json = "{ \"recognized\": [";
             foreach (var resultSemantic in e.Result.Semantics)
                 json+= "\"" + resultSemantic.Value.Value +"\", ";
             json = json.Substring(0, json.Length - 2);
             json += "] }";

             var exNot = lce.ExtensionNotification(e.Result.Audio.StartTime+"", e.Result.Audio.StartTime.Add(e.Result.Audio.Duration)+"",e.Result.Confidence, json);

The error:

System.Runtime.InteropServices.COMException: 'Failed to get COM's class factory from component with CLSID {49428A60-C997-4D0E-9808-9E326C178D58} due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) . '

asked on Stack Overflow Mar 29, 2019 by Elaine

0 Answers

Nobody has answered this question yet.

User contributions licensed under CC BY-SA 3.0