Microsoft Azure 网络聊天,从其他功能触发麦克风

Microsoft Azure Web Chat, trigger mic from other function

我已经使用 Microsoft Bot Framework 为客户端创建了一个机器人。即称为 WebChat。我还添加了语音 SpeechRecognizer。但是,我正在尝试在朗诵一个短语时触发麦克风。

我在 Microsoft 中找不到执行此操作的功能。所以我添加了我自己的语音识别器,每秒调用一次,一旦调用了短语,我想从认知服务调用麦克风功能。

我怎样才能做到这一点?

我从 here

得到了语音识别器

我写的用来识别短语的是这样的:

function startDictation() {

            if (window.hasOwnProperty('webkitSpeechRecognition')) {

                var recognition = new webkitSpeechRecognition();

                recognition.continuous = false;
                recognition.interimResults = false;

                recognition.lang = "en-US";
                recognition.start();

                recognition.onresult = function (e) {
                    var foundText = e.results[0][0].transcript;
                    console.log(foundText);
                    if (foundText == "hello hello") {
                        console.log("found text");
                        //call cognitive service mic function
                        recognition.stop();
                    }
                    else {
                        console.log("text not found");
                        recognition.stop();
                        startDictation();
                    }
                };

                recognition.onerror = function (e) {
                    console.log("found error", e);
                    recognition.stop();
                }

            }
        }

如果有任何信息遗漏或误导,请告诉我。

更多:

我试图利用 SpeechRecognizer class 和 https://github.com/Microsoft/BotFramework-WebChat/blob/master/src/CognitiveServices/SpeechRecognition.ts#L72 中的 startRecognizing() 函数来触发识别功能。但是,我发现只有点击麦克风项,我才能使用startRecognizing()功能来识别语音。

目前您可以尝试使用一个变通技巧:

我检查了麦克风项目,并尝试在 js 中触发它的 click 事件,它完全可以识别我的语音。

您可以尝试将以下 js 代码片段与 jQuery 一起使用:

$('.wc-mic').trigger("click")

希望对您有所帮助。