Błąd podczas uruchamiania rozpoznawania mowy

0

Mam taki problem. Otóż chciałbym sobie napisać rozpoznawanie mowy w C# używając System.Speech. Problem polega na tym, że kiedy włączam rozpoznawanie mowy, otrzymuję następujący wyjątek: ''System.PlatformNotSupportedException: Nie zainstalowano żadnego aparatu rozpoznawania.; . Oto pełny kod:

SpeechRecognitionEngine sRecognize = new SpeechRecognitionEngine();

private void button1_Click(object sender, EventArgs e)
{
    button1.Enabled = false;
    button3.Enabled = true;

    Choices sList = new Choices();
    sList.Add(new string[] {"witaj", "test", "nowy", "stop", "start", "exit"});

    Grammar gr = new Grammar(new GrammarBuilder(sList));

    try
    {
        sRecognize.RequestRecognizerUpdate();		// <-- Ta metoda zwraca wyjątek
        sRecognize.LoadGrammar(gr);
        sRecognize.SpeechRecognized += sRecognize_SpeechRecognized;
        sRecognize.SetInputToDefaultAudioDevice();
        sRecognize.RecognizeAsync(RecognizeMode.Multiple);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
        return;
    }
}

private void sRecognize_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
    textBox1.AppendText("You said: " + e.Result.Text + "\n\n");
}

Domyślam się, że nie mam zainstalowanego systemu rozpoznawania mowy(a może jednak to coś z kodem), jednak nie wiem jak i skąd go wziąć. Proszę o pomoc.

0

A może podasz jakieś szczegóły wyjątku Message, Typ?

0

Wprawdzie podałem już typ i wiadomość wyjątku, ale jeśli to mało, to poniżej wklejam cały wyjątek:

System.PlatformNotSupportedException: Nie zainstalowano żadnego aparatu rozpoznawania. 
   w System.Speech.Recognition.RecognizerBase.Initialize(SapiRecognizer recognizer, Boolean inproc)
   w System.Speech.Recognition.SpeechRecognitionEngine.get_RecoBase()
   w System.Speech.Recognition.SpeechRecognitionEngine.RequestRecognizerUpdate()
   w SpeechRecognitionTutorial.Form1.button1_Click(Object sender, EventArgs e)
   w f:\C#\SpeechRecognitionTutorial\Form1.cs:wiersz 53
1

Strzelam, ze to kwestia tego, ze rozpoznawanie mowy w windows nie dziala z jezykiem polskim.
http://windows.microsoft.com/pl-pl/windows/set-speech-recognition#1TC=windows-7

1

Może to to musisz mieć:
http://msdn.microsoft.com/en-us/library/office/hh361572(v=office.14).aspx
Zmień sobie żeby VS wypluwał błędy po angielsku.

1
cPlusPlus napisał(a):

OK, poradziłem sobie. Po prostu zmieniłem język systemu na angielski i lokalizację na GB.

Pojawił mi się jednak inny problem(naprawdę jest związany z tematem, chociaż tego nie widać), a mianowicie potrzebuję nazwę klasy oraz nazwę okna programu google chrome, jednak mam wersję Express VS i nie mogę tego wyciągnąć z programu Spy++. Czy jest jakiś inny sposób na zdobycie tego programu / na pobranie uchwytu do aktywnego okna?

Zamiast zmieniać język systemu powinieneś czytać dokumentację i po prostu użyć innego konstruktora, który pozwala na wybór języka.


co do głównego wątku:
dokumentacja napisał(a)

You can create an instance of this class for any of the installed speech recognizers. To get information about which recognizers are installed, use the static InstalledRecognizers method.

Czyli nie masz zainstalowanego rozpoznawania mowy dla języka polskiego.
Z dokumentacji wynika, że polski jest wspierany: http://msdn.microsoft.com/en-us/library/office/hh378476%28v=office.14%29.aspx tam jest link skąd można ściągnąć engine dla różnych języków: http://www.microsoft.com/en-us/download/details.aspx?id=27224

0

witam!
Ja widzę że te drivery i biblioteki są tylko dla wersji Windows 7, nie ma nawet 8 a ja pracuję na win10.

Your project should now have access to speech recognition and speech synthesis in Windows Vista or Windows 7.
Nie odnajduje ri
// Select a speech recognizer that supports English.
RecognizerInfo info = null;
foreach (RecognizerInfo ri in SpeechRecognitionEngine.InstalledRecognizers())
{
if (ri.Culture.TwoLetterISOLanguageName.Equals("en"))
{
info = ri;
break;
}
}

Pozdrawia
Piotr

Znalezione rozwiązanie może się komus przyda w przyszłości : rozwiązanie

1 użytkowników online, w tym zalogowanych: 0, gości: 1