none
Erro Speech to Text csharp : Retrieving the com class factory for component with clsid RRS feed

  • Pergunta

  • Quando ele abre, apresenta esse erro: 

    Retrieving the com class factory for component with clsid 

    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.Recognition;
    using System.Globalization;
    
    
    namespace audio3
    {
        public partial class Form1 : Form
        {
    
            private SpeechRecognitionEngine sre = null;
            public Form1()
            {
                InitializeComponent();
            }
    
            public void LoadFiles()
            {
                try
                {
                    sre = new SpeechRecognitionEngine(new CultureInfo("en-US"));
                    sre.SetInputToDefaultAudioDevice();
                    string[] comandos = { "hello", "what", "good" };
                    sre.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(comandos))));
                    sre.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(rec);
                    sre.RecognizeAsync(RecognizeMode.Multiple);
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                
    
            }
    
            private void rec(object s, SpeechRecognizedEventArgs e)
            {
                label1.Text = e.Result.Text;
            }
    
    
            private void Form1_Load(object sender, EventArgs e)
            {
                LoadFiles();
            }
        }
    }
    

    Já tentei substituir o Microsoft.Speech... para System.Speech, e o erro foi esse:

    no recognizer of the required id found. parameter name culture...

    Agm me ajuda ?

    segunda-feira, 24 de outubro de 2016 00:16

Respostas


  • Tente só "en" ao invés de "en-US" ao instanciar System.Globalization.CultureInfo.

    https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.name(v=vs.110).aspx?f=255&MSPPError=-2147217396


    segunda-feira, 24 de outubro de 2016 12:50

Todas as Respostas

  • Pra mim aqui funciona este código, mas entendo que a mensagem está relacionada com as opções de cultura disponível pra você. Você já tentou usar a cultura nativa do seu sistema operacional (pt-BR?) e algumas palavras em português?

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Speech.Recognition;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace SRE
    {
        public partial class MainWindow : Form
        {
            private SpeechRecognitionEngine srEngine;
    
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void MainWindow_Load(object sender, EventArgs e)
            {
                StartupSRE();
            }
    
            private void PrintSpeech(object sender, SpeechRecognizedEventArgs eventArgs)
            {
                tbSpeech.AppendText(eventArgs.Result.Text + " ");
            }
    
            private void StartupSRE()
            {
                String[] words;
                Grammar grammar;
                GrammarBuilder grammarBuilder;
    
                try
                {
                    words = new String[] {"hello","what","speech"};
                    grammarBuilder = new GrammarBuilder(new Choices(words));
                    grammar = new Grammar(grammarBuilder);
    
                    srEngine = new SpeechRecognitionEngine();
                    srEngine.SetInputToDefaultAudioDevice();
                    srEngine.LoadGrammar(grammar);
                    srEngine.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(PrintSpeech);
                    srEngine.RecognizeAsync(RecognizeMode.Multiple);
    
                }
                catch (Exception error)
                {
                    MessageBox.Show("Oh-oh, something happened: "  + error.ToString());
                }
            }
        }
    }
    

    segunda-feira, 24 de outubro de 2016 12:40

  • Tente só "en" ao invés de "en-US" ao instanciar System.Globalization.CultureInfo.

    https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.name(v=vs.110).aspx?f=255&MSPPError=-2147217396


    segunda-feira, 24 de outubro de 2016 12:50