MRTK V2.2 - Доступ к речевой команде через скрипт - PullRequest
0 голосов
/ 23 марта 2020

В моем сценарии кнопки создаются во время выполнения. Они должны быть нажаты голосовой командой. По этой причине я пытаюсь выяснить, как я могу добавлять голосовые команды во время выполнения. Но я не могу найти какой-либо подход.

Что я пробовал: Я расширил интерфейс IMixedRealitySpeechSystem двумя способами, RefreshRecognition и AddSpeechCommand:

/// <summary>
/// Refresh recognition after adding new commands
/// </summary>
void RefreshRecognition();

/// <summary>
/// Add command to already existing commands[]
/// </summary>
/// <param name="command"></param>
void AddSpeechCommand(SpeechCommands command);

Я реализовал их в классе WindowsSpeechInputProvider: MixedRealitySpeechSystem. Но есть две проблемы:

Первый : я не могу добраться до WindowsSpeechInputProvider. Я думал, что смогу получить это, попробовав это:

private IMixedRealitySpeechSystem SpeechSystem
{
    get
    {
        if(_speechSystem is null)
        {
            MixedRealityServiceRegistry.TryGetService(out _speechSystem);
        }
        return _speechSystem;
    }
}

public void SomeMethod()
{
    SpeechCommands command = new SpeechCommands("TestCommand", default, default, null);
    SpeechSystem.AddSpeechCommand(command);
    SpeechSystem.RefreshRecognition();
}

Но проблема в том, что MixedRealityServiceRegistry не содержит экземпляр этого сервиса или, если быть точным, это даже не сервис.

Second : Даже если это сработает, это не очень хороший способ для go. Поскольку при этом я меняю MRTK, а при другом обновлении до новой версии эти строки перезаписываются.

Мой вопрос :
Так как я могу получить доступ и добавить команды во время выполнения?

1 Ответ

1 голос
/ 10 апреля 2020

Существует открытый запрос функции, позволяющий добавлять динамические c речевые команды в Github: Динамически добавлять ключевые слова в речевые команды MRTK # 6369. В настоящее время это невозможно.

В этой теме есть несколько предложений по альтернативным способам подхода к общему сценарию. Таким образом, рекомендуется использовать Grammar Recognizer и использовать файл SRGS XML для определения правил распознавания речи. Голосовой ввод в Unity и Голограмма 212 имеет пример, показывающий, как его использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...