Web Speech API(1)—— SpeechRecognition

Web Speech API 使你能夠將語音數據合并到 Web 應用程序中。Web Speech API 有兩個部分:SpeechSynthesis 語音合成(文本到語音 TTS)和 SpeechRecognition 語音識別(異步語音識別)。

SpeechRecognition

  • 語音識別通過 SpeechRecognition (en-US) 接口進行訪問,它提供了識別從音頻輸入(通常是設備默認的語音識別服務)中識別語音情景的能力。一般來說,你將使用該接口的構造函數來構造一個新的 SpeechRecognition (en-US) 對象,該對象包含了一系列有效的對象處理函數來檢測識別設備麥克風中的語音輸入。

  • SpeechGrammar 接口則表示了你應用中想要識別的特定文法。文法則通過 JSpeech Grammar Format (JSGF.) 來定義。

語音識別api

SpeechRecognition (en-US)

語音識別服務的控制器接口;它也處理由語音識別服務發來的 SpeechRecognitionEvent (en-US) 事件。

  • 創建SpeechRecognition的新實例

var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition
// 語音識別
var recognition = new SpeechRecognition()
  • 設置是持續聽還是聽到聲音之后就關閉接收。

recognition.continuous = true;
  • 設置是否允許臨時結果,臨時結果是識別的中間過程,這時候返回結果的isFinal = false。

recognition.interimResults = true;
  • 設置語言

recognition.lang = 'cmn-Hans-CN'; //普通話 (中國大陸)
  • 控制語音識別的開啟和停止,可使用start()和stop()方法,分別對應onstart、onend事件

//  開始語音識別監聽,開始接收和處理語音輸入
recognition.start();
//  停止語音識別監聽,不再接收和處理語音輸入
recognition.stop();
//  將當前的語音識別操作中止,并且不觸發任何結果事件
recognition.abort();
  • 對識別到的結果進行處理,可以使用一些事件方法,比方說onresult:

recognition.onresult = function(event) { console.log(event);// event返回結果格式/*{results: {0: {0: {confidence: 0.695017397403717,transcript: "你好,世界"},isFinal:true,length:1},length:1},}*/
}
  • 錯誤處理

recognition.onerror = function(event) { console.log(event);
}

以下是SpeechRecognition對象的一些常見事件說明:

??audioend:當音頻輸入結束時觸發,表示不再接收音頻數據。

audiostart:在開始處理音頻數據之前觸發,表示開始接收音頻輸入。

end:當SpeechRecognition實例停止監聽后觸發。

error:在處理期間發生錯誤時觸發。

nomatch:在沒有找到匹配的語音輸入時觸發。

result:在獲取到語音輸入結果時觸發,可以通過event.results獲取識別結果。

soundend:在聲音輸入結束時觸發。

soundstart:在開始處理聲音輸入時觸發。

speechend:當語音輸入結束時觸發。

speechstart:在開始處理語音輸入時觸發。

start:當SpeechRecognition實例開始監聽時觸發。

SpeechRecognitionAlternative (en-US)

表示由語音識別服務識別出的一個詞匯。

recognition.onresult = function(event) {// SpeechRecognitionEventresults 屬性返回一個 SpeechRecognitiontionResultList 對象// SpeechRecognitionResultList 對象包含了多個 SpeechRecognitionResultResult 對象。// 它具有 getter,因此可以像數組一樣進行訪問// 第一個 [0] 返回位置 0 處的 SpeechRecognitionResult。// 每個 SpeechRecognitionResult 對象都包含具有單獨結果的 SpeechRecognitionAlternative 對象。// 它們也有 getter ,因此可以像數組一樣對其進行訪問。// 第二個 [0] 返回位置 0 處的 SpeechRecognitionAlternative。// 然后,我們返回 SpeechRecognitionAlternative 對象的 transcript 屬性var color = event.results[0][0].transcript;diagnostic.textContent = '收到結果:' + color + '。';bg.style.backgroundColor = color;
}

SpeechGrammar

我們將要交由語音識別服務進行識別的詞匯或者詞匯的模式。

var grammar ="#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;";
var recognition = new SpeechRecognition();
var speechRecognitionList = new SpeechGrammarList();
speechRecognitionList.addFromString(grammar, 1);
recognition.grammars = speechRecognitionList;

SpeechGrammarList (en-US)

表示一個由 SpeechGrammar 對象構成的列表。

SpeechRecognitionResult (en-US)

表示一次識別中的匹配項,其中可能包含多個 SpeechRecognitionAlternative (en-US) 對象。

