Создал простую WinForm-программу, которая распознает речь, использовал библиотеку Microsoft.Speech. Всё отлично работает, но есть один минус и это создание грамматики. То есть понимает только определенные слова. Подскажите, как обходиться без создания грамматики, или посоветуйте другой офлайн-распознаватель речи без грамматики.
SpeechRecognitionEngine sre;
CultureInfo ci;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ci = new CultureInfo("ru-RU");
sre = new SpeechRecognitionEngine(ci);
sre.SetInputToDefaultAudioDevice();
sre.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(Sre_SpeechRecognized);
Choices ch = new Choices();
ch.Add("Привет");
GrammarBuilder gb = new GrammarBuilder();
gb.Append(ch);
Grammar grammar = new Grammar(gb);
sre.LoadGrammar(grammar);
sre.RecognizeAsync(RecognizeMode.Multiple);
}
private void Sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
if (e.Result.Confidence > 0.12)
{
MessageBox.Show(e.Result.Text);
}
}