80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

24,309

Sounds like you only installed the 64-bit version of the Speech Platform Runtime, and not the 32-bit version.

Share:
24,309
user3160438
Author by

user3160438

Updated on December 13, 2020

Comments

  • user3160438
    user3160438 over 3 years

    An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in Microsoft.Speech.dll

    Additional information: Retrieving the COM class factory for component with CLSID {49428A60-C997-4D0E-9808-9E326C178D58} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

    I am following this sample from MSDN for Microsoft Speech Platform SDK 11:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    using Microsoft.Speech;
    using Microsoft.Speech.Recognition;
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                SpeechRecognitionEngine sre = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US"));                        ======>>**ERROR** 
                sre.SetInputToWaveFile(@"c:\Test\Colors.wav");
                Choices colors = new Choices();
                colors.Add(new string[] { "red", "green", "blue" });
    
                GrammarBuilder gb = new GrammarBuilder();
                gb.Append(colors);
    
                Grammar g = new Grammar(gb);
                sre.LoadGrammar(g);
    
                // Register a handler for the SpeechRecognized event.
                sre.SpeechRecognized +=
                  new EventHandler<SpeechRecognizedEventArgs>(sre_SpeechRecognized);
    
                // Start recognition.
                sre.Recognize();
    
                sre.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sre_SpeechRecognized);
            
            }
    
            private void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
            {
                MessageBox.Show("Speech recognized: " + e.Result.Text);
            }
    
           
        }
    }
    
  • Pierre-Olivier Pignon
    Pierre-Olivier Pignon over 7 years
    Sure, i confirm, had same problem, solved installing Speech Platform Runtime 32-bit