javascript - 为什么我的语音识别结果会被覆盖?
问题描述
我有一个记录用户语音并将其附加到 HTML 表单的网页。代码“工作”,但一旦语音识别停止然后重新启动,新的语音到文本数据将覆盖第一个框的数据。我希望将下一个重新启动的语音文本仅附加到第二个框,而不是第一个框,同时将第一个框的数据保留在那里。
JS:
<form class="texts" action="/care" id="careid" name="care" method="POST">
<input type="text" id="name" placeholder="what's your name?">
<input type="text" id="location" placeholder="Where are you?">
<input type="text" id="state" placeholder="how can I help?">
<input id="buttonInput" class="btn btn-success form-control" type="submit" value="Send">
</form>
</div>
</div>
</div>
</div>
<script>
window.SpeechRecognition =
window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();
recognition.interimResults = true;
let p = document.createElement('p');
recognition.addEventListener("result", (e) => {
const text = Array.from(e.results)
document.getElementById("name").value = event.results[0][0].transcript;
}
);
recognition.addEventListener("end", () => {
recognition.start();
recognition.addEventListener("result", (e) => {
const text = Array.from(e.results)
document.getElementById("location").value = event.results[0][0].transcript;
});
});
</script>
解决方案
如何为输入标签定义一个默认值变量,而不是直接向表单添加值,您可以将其分配给变量,然后在表单中获取其更新。
推荐阅读
- javascript - Datalist - 如何在点击选项上启动功能?
- python - 用数组索引 numpy 数组
- javascript - 即使在异步操作期间值发生变化,如何使用回调之前定义的值?
- r - 如何删除某些行上的某些列的值
- python - CSV Python输出:为列表中的每个项目输出一次而不是一次不匹配的字段
- pine-script - 检测图表上的最新信号
- c++ - 组合两个 QTransform 映射
- javascript - 在数字字段中写入时的 Javascript 事件
- excel - 用公式替换 G 列中的所有单元格
- javascript - is it possible to make an on(consolelog event? it would do something every time text is logged to console