SpeechRecognitionResultList (en-US)

表示包含 SpeechRecognitionResult (en-US) 對象的一個列表,如果是以 continuous (en-US) 模式捕獲的結果,則是單個對象。

安全性

http協議下瀏覽器每次都會提醒用戶去確認語音操作,然而https的頁面,沒有這樣一個麻煩的操作。

JavaScript上下文,整個頁面,都能過訪問到捕獲的音頻。

瀏覽器兼容性

實驗性: 這是一項實驗性技術 在將其用于生產之前,請仔細檢查瀏覽器兼容性表格

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14608.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14608.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14608.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

axios案例應用

1、Spring概述 Spring 是分層的 Java SE/EE 應用 full-stack 輕量級開源框架&#xff0c;以 IoC(Inverse Of Control: 反轉控制)和 AOP(Aspect Oriented Programming:面向切面編程)為內核&#xff0c;提供了展現層 Spring MVC 和持久層。Spring JDBC 以及業務層事務管理等眾多…

day16|二叉樹的屬性

相關題目 ● 104.二叉樹的最大深度 559.n叉樹的最大深度 ● 111.二叉樹的最小深度 ● 222.完全二叉樹的節點個數 二叉樹的深度與高度 如圖&#xff0c; 二叉樹的深度表示&#xff1a;任意一個葉子節點到根節點的距離&#xff0c;是從上往下計數的&#xff0c;因此使用前序遍歷…

2024年甘肅特崗教師招聘報名流程,速速查收哦!

2024年甘肅特崗教師招聘報名流程&#xff0c;速速查收哦&#xff01;

python-雞兔同籠問題:已知雞和兔的總頭數與總腳數。求籠中雞和兔各幾只?

【問題描述】典型的雞兔同籠問題。 【輸入形式】輸入總頭數和總腳數兩個實數&#xff1a;h&#xff0c;f 【輸出形式】籠中雞和兔的個數&#xff1a;x&#xff0c;y 【樣例輸入】16 40 【樣例輸出】雞12只&#xff0c;兔4只 【樣例說明】輸入輸出必須保證格式正確。…

AI大模型探索之路-訓練篇25:ChatGLM3微調實戰-基于LLaMA-Factory微調改造企業級知識庫

系列篇章&#x1f4a5; AI大模型探索之路-訓練篇1&#xff1a;大語言模型微調基礎認知 AI大模型探索之路-訓練篇2&#xff1a;大語言模型預訓練基礎認知 AI大模型探索之路-訓練篇3&#xff1a;大語言模型全景解讀 AI大模型探索之路-訓練篇4&#xff1a;大語言模型訓練數據集概…

CS西電高悅計網課設——校園網設計

校園網設計 一&#xff0c;需求分析 所有主機可以訪問外網 主機可以通過域名訪問Web服務器 為網絡配置靜態或者動態路由 圖書館主機通過DHCP自動獲取IP參數 為辦公樓劃分VLAN 為所有設備分配合適的IP地址和子網掩碼&#xff0c;IP地址的第二個字節使用學號的后兩位。 二…

ESP32 實現獲取天氣情況

按照小安派AiPi-Eyes天氣站思路&#xff0c;在ESP32 S3上實現獲取天氣情況。 一、在ESP32 S3實現 1、main.c 建立2個TASK void app_main(void) {//lvgl初始化xTaskCreate(guiTask, "guiTask", 1024 * 6, NULL, 5, NULL);//wifi初始化、socket、json處理taskcustom_…

ES6之數值的擴展

1. 數值的擴展 1.1. 二進制和八進制字面量表示:1.2. 數值判斷方法: 1.2.1. Number.isFinite() 檢查一個值是否為有限的數值。1.2.2. Number.isNaN() 更準確地檢測NaN值。1.2.3. 傳統的全局方法 isFinite() 和 isNaN() 的區別 1.3. 數值轉換方法:1.4. 整數檢查與精度: 1.4.1. Nu…

防火墻技術基礎篇:解析防火墻的網絡隔離機制

防火墻技術基礎篇&#xff1a;解析防火墻的網絡隔離機制 網絡安全在現代社會中扮演著重要的角色&#xff0c;保護網絡系統、用戶和數據免受未經授權的訪問、破壞和竊取。個人、企業和國家都需要加強網絡安全意識&#xff0c;采取有效措施保護自身的網絡安全。隨著網絡攻擊手段…

【QT八股文】系列之篇章2 | QT的信號與槽機制及通訊流程

