Closed8

Flutterで音声入力をして、入力された言葉を形態素解析する

ピン留めされたアイテム
いけぐまナトリウムいけぐまナトリウム

Flutterで音声入力or形態素解析しようとしている方への注意点

  • 音声入力に使うspeech_to_textはAndroidだと常時音声入力ONにはできない
    • 無言時間が数秒続くと音声入力が中断される
    • speech_to_textを使うなら、これの根本的解決策はない(2022年12月13日時点)
  • 形態素解析に使うmecab_dartは恐らく放置されているので使用は自己責任で。

このスクラップは「研究の実験でとりあえず動いたらいいわ」精神で作られています。
作りが雑な部分が多いですが、Flutterで常時音声入力、形態素解析をしている投稿が少なすぎたので、備忘録的に残していきます。

いけぐまナトリウムいけぐまナトリウム

mecab_dartの注意点

  • 恐らくメンテされてないので自己責任
  • mecabの形態素解析に必要な辞書はpub getで入手できないので自分で持ってくる
    • mecabのインストールに付いてくるが、上に挙げた方のプロジェクトにも入っているので、それを使ってもOK
いけぐまナトリウムいけぐまナトリウム

speech_to_textの注意点

  • Androidだと声を検知しなくなって一定時間経過すると自動的に音声認識が終わる

  • Androidだと音声入力開始・終了時の音をオフにする方法はない

    • 上二つはハード側の問題なので、根本的解決方法は見つかっていない
      詳しくはこちら
  • 「声を検知しなくなって一定時間経過すると自動的に音声認識が終わる」問題を強引に解決して、連続音声認識を実現するために音声認識がオフになると強引にオンにするプログラムを有志の方が作っているのでそれを使う
    https://github.com/csdcorp/speech_to_text/issues/253#issuecomment-904921987

音声認識開始・終了時の音がうるさい以外は問題なし。音も音量0にすれば問題なしで、研究の実験レベルだと使える。製品レベルで使うなら難しいかも

いけぐまナトリウムいけぐまナトリウム

null safetyに苦しめられている

いけぐまナトリウムいけぐまナトリウム
      //その単語がword_countに入っている時
      if (word_count.containsKey(tokens[i].surface)) {
        word_count[tokens[i].surface] = word_count[tokens[i].surface]! + 1;
      }

これで解決。++を使うインクリメントだと、どこに!を付けても警告解除されなかった

このスクラップは2023/08/15にクローズされました