結論
Chromeの起動時オプションに
--use-fake-ui-for-media-stream
を追加する。
が次の許可を求めています
を無視する。
permissionが常に許可されるので留意すること。
参考情報のほうにFirefox版の対処方法も書いているのでそちらも
(現状FirefoxでSpeechRecognition
はできないけれどカメラや普通の音声入出力には使えるはず)
症状
HTTPサーバーに公開していた音声認識
var recognition = new SpeechRecognition();
// var recognition = new webkitSpeechRecognition();
recognition.start();
をするWebページがあった。
http上ではstart()
タイミングで一度だけマイクの使用許可を求められ、
以後何度recognition.start()
しても再度使用許可を求められることがなかった。
このHTMLをローカル上にダウンロードし、直接ファイルを開いた場合、
file:///C:/hogehoge
recognition.start()
するたびに使用の許可を求めるダイアログが表示されてしまった。
解決方法は結論のとおり、常に許可するオプションで最初の使用許可ダイアログすらスキップする方法を取った。
recognition.start()
した時点で問答無用で許可されるので、ローカルだが一応カメラとか発言に注意か。
おそらく自動テスト用のオプションに思えるが、用途に合っていたのでOK
試したけどだめだったもの
ローカルなら事前に
MediaDevices.getUserMedia()
などで許可を取っておかないとダメなのかな?と考えたが、特に関係なし。これも毎回許可を求められらた。
参考
- google chrome - always accept webRTC webcam request - Stack Overflow
- WebRTCアプリケーションのテストの課題・解決方法について
- WebRTCなコードをE2Eテストする - console.lealog();
SpeechRecognition
に固執していてよい情報が取得できなかった。
「マイク 許可」などであさっていたが、WebRTCというキーワードは自発的に出てこなかったので以後気をかけるとよさそう。
とりたくなかった方法