Google Chrome擴展程序支持Chrome的Web Speech語音識別API嗎?我已經包含了一些javascript來創建語音識別對象,但是當我啓動我的擴展時,我不會提示輸入麥克風。Chrome擴展是否支持WebSpeech API?
這不是我的代碼問題。我在谷歌搜索,但我無法找到關於Chrome擴展是否支持Web Speech API的任何信息。我只想要一個是/否的答案。
注意:我相信WebSpeech API不適用於本地文件。
Google Chrome擴展程序支持Chrome的Web Speech語音識別API嗎?我已經包含了一些javascript來創建語音識別對象,但是當我啓動我的擴展時,我不會提示輸入麥克風。Chrome擴展是否支持WebSpeech API?
這不是我的代碼問題。我在谷歌搜索,但我無法找到關於Chrome擴展是否支持Web Speech API的任何信息。我只想要一個是/否的答案。
注意:我相信WebSpeech API不適用於本地文件。
更新:基於RobW's answer,這個答案現在已經過時了,和Web語音API現在是擴展的內部使用。 (不幸的是,我不能,除非OP未接受它刪除這個答案。)
答案是尚未。通過chrome-extension:
網址訪問的網頁無法訪問任何媒體輸入API,包括speechRecognition
和getUserMedia
。任何使用API的嘗試都會立即觸發錯誤回調。
我本來以爲speechRecognition
可以工作像geolocation
API:擴展彈出窗口不能提示地理位置許可,但加載完整的瀏覽器頁面chrome-extension:
頁可以提示權限就像一個正常的頁面。但是,媒體API不會以這種方式運行;無論頁面是彈出式還是整頁,它們都會失敗。
有一個bug report to fix this並允許開發人員在清單中指定媒體訪問權限。當這個錯誤得到解決後,擴展可以擁有一個清單設置權限,授予他們自動麥克風/視頻訪問權限,所以無法提示權限將成爲一個無問題(因此具有適當清單權限的擴展將能夠自由使用Speech API)。
的Web Speech API可以已經被Chrome擴展可以使用,甚至在後臺頁面和延伸按鈕彈出。它的工作原理並不一定是預期的功能,我之前已經解釋了它是如何工作的以及爲什麼它在this answer到How to use webrtc insde google chrome extension?中工作。前面的解釋是關於WebRTC,但它同樣適用於Web Speech,並且可以如下使用:
webkitSpeechRecognition
實例並開始記錄。event.error === 'not-allowed'
觸發onerror
),請打開擴展頁面(chrome-extension://[ID]/yourpage.html
)。此擴展頁面可以在新窗口,選項卡或iframe中打開。從此頁面請求訪問麥克風。 getUserMedia和SpeechRecognition都共享(持續)音頻權限,因此爲了檢測是否允許錄音,您可以使用getUserMedia
請求權限而不激活語音識別。例如:
navigator.webkitGetUserMedia({
audio: true,
}, function(stream) {
stream.stop();
// Now you know that you have audio permission. Do whatever you want...
}, function() {
// Aw. No permission (or no microphone available).
});
感謝您的答覆,但我對Chrome的本機Web Speech API的信息看具體。如果我沒有得到任何其他答覆,那麼我會接受你的! –
@MichaelZhao您能否澄清我的答案可以更加具體地討論Chrome的語音API?這正是我的回答所談論的(即[webkitSpeechRecognition' API](http://updates.html5rocks.com/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech- API);規範[here](https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html))。您希望我解決API的其他方面嗎?或者我錯誤地理解了你的API是什麼意思? – apsillers
我的印象是bug報告引用了另一個JS語音API。儘管如此,這非常有幫助。 –