Как исправить «распознаватель не установлен» в Visual Studio 2019 - PullRequest
0 голосов
/ 20 мая 2019

Я создал консольное приложение (.Net Framework) для преобразования звука в текст и отображения текста на консоли, но при попытке запустить программу выдает ошибку:

System.PlatformNotSupportedException: 'Распознаватель не установлен.'

Я установил (https://www.microsoft.com/en-us/download/details.aspx?id=14373 "Microsoft Speech Platform SDK") и (https://www.microsoft.com/en-us/download/details.aspx?id=27224 "Языки времени выполнения"), но он по-прежнему не хочет запускаться.Любые предложения?

Я пытался это выяснить, какая у меня версия, но ничего не отображается.

foreach (RecognizerInfo ri in SpeechRecognitionEngine.InstalledRecognizers())
{
         System.Diagnostics.Debug.WriteLine(ri.Culture.Name);
         Console.WriteLine(ri.Culture.Name);
}

Console.WriteLine("Done");
Console.ReadLine();

Я нашел этот код здесь в stackoverflow в другой теме, в которой была та же проблема, ноу него был какой-то вывод, у меня его нет.

Это мой код, который я использую, но ошибка появляется на engine.SetInputToDefaultAudioDevice(), и я не знаю, как это исправить

using System;
using System.Speech.Recognition;
using System.Speech.Synthesis;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            SpeechRecognitionEngine engine = new SpeechRecognitionEngine();
            SpeechSynthesizer Sarah = new SpeechSynthesizer();            
            engine.SetInputToDefaultAudioDevice();

            while (true)
            {
                engine.LoadGrammarAsync(new Grammar(new GrammarBuilder(new Choices(new string[] { "Hello", "How are you" }))));
                engine.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(Default_SpeechRecognized);
                engine.SpeechDetected += new EventHandler<SpeechDetectedEventArgs>(_recognizer_SpeechRecognized);
                engine.RecognizeAsync(RecognizeMode.Multiple);
            }

            Console.ReadLine();
        }

        private static void _recognizer_SpeechRecognized(object sender, SpeechDetectedEventArgs e)
        {
            string words = e.ToString();
            Console.WriteLine(words);
        }

        private static void Default_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            string words = e.ToString();
            Console.WriteLine(words);
        }
    }
}
...