【QT八股文】系列之篇章2 | QT的信號與槽機制及通訊流程 前言2. 信號與槽信號與槽機制介紹/本質/原理&#xff0c;什么是Qt信號與槽機制&#xff1f;如何在Qt中使用&#xff1f;信號與槽機制原理&#xff0c;解析流程Qt信號槽的調用流程信號與槽機制的優缺點信號與槽機制需要注…

深入分析 Android Activity (三)

深入分析 Android Activity (三) 1. Activity 的配置變化處理 當設備配置&#xff08;如屏幕方向、語言、屏幕大小等&#xff09;發生變化時&#xff0c;默認情況下&#xff0c;Android 會銷毀并重新創建當前的 Activity。這種行為確保了新配置能夠正確應用&#xff0c;但在某…

HTML5 性能優化和計算機硬件使用

目錄 啟用硬件加速圖像與媒體優化資源加載與緩存CSS與布局優化JavaScript性能優化瀏覽器兼容性與特性檢測啟用硬件加速 Canvas繪圖 <canvas> 元素支持硬件加速,可以顯著提升圖形繪制和動畫的性能。確保在支持的瀏覽器中啟用硬件加速,如使用translate3d(0, 0, 0) hack…

解鎖Android高效數據傳輸的秘鑰 - Parcelable剖析

作為Android開發者&#xff0c;我們經常需要在不同的組件(Activity、Service等)之間傳輸數據。這里的"傳輸"往往不僅僅是簡單的數據復制&#xff0c;還可能涉及跨進程的內存復制操作。當傳輸的數據量較大時&#xff0c;這種操作可能會帶來嚴重的性能問題。而Android系…

web自動化之PO模式

PO模式 1、為什么需要PO思想&#xff1f; 首先我們觀察和思考一下&#xff0c;目前我們寫的作業腳本的問題&#xff1a; 元素定位和操作動 作寫到一起了&#xff0c;這就就會用導致一個問題&#xff1a; UI的頁面元素比較容易變化的&#xff0c;所以元素定位和腳本操作寫到一…

如何將照片從 iPhone 傳輸到閃存驅動器【無質量損壞】

概括 人們喜歡用 iPhone 拍照&#xff0c;因為照片通常都很漂亮&#xff0c;這都要歸功于 iPhone 令人驚嘆的技術。但照片更新后會占用更多空間&#xff0c;并且您可能會開始收到沒有存儲空間的通知。因此&#xff0c;您可以將照片傳輸到 USB 驅動器&#xff0c;然后從 iPhone…

Spring Boot構建mvc項目

好的,以下是一個簡單的Java MVC(Model-View-Controller)項目示例,使用Spring Boot框架和MySQL數據庫。這個項目包括基本的CRUD操作。 項目結構 src/ └── main/├── java/│ └── com/│ └── example/│ └── demo/│ ├──…

springboot-阿里羚羊 服務端埋點

官方文檔 集成Java SDK 手動引入jar包「quickaplus-log-collector-java-sdk-1.0.1-SNAPSHOT.jar」 <dependency><groupId>com.alibaba.lingyang</groupId><artifactId>quickaplus-log-collector-java-sdk</artifactId><version>1.0.1&l…

應用案例 | 如何實時監測和管理冷鏈倉庫溫濕度?

一、項目背景 冷鏈倉庫溫濕度管理的重要性在于確保倉庫內產品的質量和安全。通過遵循相關法規和標準&#xff0c;滿足客戶對產品質量的需求&#xff0c;同時實施有效的溫濕度管理措施&#xff0c;可以降低成本并提高倉庫作業效率。該項目的實施旨在幫助客戶保證產品的新鮮度&a…

Java - AbstractQueuedSynchronizer

AQS簡介 AQS全稱AbstractQueuedSynchronizer&#xff0c;抽象隊列同步器&#xff0c;是一個實現同步組件的基礎框架。AQS使用一個int類型的成員變量state維護同步狀態&#xff0c;通過內置的同步隊列&#xff08;CLH鎖、FIFO&#xff09;完成線程的排隊工作&#xff0c;底層主…

echarts 散點圖修改散點圖中圖形形狀顏色大小

話不多說&#xff0c;直接上代碼 let option {color:[xxx, xxx, xxx, xxx], //直接設置color可修改圖形顏色title: {text: 散點圖圖形,},tooltip: {trigger: axis,axisPointer: {type: cross}},legend: {top: 2,right:2,itemWidth: 10,itemHeight: 10,textStyle:{fontSize:14}…