如何使用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瀏覽器支援。