bragging-detector
bragging-detector copied to clipboard
音声認識の停止ボタンを追加する
停止ボタンについて、実装しようとしたが、以下のことで一旦中止。 識者いれば助けてください。
- Android対応(仕様?で自動停止する)の兼ね合いで、フラグを増やす必要がある。
- SpeechRecognition APIのendメソッドを実行しても停止されない(仕様っぽい)。
これ参考になりませんか
https://developer.mozilla.org/ja/docs/Web/API/SpeechRecognition/stop
Web Speech API の stop() メソッドは音声認識のサービスを停止し、 入ってくる音声を聞かなくします。 後、今まで認識した音声を SpeechRecognitionResult として返します。
二重で結果入る(今まで認識した音)から停止時のデータは破棄しないとダメなのかな
一応同じページを参考しながら実装していたですが、上のコメント2に書いた通りの作動にしかならないんですよね...
あとはこれですかね
https://teratail.com/questions/151938
もう一度やりたい時はSpeechRecognitionクラスを再生成してるっぽい?
それか、onresultにnull代入してテキストの更新防げないかな
二重で結果入力されることに関してはおそらくバグって、力技で防げる気がします。 ただ、いろんな人に読んでもらう予定だったので、力技は入れないことを優先しました。
一応公式には認識されていて、直すと公言されているので、これを待ちたいところです。(スレッド見ている限り、あまり希望はないですが)
音声認識じゃなくてテキスト更新の可否をフラグで管理とかだと微妙かな
認識してても追加されなければいいみたいな
もう一度やりたい時はSpeechRecognitionクラスを再生成してるっぽい?
これはおそらく上のコメントの1と同じ問題に当たります。同じような方法も試したのですが、Androidの場合、onend()に再起動に入れる必要があって、初期化するとその辺りで不都合が出てきた覚えがあります。 ただ、全く同じことを試したわけではないので、触ってみてもいいかもしれないです。
音声認識じゃなくてテキスト更新の可否をフラグで管理とかだと微妙かな
問題点ばっかりコメントしてしまってごめんなさい。 これに関しては、もしユーザーが同じ言葉を繰り返した場合、どう区別すべきかという問題を考える必要があります。簡単に区別できそうな方法が思いつかなかったので、更新フラグ使わないようにしていました。もし何かあればぜひ試してみて欲しいです。