Android(JellyBean)でのオフライン音声認識
質問
Googleは、サードパーティアプリのために、Google Nowからオフライン音声認識を利用できるようにしたようです。 これは、次のような場合に使用されます。 Utter というアプリで使用されています。 .
このオフライン音声認識を使って簡単な音声コマンドを行う方法の実装を見たことがある人はいますか? 通常のSpeechRecognizer APIを使うだけで自動的に動作するのでしょうか?
どのように解決するのですか?
Google はその Search アップデートでオフライン認識を静かに有効にしましたが、(まだ)API もなければ SpeechRecognizer クラス . {この記事の下にある編集を参照}。 この機能は追加のコーディングなしで利用できますが、ユーザーのデバイスが動作を開始するために正しく設定される必要があり、これが問題がある場所であり、多くの開発者が「何かを見逃している」と仮定する理由だと私は想像します。
また、Google は、ハードウェアの制約により、特定の Jelly Bean デバイスがオフライン認識を使用することを制限しています。どのデバイスに適用されるかは文書化されておらず、実際、何も文書化されていないため、ユーザーのために機能を構成することは (彼らにとって) 試行錯誤の問題であることが証明されています。一部のユーザーにはすぐに機能しますが、そうでないユーザーには、これが私が提供する「ガイド」です。
- デフォルトの Android の音声認識機能が Google に設定されていることを確認します。 Samsung/Vlingo に設定されていることを確認します。
- すでにインストールされているオフライン認識ファイルをアンインストールします。 を Google 音声検索設定からアンインストールします。
- Android アプリケーションの設定に移動して、Google 検索と Google 音声検索のアップデートをアンインストールできるかどうかを確認します。 Google 検索および Google 音声検索アプリケーションの更新をアンインストールできるかどうか アプリケーションのアップデートをアンインストールできるかどうかを確認します。
- 上記を実行できない場合は、Play ストアに移動して、次のオプションがあるかどうかを確認します。 オプションがあるかどうかを確認します。
- 再起動(2,3,4ができた場合)
- Play ストアから Google 検索と Google 音声検索を更新する (3 または 4 を達成した場合、またはいずれにせよ更新が可能な場合) 3 または 4 を達成した場合、またはいずれにせよ更新が可能な場合)。
- 再起動する (6 を達成した場合)
- 英語 UK オフライン言語ファイルのインストール
- 再起動
- 使用方法 を使用します。 を使用します。
- 機内モードに切り替えて試してみる
- 一度動作すると、他の言語のオフライン認識も動作するようになります。 のオフライン認識も動作し始めるはずです。
編集: 一時的にデバイスのロケールを English UK に変更すると、一部のユーザーでこれが動作するようになるようです。
一部のユーザーは、動作し始めるまでにまだ何度も再起動しなければならなかったと報告していますが、最終的にはすべてそこに到達し、しばしば不可解なことに何が引き金だったのか、そのキーは Google 検索 APK の一部であり、パブリックドメインではありません。 AOSP .
私が確立したところでは、Google は、オフラインまたはオンラインの認識を使用するかどうかを決定する前に、接続の可用性をテストします。最初は接続が可能でも、応答前に接続が失われた場合、Google は接続エラーを提供し、オフラインにフォールバックすることはないでしょう。余談ですが、ネットワーク合成音声の要求が行われた場合、失敗してもエラーは発生せず、無音が得られます。
Google 検索のアップデートでは、Google Now の追加機能は有効にならず、実際、インターネットに接続していない状態で使用しようとすると、エラーになります。私は、この機能が登場したときと同じように静かに停止されるのではないかと思ったので、このことについて言及しました。
SpeechRecognizer クラスを使い始めるつもりなら、警告として、かなり大きな メジャー バグ があり、それを処理するために独自の実装が必要です。
オフライン = true
を指定できないため、データ接続を操作しないとこの機能を制御できない。くだらない。なぜこんな簡単なことを有効にしないのかと、何百通ものユーザーからのメールが届くことでしょう!
EDITです。 APIレベル23から、新しいパラメータが追加されました。 extra_prefer_offline が追加され、Googleの認識サービスはこれを遵守しているように見えます。
以上、ご参考になれば幸いです。
関連
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] AppCompat-v7 21でアクションバー/ツールバーにアイコンを表示する。
-
[解決済み] Android StudioからADBを手動で再起動する方法
-
[解決済み] PendingIntentの "requestCode "は何に使うのですか?
-
[解決済み] ブルートゥースアプリケーションのテストにアンドロイドエミュレータを使用するには?
-
[解決済み] 文字列リソースにHTML?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ArrayAdapter<myClass> の使用方法
-
[解決済み] Android Webview - キャッシュを完全に削除する
-
[解決済み] AndroidでラジオボタンにOnClickListenerを設定するには?
-
[解決済み] Android Navigation Architecture Component - 現在表示されているフラグメントを取得する
-
[解決済み] アプリ内課金テスト:android.test.purchased already owned
-
[解決済み] これはどういうことですか?失敗 [INSTALL_FAILED_CONTAINER_ERROR]?
-
[解決済み] Gmailの3分割アニメーションシナリオの完全動作サンプル?
-
[解決済み] 非推奨のandroid.support.v4.app.ActionBarDrawerToggleの置き換え方法
-
[解決済み] 実行に失敗しました app:processDebugResources Android Studio
-
[解決済み] 文字列リソースにHTML?