javascript - 说话后如何让javascript语音识别停止录制?
问题描述
大家好,我正在使用 javascript Speechrecognition 将语音转换为文本。当我单击按钮时,它会调用该函数在此处开始录制:
<button onClick={() => this.handleMic()}>Microphone</button>
这是功能handleMic();
handleMic = async () => {
console.log("function 1 is called");
var speech = true;
const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();
recognition.interimResults = true;
const words = document.querySelector('.words');
let p = document.createElement("p");
words.appendChild(p);
recognition.addEventListener('result', e => {
const transcript = Array.from(e.results)
.map(result => result[0])
.map(result => result.transcript)
.join('')
this.state.searchedValue = transcript.slice(0, -1);
document.getElementById("p").innerHTML = transcript;
console.log(transcript);
console.log(this.state.searchedValue);
this.handlePress();
});
if(speech == true){
recognition.start();
recognition.addEventListener('end', recognition.start);
}
}
因此,一旦我按下按钮,即使我说完一个词后不需要它,麦克风也会继续录音。谁能帮我在代码中做什么?
解决方案
推荐阅读
- raspberry-pi - 在 raspi 3 上安装 opencv 时出现 SSLError
- angular - 如何避免嵌套的 rxJS 订阅
- c# - Swagger/Swashbuckle - JSON 与 XML 模式不对应
- c - 如何在函数外释放 malloc() 使用的内存?
- sql - Azure SQL 密码在来自 keyvault 时不满足复杂性,但在来自变量时不满足
- php - Laravel 在另一个 Trait 中使用 Trait 方法
- python - 如何保存保存在字典字典中的多个数据框?
- android - 我是初学者,我打算开发自己的应用程序,但我不知道如何在移动设备和网络上使用 1 个数据库
- java - JavaFX:用于放置矩形的嵌套 for 循环不起作用
- python - 创建什么数据类型?