Javascript 附加两次的语音输出
我想使用本机浏览器语音转换api。但我得到了奇怪的结果。这是我的密码。它使用jquery和Javascript 附加两次的语音输出,javascript,html,speech-recognition,Javascript,Html,Speech Recognition,我想使用本机浏览器语音转换api。但我得到了奇怪的结果。这是我的密码。它使用jquery和 文件标题 var buffer=“”; 变量设置={ continuous:false,//永远不要停止,因为我有https连接 onResult:函数(文本){ //text=识别的文本 //console.log(文本); 缓冲区=文本; }, onStart:function(){ //log(“用户开始听写”); }, onEnd:function(){ //警报(“用户停止听写”); jQu
文件标题
var buffer=“”;
变量设置={
continuous:false,//永远不要停止,因为我有https连接
onResult:函数(文本){
//text=识别的文本
//console.log(文本);
缓冲区=文本;
},
onStart:function(){
//log(“用户开始听写”);
},
onEnd:function(){
//警报(“用户停止听写”);
jQuery(“#out”).append(“+buffer+”);
UserDictation.start();
}
};
var UserDictation=artyom.newDictation(设置);
函数startRecognition(){
//UserDictation.start();
}
函数stopRecognition(){
//UserDictation.stop();
}
UserDictation.start();
函数clearX(){
jQuery(“#out”).empty();
}
除非我尝试这个,它给出的结果看起来像是重复的作品/短语。就像我说computer
,它会给我computercomputer
。或者,如果我说预期价格是多少?
它会告诉我什么是什么是什么,什么是什么是预期价格,等等。
还有这一页
这似乎和我有同样的问题
但在另一个站点上也有一个相同js库的演示
这似乎很好地显示了结果
有人知道发生了什么事吗
谢谢附加缓冲区后,您可能需要清除缓冲区。我根本不会使用缓冲区,您可以直接将结果附加到onResult中。缓冲区设置为
=
,但没有附加+=
。我觉得奇怪的是,您正在调用UserDictation.start()代码>再次结束,我只是问自己,为什么这不会导致无限循环…这样,当用户停止说话时,我会得到最终文本,然后它再次开始听,以模拟连续听。如果不立即再次启动,第一次是否正常工作?
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title of the document</title>
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />
<script src="/js/jquery-3.2.1.min.js"></script>
<script src="/js/artyom.min.js"></script>
</head>
<body>
<input type="button" onclick="startRecognition();" value="Recognize text" />
<input type="button" onclick="stopRecognition();" value="stop recognition" />
<input type="button" onclick="clearX();" value="clear" />
<script>
var buffer = "";
var settings = {
continuous:false, // Don't stop never because i have https connection
onResult:function(text){
// text = the recognized text
//console.log(text);
buffer = text;
},
onStart:function(){
//console.log("Dictation started by the user");
},
onEnd:function() {
//alert("Dictation stopped by the user");
jQuery("#out").append("<div>" + buffer + "</div>");
UserDictation.start();
}
};
var UserDictation = artyom.newDictation(settings);
function startRecognition(){
//UserDictation.start();
}
function stopRecognition(){
//UserDictation.stop();
}
UserDictation.start();
function clearX() {
jQuery("#out").empty();
}
</script>
<div id="out"></div>
</body>
</html>