Flutter 音声認識

音声認識パッケージの利用

Flutterアプリの音声認識を実装していきます。Flutterは、様々な機能がパッケージの形で利用可能になっています。従って、実装すると言っても、提供されているパッケージを組み込むだけです。

パッケージの検索

パッケージは、以下のサイトから探します。

音声認識は「Speech to Text」なので、このワードで検索をしてみます。

speech to text検索結果

いくつか候補が表示されましたが、今回は、一番上の「speech_to_text」を選択します。

パッケージのインストール

それでは、パッケージをインストールします。パッケージのインストールは "flutter pub add <パッケージ名> " です。ターミナルから以下のコマンドを実行します。

flutter pub add speech_to_text

インストールされると、 pubspec.yaml ファイルに以下の記述が追加されます。

  speech_to_text: ^5.5.0

コードでimport文を挿入することで音声認識が使えるようになります。

speech_to_textの使い方

実際の使い方やサンプルコードが、各パッケージのページに記載されています。speech_to_textは、こちらのページを確認していきます。

Readmeには、OSによる挙動に違いや注意点も記載されています。必ず確認するようにしましょう。

この音声認識パッケージでは、端末のマイクと音声認識を使います。iOSの場合、マイクや音声認識を使う場合にはユーザ権限が必要です。このため、このパッケージを使う場合には、info.plistに以下のキーを追加します。

Info.plistファイルは、ios/Runnerフォルダにあります。

<key>NSSpeechRecognitionUsageDescription</key>
<string>”アプリが音声認識を使用する理由”</string>
<key>NSMicrophoneUsageDescription</key>
<string>”アプリがマイクにアクセスする理由”</string>

Readmeに、Complete Flutter exampleがありましたので、Demoアプリのmain.dartと置き換えて実行します。この時、シミュレータではマイクは使えませんので、実機での確認が必要となります。

実行してみると、音声がリアルタイムで認識され、認識結果が画面に表示されるのが確認できました。

日本語として認識しなかった時は、Xcodeのデフォルト言語設定を確認します。

念の為、コードを確認すると、MyApp、MyHomePage、_MyHomePageStateの構造は、Demoアプリと同じであることがわかります。