目錄
一、什麼是Web Speech API?
二、如何實現語音識別?
三、如何實現語音合成?
四、實際應用中的小技巧
首頁 web前端 H5教程 H5網絡語音API:語音識別和綜合

H5網絡語音API:語音識別和綜合

Jul 20, 2025 am 02:22 AM
h5

Web Speech API 在現代網頁開發中用於實現語音識別與合成,其核心分為兩部分:SpeechRecognition 用於將語音轉文字,SpeechSynthesis 用於將文字轉語音。 1. 實現語音識別需創建SpeechRecognition 實例並設置參數如語言、是否連續識別,通過start() 啟動識別並監聽onresult 獲取結果,注意需用戶觸發且避免頻繁調用start();2. 實現語音合成則創建SpeechSynthesisUtterance 對象設置文本、語言、語速等後調用speak() 播放,可使用pause()、resume()、cancel() 控製播放隊列,獲取語音列表建議監聽onvoiceschanged 事件;3. 實際應用中需注意移動端自動停止問題可在onend 中重啟識別,識別延遲應減少start/stop 調用頻率,合成不發音應檢查靜音、權限及語音源設置,並關注瀏覽器兼容性問題提供降級方案。

H5 Web Speech API: Speech Recognition and Synthesis

語音識別和合成在現代網頁開發中正變得越來越重要,尤其是在移動設備普及的今天。 H5 中的Web Speech API 提供了原生支持,讓我們可以在網頁中輕鬆實現語音輸入和輸出功能。如果你想知道怎麼用它來“聽”用戶的語音,或者讓網頁“說話”,那這篇文章就直奔主題。

H5 Web Speech API: Speech Recognition and Synthesis

一、什麼是Web Speech API?

Web Speech API 是瀏覽器提供的一組接口,允許網頁通過JavaScript 調用設備的語音識別和語音合成功能。目前主要分為兩個部分:

  • SpeechRecognition(語音識別) :將用戶說的話轉成文字。
  • SpeechSynthesis(語音合成) :讓網頁把文字朗讀出來。

這個API 目前在Chrome 和Edge 等基於Chromium 的瀏覽器中支持較好,Safari 和Firefox 支持有限,使用時需要注意兼容性問題。

H5 Web Speech API: Speech Recognition and Synthesis

二、如何實現語音識別?

語音識別是Web Speech API 最常用的功能之一,比如用於語音搜索、語音輸入等場景。

要開始識別語音,首先需要創建一個SpeechRecognition實例:

H5 Web Speech API: Speech Recognition and Synthesis
 const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();

然後可以設置一些參數,比如是否連續識別、語言類型等:

 recognition.continuous = false; // 不連續識別,說一句停一句recognition.lang = 'zh-CN'; // 設置中文識別

接著就是啟動識別:

 recognition.start();

識別過程中會觸發多個事件,比如onresult表示識別結果返回了:

 recognition.onresult = function(event) {
    const transcript = event.results[0][0].transcript;
    console.log('你說的是:', transcript);
};

幾點注意事項:

  • 需要用戶主動觸發識別行為(如點擊按鈕),否則可能被瀏覽器阻止。
  • 多次調用start()前最好先調用abort()stop() ,避免出錯。
  • 在移動端測試更準確,因為麥克風質量通常更好。

三、如何實現語音合成?

語音合成適合用於語音助手、朗讀提示信息等場景。它的使用方式比識別更簡單。

首先創建一個SpeechSynthesisUtterance對象:

 const msg = new SpeechSynthesisUtterance();
msg.text = '你好,這是一條語音播報';
msg.lang = 'zh-CN';
msg.rate = 1; // 語速,默認是1
msg.pitch = 1; // 音調

然後調用speak()方法播放語音:

 window.speechSynthesis.speak(msg);

常見操作包括:

  • 播放隊列:連續調用speak()會排隊依次播放
  • 暫停/繼續:可以用pause()resume()
  • 取消所有播放:用cancel()

你還可以獲取系統支持的語音列表:

 const voices = window.speechSynthesis.getVoices();
