Я создал консольное приложение (.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);
}
}
}