Распознать пользовательские речевые ключевые слова (Unity, MRTK, Hololens 1) - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь заставить hololens (1) распознать пользовательское речевое ключевое слово. Использование Unity и MRTK. Он распознает предварительно определенные ключевые слова (например, «Выбрать»), но мое пользовательское ключевое слово (назовем его «Ключевое слово») не распознается.

У меня есть всплывающая подсказка, чтобы дать отзыв, если он распозналключевое слово и звуковую обратную связь, которую я вставил туда для целей отладки (иначе: если ЛЮБОЕ ключевое слово распознано, включите звуковой сигнал). Он работает для «Выбрать», но не для «Ключевого слова».

Я хочу, чтобы это ключевое слово было распознано глобально.

  1. Возможность микрофона выбрана.
  2. Ключевое словоопределяется в разделе профилей. (Ввод> Речь> Добавить новую речевую команду)
  3. Обработчик действия ввода, Обработчик ввода речи и пользовательский код "SpeechManager.cs" ВСЕ делают одно и то же. «Выбрать» распознается (всплывающее окно и воспроизводится звуковой сигнал), но «Ключевое слово» нет.
  4. «Требуется фокус» не выбран.
  5. Я пробовал несколько разных ключевых слов, чтобы сделатьуверен, что я не выбрал трудный для распознавания.

    using UnityEngine;
    using Microsoft.MixedReality.Toolkit.Input;
    using Microsoft.MixedReality.Toolkit;
    public class SpeechManager : MonoBehaviour, IMixedRealitySpeechHandler
    {
    
    void Start()
    {
        //Debugging "play sound" declarations deleted as not important for this example script.
        CoreServices.InputSystem?.RegisterHandler<IMixedRealitySpeechHandler>(this);
    }
    
    void IMixedRealitySpeechHandler.OnSpeechKeywordRecognized(SpeechEventData eventData)
    {
        PlaySound(1);  //DEBUG AUDIO FEEDBACK
    
        if (eventData.Command.Keyword == "keyword")
        {
            PlaySound(2);  //DEBUG AUDIO FEEDBACK
        }
        else if (eventData.Command.Keyword == "select")
        {
            PlaySound(3);  //DEBUG AUDIO FEEDBACK
        }
    }
    } 
    

Что ДОЛЖНО произойти:

Говорят "Выберите": PlaySound (1) и PlaySound (3) сработало.

произнесено "ключевое слово": сработали PlaySound (1) и PlaySound (2).

Что происходит на самом деле:

"Выберите": сработало PlaySound (1)*

"Ключевое слово" ничего не происходит <- Почему? ПОЧЕМУ ??? </p>

'* Да, PlaySound (3) не запущен, но это отдельная проблема, о которой я не слишком беспокоюсь, потому что и обработчик речевого ввода, и обработчик действия ввода распознают «Выбрать»«. Одна проблема за раз!

Ответы [ 2 ]

0 голосов
/ 12 ноября 2019

Перазим, спасибо за ваш вклад. Моя выглядит точно так же, как ваша. Так почему это не работает? Я понял. Другой пользователь, столкнувшийся с другой проблемой, решил свою проблему, удалив папку приложения (или любую другую папку, которую вы назвали). Я подумал, давай попробуем. Это сработало!!! Совет, чтобы сэкономить огромное количество времени: если вы думаете, что это должно работать, а это не так, удалите приложение !!!

0 голосов
/ 11 ноября 2019

Я могу поделиться тем, как я настроил свою сцену, и мои слова узнают. Я прикрепляю SpeechInputHandler, например, на своей панели инструментов и привязываю ключевые слова к кнопкам панели инструментов. Is Focus Required также установлен на false.

1. Определите ключевое слово в MRT>Input>Speech:
enter image description here
2. Настройте Speech Input Handler:
enter image description here

...