最新文章
【技術開發(fā)】原生JS實現(xiàn)語音識別
一、語音識別技術簡介
在當今數(shù)字化時代,語音識別技術正發(fā)揮著越來越重要的作用。它允許我們通過語音與設備進行交互,極大地提高了操作的便利性和效率。原生 JavaScript 為我們提供了一種在網(wǎng)頁中實現(xiàn)語音識別的方法,無需依賴第三方庫,讓我們能夠更加靈活地控制和定制語音識別功能。
二、代碼詳解
var recognitionResult = ''
if ('webkitSpeechRecognition' in window) {
// 創(chuàng)建一個webkitSpeechRecognition實例
const recognition = new window.webkitSpeechRecognition();
recognition.lang = 'zh-CN';
recognition.start();
recognition.continuous = true;
// 給大屏起個稱呼,可以是一個,也可以多個
const keywords = ['小王', '小黑'];
// 監(jiān)聽語音,有小王或者小黑開頭,就會記錄下來
recognition.addEventListener('result', event => {
console.log(event)
console.log('識別結果...')
let num = event.results.length
num = num - 1
const transcript = event.results[num][0].transcript.trim().toLowerCase();
if (keywords.some(keyword => transcript.includes(keyword))) {
alert('識別到關鍵詞')
recognitionResult = transcript;
document.body.innerText = recognitionResult;
}
});
//只要開始講話了,就會觸發(fā)onsoundstart和onspeechstart事件
recognition.onsoundstart = (e) => {
// recognition.start();
console.log(e);
}
recognition.onspeechstart = (e) => {
// recognition.start();
// console.log(e);
}
// onspeechend事件應該是監(jiān)測到執(zhí)行了stop方法時觸發(fā)的。而如果一段時間沒有錄入信息,則會自動執(zhí)行stop方法停止錄音,同樣也會觸發(fā)onspeechend事件
recognition.onspeechend = (e) => {
recognition.stop();
console.log('onspeechend...');
}
// onend結束時候觸發(fā)開始,保持一直在監(jiān)聽
recognition.onend = function () {
recognition.start();
}
}
三、應用場景和拓展
這種原生 JavaScript 實現(xiàn)的語音識別可以應用于多種場景,例如:
智能語音助手:在網(wǎng)頁上創(chuàng)建一個簡單的語音助手,用戶可以通過特定的關鍵詞喚醒助手,并進行交互。
語音輸入表單:代替?zhèn)鹘y(tǒng)的鍵盤輸入,提高輸入效率,特別是對于行動不便或需要快速輸入的用戶。
語音控制網(wǎng)頁游戲:讓用戶通過語音指令來控制游戲角色的動作,增加游戲的趣味性和互動性。
此外,還可以進一步拓展這個功能,比如:
增加更多的關鍵詞和復雜的邏輯判斷,以滿足不同的應用需求。
結合語音合成技術,實現(xiàn)語音交互的雙向通信,讓網(wǎng)頁能夠回答用戶的問題。
優(yōu)化性能,減少資源占用,提高語音識別的準確性和響應速度。
通過以上的科普學習內容,希望你能夠更好地理解和掌握使用原生 JavaScript 實現(xiàn)語音識別的方法,為你的網(wǎng)頁開發(fā)帶來更多的創(chuàng)新和可能性。