Web Speech API開發(fā)者指南:它是什么以及如何工作
譯文?譯者 | 李睿
審校 | 孫淑娟
Web Speech API是一種Web技術(shù),允許用戶將語音數(shù)據(jù)合并到應(yīng)用程序中。它可以通過瀏覽器將語音轉(zhuǎn)換為文本,反之亦然。
Web Speech API于2012年由W3C社區(qū)引入。而在十年之后,這個API仍在開發(fā)中,這是因為瀏覽器兼容性有限。
該API既支持短時輸入片段,例如一個口頭命令,也支持長時連續(xù)的輸入。廣泛的聽寫能力使它非常適合與Applause應(yīng)用程序集成,而簡短的輸入很適合語言翻譯。
語音識別對可訪問性產(chǎn)生了巨大的影響。殘疾用戶可以使用語音更輕松地瀏覽網(wǎng)絡(luò)。因此,這個API可能成為使網(wǎng)絡(luò)更友好、更高效的關(guān)鍵。
文本到語音和語音到文本的功能由兩個界面處理:語音合成和語音識別。
一、語音識別
在語音識別界面中,用戶對著麥克風(fēng)說話,然后語音識別服務(wù)就會根據(jù)它自己的語法來檢查他所說的話。
API通過首先請求允許通過麥克風(fēng)訪問用戶的語音來保護他的隱私。如果使用API的頁面使用HTTPS協(xié)議,則只請求一次權(quán)限。否則,API將在每個實例中詢問。
用戶的設(shè)備可能已經(jīng)包含了語音識別系統(tǒng),例如iOS或Android語音的Siri。使用語音識別界面時,將會使用默認系統(tǒng)。在語音被識別之后,它將被轉(zhuǎn)換并作為文本字符串返回。
在“one-shot”語音識別中,只要用戶停止說話,識別就會結(jié)束。這對于簡短的命令很有用,例如如在網(wǎng)頁上搜索應(yīng)用程序測試網(wǎng)站或者打電話。在“continuous”識別中,用戶必須使用“停止”按鈕人工結(jié)束識別。
目前,Web Speech API的語音識別只得到了兩種瀏覽器正式支持:Chrome for Desktop和Android。Chrome需要使用前綴界面。
然而,Web Speech API仍處于實驗階段,規(guī)范可能會發(fā)生變化??梢酝ㄟ^搜索webkitSpeechRecognition對象來檢查當(dāng)前瀏覽器是否支持該API。
二、語音識別屬性
以下學(xué)習(xí)一個新函數(shù):語音識別()。
現(xiàn)在檢查一下某些事件的回調(diào):
(1)onStart:當(dāng)語音識別器開始收聽和識別語音時,會觸發(fā)onStart。可以顯示消息以通知用戶的設(shè)備正在收聽。
(2)onEnd:onEnd生成一個事件,每次用戶結(jié)束語音識別時都會觸發(fā)該事件。
(3)onError:每當(dāng)發(fā)生語音識別錯誤時,都會使用SpeechRecognitionError界面觸發(fā)此事件。
(4)onResult:當(dāng)語音識別對象獲得結(jié)果時,觸發(fā)此事件。它返回臨時結(jié)果和最終結(jié)果。onResult必須使用SpeechRecognitionEvent界面。
SpeechRecognitionEvent對象包含以下數(shù)據(jù):
(1)results[i]:語音識別結(jié)果對象的數(shù)組,每個元素代表一個已識別的單詞。
(2)resultindex:當(dāng)前識別索引。
(3)results[i][j]:識別單詞的第j個替代詞;第一個出現(xiàn)的單詞是最可能出現(xiàn)的單詞。
(4)results[i].isFinal:一個布爾值,顯示結(jié)果是臨時的還是最終的。
(5)results[i][j].transcript:單詞的文本表示。
(6)results[i][j].confidence:結(jié)果正確的概率(取值范圍從0到1) 。
那么,應(yīng)該在語音識別對象上配置什么屬性?以下來看看。
(1)Continuous vs One-Shot
用戶確定是否需要語音識別對象在關(guān)閉之前一直聽他說話,或者是否只需要它來識別一個簡短的短語。其默認設(shè)置為“false”。
假設(shè)正在使用該技術(shù)做筆記,以便與庫存跟蹤模板集成。需要能夠長時間說話,并有足夠的時間暫停,而不需要將應(yīng)用程序送回睡眠狀態(tài)??梢詫ontinuous設(shè)置為true,如下所示:
(2)語言