console.log(voices);

但注意:有些瀏覽器加載語音列表是異步的,建議監聽onvoiceschanged事件後再獲取。

四、實際應用中的小技巧

  • 語音識別不能一直開著?
    是的,長時間運行可能會自動停止,特別是在移動端。可以考慮在onend事件裡重新調用start()來保持監聽狀態。

  • 語音識別有延遲怎麼辦?
    盡量在用戶明確意圖後再啟動識別,不要頻繁調用start/stop,減少瀏覽器負擔。

  • 語音合成不發音?
    檢查瀏覽器是否靜音、是否有權限,以及是否設置了正確的語言和語音源。

  • 不同瀏覽器表現不一致?
    當前Web Speech API 還不算完全標準化,建議做特徵檢測,並給出降級方案或提示。

基本上就這些內容。用好Web Speech API 能讓你的H5 頁面更有交互感,雖然不是特別複雜,但有些細節容易忽略,尤其是跨平台兼容方面。

以上是H5網絡語音API:語音識別和綜合的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Stock Market GPT

Stock Market GPT

人工智慧支援投資研究,做出更明智的決策

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

h5是指什麼 h5是指什麼 Aug 02, 2023 pm 01:52 PM

H5是指HTML5,是HTML的最新版本,H5是一個功能強大的標記語言,為開發者提供了更多的選擇和創造空間,它的出現推動了Web技術的發展,使得網頁的交互和效果更加出色,隨著H5技術的逐漸成熟和普及,相信它將在互聯網的世界中發揮越來越重要的作用。

如何區分H5,WEB前端,大前端,WEB全端? 如何區分H5,WEB前端,大前端,WEB全端? Aug 03, 2022 pm 04:00 PM

本文帶你快速區分H5、WEB前端、大前端、WEB全棧,希望對需要的朋友有幫助!

H5指的是什麼?探索上下文 H5指的是什麼?探索上下文 Apr 12, 2025 am 12:03 AM

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5:網絡標準和技術的發展 H5:網絡標準和技術的發展 Apr 15, 2025 am 12:12 AM

Web标准和技术从HTML4、CSS2和简单的JavaScript演变至今,经历了显著的发展。1)HTML5引入了Canvas、WebStorage等API,增强了Web应用的复杂性和互动性。2)CSS3增加了动画和过渡功能,使页面效果更加丰富。3)JavaScript通过Node.js和ES6的现代化语法,如箭头函数和类,提升了开发效率和代码可读性,这些变化推动了Web应用的性能优化和最佳实践的发展。

H5:如何增強網絡上的用戶體驗 H5:如何增強網絡上的用戶體驗 Apr 19, 2025 am 12:08 AM

H5通過多媒體支持、離線存儲和性能優化提升網頁用戶體驗。 1)多媒體支持:H5的和元素簡化開發,提升用戶體驗。 2)離線存儲:WebStorage和IndexedDB允許離線使用,提升體驗。 3)性能優化:WebWorkers和元素優化性能,減少帶寬消耗。

H5代碼:可訪問性和語義HTML H5代碼:可訪問性和語義HTML Apr 09, 2025 am 12:05 AM

H5通過語義化元素和ARIA屬性提升網頁的可訪問性和SEO效果。 1.使用、、等元素組織內容結構,提高SEO。 2.ARIA屬性如aria-label增強可訪問性,輔助技術用戶可順利使用網頁。

h5怎麼實現web端向上滑動載入下一頁 h5怎麼實現web端向上滑動載入下一頁 Mar 11, 2024 am 10:26 AM

實現步驟:1、監聽頁面的滾動事件;2、判斷捲動至頁面底部;3、載入下一頁資料;4、更新頁面捲動位置即可。

h5如何使用position h5如何使用position Dec 26, 2023 pm 01:39 PM

在H5中使用position屬性可以透過CSS控制元素的定位方式:1、相對定位relative,語法為「style="position: relative;」;2、絕對定位absolute,語法為「style="position: absolute; 」;3、固定定位fixed,語法為「style="position: fixed;」等等。

See all articles