如何使用JavaScript將語音轉換為文字?


概述

要將語音轉換為文字,我們通常使用Web Speech API的元件“SpeechRecognition”。SpeechRecognition元件識別音訊形式的語音,並將其轉換為文字。語音以陣列形式儲存在其中,然後顯示在瀏覽器螢幕上的HTML元素內。

語法

使用的基本語法為:

let recognization = new webkitSpeechRecognition();

我們也可以使用SpeechRecognition()代替webkitSpeechRecognition(),因為webkitSpeechRecognition()用於Chrome和Apple Safari瀏覽器中的語音識別。

演算法

  • 步驟1 - 建立如下所示的HTML頁面,使用<button>標籤建立一個HTML按鈕。在其內新增一個onclick事件,函式名為“runSpeechRecog()”。還在其中建立一個id為“action”的<p>標籤。

  • 步驟2 - 因為我們使用的是內部javascript,所以在script標籤內建立一個runSpeechRecog()箭頭函式。

  • 步驟3 - 使用文件物件模型(DOM)作為document.getElementById()來選擇HTML的“p”標籤。將其儲存在一個變數中。

  • 步驟4 - 建立webkitSpeechRecognition()建構函式的物件,並將其儲存在一個引用變數中。這樣,webkitSpeechRecognition()類的所有方法都將位於引用變數中。

let recognization = new webkitSpeechRecognition();
  • 步驟5 - 使用“recognition.onstart()”,此函式將在識別開始時返回操作。

recognization.onstart = () => {
   action.innerHTML = "Listening...";
}
  • 步驟6 - 現在使用recognition.onresult()在螢幕上顯示語音。

recognization.onresult = (e) => {
   var transcript = e.results[0][0].transcript;
   var confidence = e.results[0][0].confidence;
   output.innerHTML = transcript;
   output.classList.remove("hide")
   action.innerHTML = "";
}
  • 步驟7 - 使用recognition.start()方法啟動語音識別。

recognization.start();

示例

<html>
<head>
   <title>Speech to text</title>
</head>
   <body>
      <div class="speaker" style="display: flex;justify-content: space-between;width: 13rem;box-shadow: 0 0 13px #0000003d;border-radius: 5px;">
         <p id="action" style="color: grey;font-weight: 800; padding: 0; padding-left: 2rem;"></p>
         <button onclick="runSpeechRecog()" style="border: transparent;padding: 0 0.5rem;">
            Speech
         </button>
      </div>
      <h3 id="output" class="hide"></h3>
      <script>
         runSpeechRecog = () => {
            document.getElementById("output").innerHTML = "Loading text...";
            var output = document.getElementById('output');
            var action = document.getElementById('action');
            let recognization = new webkitSpeechRecognition();
            recognization.onstart = () => {
               action.innerHTML = "Listening...";
            }
            recognization.onresult = (e) => {
               var transcript = e.results[0][0].transcript;
               output.innerHTML = transcript;
               output.classList.remove("hide")
               action.innerHTML = "";
            }
            recognization.start();
         }
      </script>
   </body>
</html>

描述

當觸發“runSpeechRecog()”函式時,webkitSpeechRecognition()被初始化,其所有屬性都儲存在引用中,並顯示以下輸出,因為瀏覽器已準備好監聽使用者的語音。

當用戶停止說話時,結果以單詞陣列的形式儲存。然後,這些單詞作為句子的轉錄顯示在使用者瀏覽器螢幕上。例如,使用者在其瀏覽器上執行此語音到文字程式,按下語音按鈕並開始說話“tutorialpoint.com”,當用戶停止說話時,語音識別程式將停止,並將轉錄顯示在瀏覽器上為“tutorialpoint.com”。

結論

JavaScript的Web Speech API用於許多型別的應用程式。由於Web Speech API有兩個不同的元件,SpeechRecognition API用於語音到文字轉換,SpeechSynthesis API用於文字到語音轉換。上述SpeechRecognition受Chrome、Apple Safari、Opera瀏覽器支援。

更新於:2023年3月24日

16K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告