JavaScript Web Speech API:我怎么需要这个值?
JavaScript Web Speech API: How can I need the value?
我目前正在学习语音识别(JavaScript)。
我想和JavaScript做个助手。我的问题是我所说的一切我都无法使用。我希望它在我说 Hello 时启动函数 ai()。
我的代码:
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();
您忘记在 recognition.onresult
回调中调用 tsCheck()
函数。
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"。
function tsCheck(){
if (window.transcript == "hi"){
ai();
}
}
编辑 2:为了继续响应输入,我向 ai()
函数添加了一个参数。但是,这没有任何实际用途,因为它不会跟踪对话的上下文。
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");
}
}
还使用正则表达式来测试字符串,因为它有时会在单词前后有空格。
我目前正在学习语音识别(JavaScript)。
我想和JavaScript做个助手。我的问题是我所说的一切我都无法使用。我希望它在我说 Hello 时启动函数 ai()。
我的代码:
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();
您忘记在 recognition.onresult
回调中调用 tsCheck()
函数。
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"。
function tsCheck(){
if (window.transcript == "hi"){
ai();
}
}
编辑 2:为了继续响应输入,我向 ai()
函数添加了一个参数。但是,这没有任何实际用途,因为它不会跟踪对话的上下文。
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");
}
}
还使用正则表达式来测试字符串,因为它有时会在单词前后有空格。