首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript网络语音API:我怎么需要这个值?

JavaScript网络语音API:我怎么需要这个值?
EN

Stack Overflow用户
提问于 2018-11-27 15:36:41
回答 1查看 225关注 0票数 0

我目前正在学习语音识别(JavaScript)。

我想和JavaScript做个助理。我的问题是我说的每句话我都不能用。当我说你好时,我希望它启动ai()函数。

我的守则:

代码语言:javascript
运行
复制
function tsCheck(){
    if (window.transcript == "Hi"){
        ai();
    }
}
function speak(a){
    var msg = new SpeechSynthesisUtterance(a);
    window.speechSynthesis.speak(msg);
}
function ai(){
    speak('How are you?');
    if (window.transcript == "good"){
        speak("cool");
    }

}

var SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
var recognition = new SpeechRecognition();
recognition.continuous = true;

recognition.onresult = function(event) {
    var current = event.resultIndex;
    window.transcript = event.results[current][0].transcript;
    console.log(window.transcript);
}

recognition.start();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-27 15:42:57

忘记在tsCheck()回调中调用recognition.onresult函数。

代码语言:javascript
运行
复制
recognition.onresult = function(event) {
    var current = event.resultIndex;
    window.transcript = event.results[current][0].transcript;
    tsCheck(); //ADD THIS
    console.log(window.transcript);
}

编辑:在tsCheck方法中,需要将结果与小写字符串进行比较(注意"Hi“而不是"hi”)。

代码语言:javascript
运行
复制
function tsCheck(){
    if (window.transcript == "hi"){
        ai();
    }
}

编辑2:为了保持对输入的响应,我向ai()函数添加了一个参数。然而,这并不是真正的实际用途,因为它没有跟踪对话的上下文。

代码语言:javascript
运行
复制
function ai(string){
    speak(string);
}
function tsCheck(){
    if (/hi/i.test(window.transcript)){
        ai("How are you");
    }

    if (/good/i.test(window.transcript)){
        ai("Cool");
    }
}

还使用regex测试字符串,因为它有时在单词前后有空格。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53503080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档