YottyPG
@YottyPG

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

JavaScriptで動くWebSpeechAPIについて

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

1Answer

Web Speech APIにまったく詳しくないですが、
上記URLにサイトに、下記のような記載がありました。

  • Siriまたは音声入力を有効にする必要あり
  • SafariViewControllerや、ホーム画面に追加されたWebアプリでは使用不可

何かの参考になれば、幸いです。

2Like

Comments

  1. @YottyPG

    Questioner

    >Siriまたは音声入力を有効にする必要あり
    ありがとうございます!iPhoneの設定からSiriを有効にすると音声認識できました!

    そのサイトも一度確認してiOSのSafariでも使えるはずなのになーと思っていたのですが、その一文見落としてました。
    大変助かりました。

Your answer might help someone💌