13

一部のデバイス(Samsung Galaxy S3など)には、GoogleVoiceSearchの代わりにVlingoを搭載したSamsungがプリインストールされています。

私のアプリでは、使用する音声認識エンジンをプログラムでオーバーライドして、アプリでGoogle音声検索が常に使用されるようにします。

だから私の質問は:

  1. どの音声認識エンジンがインストールされているかを知る方法はありますか?(もしそうなら、どのように?)
  2. ユーザー設定でどの音声認識エンジンが選択されているかを確認する方法はありますか?(もしそうなら、どのように?)
  3. アプリが常にGoogle音声検索を呼び出すように、ユーザーの選択をオーバーライドするプログラム的な方法はありますか?(もしそうなら、どのように?)

ヘルプをいただければ幸いです

4

1 に答える 1

6

すべての質問に対する答えは「はい」です。

createSpeechRecognizerには、使用するレコグナイザーのパッケージ名を指定できます。したがって、パッケージ名がわかっている場合は、デフォルトをオーバーライドできます。

利用可能なサービスを検出するには、次を使用します。

List<ResolveInfo> services =
    getPackageManager().queryIntentServices(
        new Intent(RecognitionService.SERVICE_INTERFACE), 0);

詳細については、Babbleのソースコードを調べてください。これが最善の方法かどうかはわかりませんが(フィードバックは大歓迎です)、私のデバイスでは機能しました。(Babbleは一般的にAndroid 4以降を想定していますが、音声認識機能の検出部分は以前のバージョンでも機能する可能性があります。)

于 2013-03-14T16:43:02.320 に答える