JavaScriptで動くWebSpeechAPIについて
Q&A
Closed
WebSpeechAPIを利用して、ある言葉が発せられたら処理をするというようなWebアプリを開発しています。
以下のような記述をしたところ、iPhone12miniのSafariではマイクがオンにならずにうまく動作しませんでした。iPhone12miniでも正しく動作させる方法はありますでしょうか?
WindowsパソコンのChrome、iPad(第6世代)のSafari、iPhone8のSafari、あるandroid端末のChromeで正しく動くことは確認できました。
iPhone8とiPhone12miniのiOSのバージョンは同じ14.6でした。
コードは以下の通りです。
function rec() {
var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition
var recognition = new SpeechRecognition();
recognition.lang = 'ja-JP';
recognition.continuous = true;
recognition.interimResults = true;
recognition.start();
recognition.onresult = function (event) {
for (const res of event.results) {
var str = res[0].transcript;
if (str.indexOf('特定の文字列') != -1) {
//処理
}
}
}
};
■試したこと
以下の記述をすることで、iPhone12miniでもマイクをオンにすることはできました。
ただ、そこからWebSpeechAPIの音声認識へリンクさせる方法はわかりませんでした。
navigator.mediaDevices.getUserMedia({
audio: true,
video: false
}).then(_handleSuccess).catch(_handleError);
function _handleSuccess(stream) {
alert("ok!");
}
function _handleError() {
alert("Error!");
}
iPhnoe12miniにChromeをインストールし、「chrome://inspect」でjavascriptのコンソールログも確認してみましたが、特にエラーなど吐いていませんでした。
0