Я использую платформу Microsoft Speech Platform для распознавания речи при выводе ее на экран. Но у меня проблема: например, у меня есть грамматика (конструкции GrammarBuilder и Choices - «красный», «зеленый», «черный»)Microsoft Speech Platform: распознавание повторений слов
Когда я говорю - «красный зеленый черный» - я могу получить только " красный ", может быть," красный зеленый ", но не" красный зеленый черный ".
Некоторый код:
Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("ru-RU");
// Create a new SpeechRecognitionEngine instance.
_sre = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("ru-RU"));
_sre.SpeechHypothesized += _sre_SpeechHypothesized;
_sre.SpeechDetected += _sre_SpeechDetected;
//_sre.SetInputToWaveFile(@"c:\Test\Wavs\Wavs-converted\file.wav");
_sre.SetInputToDefaultAudioDevice();
public void LoadGrammarIntoEngine(IEnumerable<String> textColl)
{
Choices choices = new Choices();
GrammarBuilder gb = new GrammarBuilder();
gb.Culture = new CultureInfo("ru-RU");
if (choices != null && textColl != null)
{
choices.Add(textColl.ToArray());
gb.Append(choices);
}
}
public void Recognize() {
if (_sre != null && _sre.Grammars.Count != 0) {
_sre.RecognizeAsync(RecognizeMode.Multiple);
}
}
Итак, как решить эту проблему? Должен ли я делать грамматику SGRS с правилами? Файл грамматики TXT файл со словами вроде:
Dictionary.txt
green
black
yellow
red
some other words
Добавить в словарь также 'красный зеленый black'. –
Это плохое решение: я думаю, что пользователь может сказать: я люблю зеленый \ черный, но я установить словарь так: Я как зеленый черный и т.д. – user2545071