希望對象識別什么語言?如果瀏覽器默認設(shè)置為英文,它將自動選擇英文。但是,也可以使用地區(qū)代碼。
此外,可以允許用戶從菜單中選擇語言:
(3)中期結(jié)果
中期結(jié)果是指尚未完成或最終的結(jié)果。通過將此屬性設(shè)置為true,可以使對象將臨時結(jié)果顯示為對用戶的反饋:
(4)啟動和停止
如果已經(jīng)將語音識別對象配置為“continuous”, 則需要設(shè)置開始和停止按鈕的onClick屬性,如下所示:
JavaScript
這將允許用戶控制使用的瀏覽器何時開始“監(jiān)聽”,何時停止。
因此,在深入了解了語音識別界面、方法和屬性之后?,F(xiàn)在探索Web Speech API的另一面。
三、語音合成
語音合成也被稱為文本到語音(TTS)。語音合成是指從應(yīng)用程序中獲取文本,將其轉(zhuǎn)換成語音,然后從設(shè)備的揚聲器中播放。
可以使用語音合成做任何事情,從駕駛指南到為在線課程朗讀課堂筆記,再到視覺障礙用戶的屏幕閱讀。
在瀏覽器支持方面,從Gecko42+版本開始,Web Speech API的語音合成可以在Firefox桌面和移動端使用。但是,必須首先啟用權(quán)限。Firefox OS2.5+默認支持語音合成;不需要權(quán)限。Chrome和Android 33+也支持語音合成。
那么,如何讓瀏覽器說話呢?語音合成的主要控制器界面是SpeechSynthesis,但需要一些相關(guān)的界面,例如用于輸出的聲音。大多數(shù)操作系統(tǒng)都有默認的語音合成系統(tǒng)。
簡單地說,用戶需要首先創(chuàng)建一個SpeechSynthesisUtterance界面的實例。其界面包含服務(wù)將讀取的文本,以及語言、音量、音高和速率等信息。指定這些之后,將實例放入一個隊列中,該隊列告訴瀏覽器應(yīng)該說什么以及什么時候說。
將需要說話的文本指定給其“文本”屬性,如下所示:
除非使用.lang屬性另有指定,否則語言將默認為應(yīng)用程序或瀏覽器的語言。
在網(wǎng)站加載后,語音更改事件可以被觸發(fā)。要改變?yōu)g覽器的默認語音,可以使用語音合成中的getvoices()方法。這將顯示所有可用的語音。
聲音的種類取決于操作系統(tǒng)。谷歌和MacOSx一樣有自己的默認聲音集。最后,用戶使用Array.find()方法選擇喜歡的聲音。
根據(jù)需要定制SpeechSynthesisUtterance??梢詥印⑼V购蜁和j犃?,或更改通話速度(“速率”)。
四、Web Speech API的優(yōu)點和缺點
什么時候應(yīng)該使用Web Speech API?這種技術(shù)使用起來很有趣,但仍在發(fā)展中。盡管如此,還是有很多潛在的用例。集成API可以幫助實現(xiàn)IT基礎(chǔ)設(shè)施的現(xiàn)代化,而用戶可以了解Web Speech API哪些方面已經(jīng)成熟可以改進。
1.提高生產(chǎn)力
對著麥克風(fēng)說話比打字更快捷、更有效。在當(dāng)今快節(jié)奏的工作生活中,人們可能需要能夠在旅途中訪問網(wǎng)頁。
它還可以很好地減少管理工作量。語音到文本技術(shù)的改進有可能顯著減少數(shù)據(jù)輸入任務(wù)的時間。語音到文本技術(shù)可以集成到音頻視頻會議中,以加快會議的記錄速度。
2.可訪問性
如上所述,語音到文本(STT)和文本語音(TTS)對于有殘疾或支持需求的用戶來說都是很好的工具。此外,由于任何原因而在寫作或拼寫方面有困難的用戶可以通過語音識別更好地表達自己。
這樣,語音識別技術(shù)就可以成為互聯(lián)網(wǎng)上一個很好的均衡器。鼓勵在辦公室使用這些工具也能促進工作場所的可訪問性。
3.翻譯
Web Speech API可以成為一種強大的語言翻譯工具,因為它同時支持語音到文本(STT)和文本語音(TTS)。目前,并不是每一種語言都可用。這是Web Speech API尚未充分發(fā)揮其潛力的一個領(lǐng)域。
4.離線功能
一個缺點是API必須要有互聯(lián)網(wǎng)連接才能正常工作。此時,瀏覽器將輸入發(fā)送到它的服務(wù)器,然后服務(wù)器返回結(jié)果。這限制了Web Speech API可以使用的環(huán)境。
5.精確度
在提高語音識別器的準(zhǔn)確性方面已經(jīng)取得了令人難以置信的進展。用戶可能偶爾還會遇到一些困難,例如技術(shù)術(shù)語和其他專業(yè)詞匯或者方言。然而,到2022年,語音識別軟件的精確度已經(jīng)達到了人類的水平。
五、結(jié)語
雖然Web Speech API還處于實驗階段,但它可以成為網(wǎng)站或應(yīng)用程序的一個驚人的補充。從科技公司到市場營銷商,所有的工作場所都可以使用這個API來提高效率。只需幾行簡單的JavaScript代碼,就可以打開一個全新的可訪問性世界。
語音識別可以使用戶更容易更有效地瀏覽網(wǎng)頁,人們期待看到這項技術(shù)快速成長和發(fā)展!
原文鏈接:https://dzone.com/articles/the-developers-guide-to-web-speech-api-what-is-it






























