gpt4 book ai didi

javascript - 网络语音 API "Detecting known words"

转载 作者:行者123 更新时间:2023-12-05 03:10:55 25 4
gpt4 key购买 nike

我正在开发一款可以检测某些关键词的应用程序。我一直在使用googles web speech。

我可以录制用户的声音并将其打印出来,但我希望能够检测到某些词。

我似乎找不到这样做的方法。我发现了这个问题 Detecting known words using the Web Speech API但是它链接到的答案中的网站已经消失了。

任何人都可以阐明这一点吗?任何帮助都会很棒。干杯! here is a fiddle

  var recognition = new webkitSpeechRecognition(); // google voice recognition start

recognition.continuous = true; //so that recognition will continue even if the user pauses while speaking


document.getElementById('startSpeech').addEventListener('click', function() {
startSpeech();
});
document.getElementById('stopRecognizing').addEventListener('click', function() {
stopRecognizing();
});


var startSpeech = function(){

var lang = ['en-GB', 'United Kingdom'];
final_transcript = '';
recognition.lang = recognition.lang
recognition.start() //activates the speech recognizer
}

var stopRecognizing = function(){
recognition.stop();//stops the mic from listening
return;
}


recognition.onresult = function(event) {
console.log('event', event);
// This handler concatenates all
// the results received so far into two strings final_transcript & interim_transcript

var interim_transcript = '';

for (var i = event.resultIndex; i < event.results.length; ++i) {
if (event.results[i].isFinal) {
final_transcript += event.results[i][0].transcript;
} else {
interim_transcript += event.results[i][0].transcript;
}
}
//final_transcript = capitalize(final_transcript);
final_span.innerHTML = linebreak(final_transcript);
interim_span.innerHTML = linebreak(interim_transcript);

// console.log('final_transcript' , typeof final_transcript);
// console.log('interim_transcript' , interim_transcript);

if (final_transcript.length > 0) {
matchingKeyWords(final_transcript);
}
};

function linebreak(s) {
var two_line = /\n\n/g;
var one_line = /\n/g;
return s.replace(two_line, '<p></p>').replace(one_line, '<br>');
}

function capitalize(s) {
var first_char = /\S/;
return s.replace(first_char, function(m) { return m.toUpperCase(); });
}


var matchingKeyWords = function(conversation){

var keyWords = ['power', 'tie', 'imaginary' ,'bomb', 'drink', 'underwear', 'chance', 'type', 'historical',
'society' ,'collect' ,'sugar']

for (var i = 0; i < keyWords.length; ++i) {
console.log(conversation[0]);
if (conversation === keyWords[1]) {
console.log('hit');
}
// console.log('keyWords[i]', keyWords[i]);
}
}

最佳答案

您绝对不能以任何方式修改 API 以附加字典或影响结果。

HOWEVER 您可以将结果归结为语音相似的词,从而影响代码的解释。

目前您似乎正在对某些词进行“精确”匹配。因此,如果引擎认为它听到的是“Thai”而不是“Tie”……那么结果将不会产生匹配。

解决方案是在匹配逻辑中添加“模糊性”。 您是否考虑过像FuzzySet.js 这样的图书馆? ?

您可以通过搜索“模糊字符串匹配 JS”或“语音相似 JS”之类的内容找到更多示例

关于javascript - 网络语音 API "Detecting known words",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38208060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com