📜  如何使用 JavaScript 将语音转换为文本?

📅  最后修改于: 2021-11-09 08:57:04             🧑  作者: Mango

在本文中,我们将学习使用 HTML 和 JavaScript 将语音转换为文本。

方法:我们添加了一个内容可编辑的“div”,通过它我们可以编辑任何 HTML 元素。

HTML

    


Javascript
window.SpeechRecognition=window.SpeechRecognition 
    || window.webkitSpeechRecognition;


Javascript
recognition.interimResults = true;


Javascript
const words=document.querySelector('.words');
words.appendChild(p);


Javascript
recognition.addEventListener('result', e => {
    const transcript = Array.from(e.results)
        .map(result => result[0])
        .map(result => result.transcript)
        .join('')
  
    document.getElementById("p").innerHTML = transcript;
    console.log(transcript);
});


HTML


  

    
    
  
    Speech to Text

  

    
        

    
          


我们使用SpeechRecognition对象将语音转换为文本,然后将文本显示在屏幕上。

我们还添加了WebKit Speech Recognition以在 Google chrome 和 Apple Safari 中执行语音识别。

Javascript

window.SpeechRecognition=window.SpeechRecognition 
    || window.webkitSpeechRecognition;

InterimResults 结果应返回true ,此值的默认值为false。所以设置intermediateResults= true

Javascript

recognition.interimResults = true;

使用appendChild()方法将节点附加为节点的最后一个子节点。

Javascript

const words=document.querySelector('.words');
words.appendChild(p);

添加eventListener,在这个事件监听器中, map()方法用于创建一个新的数组,每个数组元素调用一个函数的结果。

注意:此方法不会更改原始数组。

使用join()方法将数组作为字符串返回。

Javascript

recognition.addEventListener('result', e => {
    const transcript = Array.from(e.results)
        .map(result => result[0])
        .map(result => result.transcript)
        .join('')
  
    document.getElementById("p").innerHTML = transcript;
    console.log(transcript);
});

最终代码:

HTML



  

    
    
  
    Speech to Text

  

    
        

    
          

输出:

如果用户在运行文件后告诉“Hello World”,它会在屏幕上显示以下内容。

Hello World