首页 > 解决方案 > 说话后如何让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);
                
            }
        }

因此,一旦我按下按钮,即使我说完一个词后不需要它,麦克风也会继续录音。谁能帮我在代码中做什么?

标签: javascriptspeech-recognition

解决方案


推荐阅读