これは、ハードウェアがこの機能をサポートしていない場合でも、root 化されたデバイスで OK Google ホットワード検出を強制的に有効にする方法に関するチュートリアルです。
Moto X (2013) が最初に発表されたとき、(アンビエント ディスプレイ以外に) 最もエキサイティングな機能の 1 つは、音声コマンドに応じて起動する機能でした。
その後 Google Nexus デバイスに導入され、現在では多くの主力製品で利用できるようになったホットワード認識機能は、 デバイスをいじらずに簡単に Google 検索を行う必要がある場合に最適な、非常に優れた機能です。 手。 これは、携帯電話を車にドッキングしていて、特定の目的地へのナビゲーションを開始する必要がある場合に非常に便利です。 音声を使用して Google マップ ナビゲーションを開始する方が、他の方法よりもはるかに安全です。
残念ながら、いつでも「OK Google」コマンドをトリガーできるようにするには、デバイスに特別な低電力音声認識チップが必要です。 このハードウェアは多くのデバイスに存在しますが、すべてのデバイスに存在するわけではありません。 Huawei Mate 9 のような強力で高価なフラッグシップ製品でも、このオファーは提供されていません。 私のようなデバイスの場合、Google は画面がオンになっているとき、またはデバイスが充電器に接続されているときに「OK Google」音声コマンドをトリガーする機能を提供しています。
数年前、次のような名前の申請がありました。 Google Now の Mic+ を開く これには、バックグラウンド サービスが常に音声コマンドをリッスンできるようにするオプションがありました。 残念ながら、Google は開発者にサービスの使用を停止するよう要求し、開発者にはそのアプリをサポートする時間がなくなったため、そのアプリは途中で放置されました。 唯一の既存のオプションは使用することです オートボイス、人気のある Tasker プラグインですが、特定のコマンドに応答するプロファイルを設定するには、十分な Tasker の知識が必要です。
Google の音声認識サービスを利用したい人のために、次の回避策を見つけました。 ハードウェアがサポートしていない場合でも、ルート化されたデバイスで「OK Google」ホットワード検出を有効にします。 がある 2つの注意点 このトリックについては、以下で詳しく説明します。
あらゆるデバイスでの「OK Google」ホットワード検出
この問題の回避策を考えるときに私が自問した質問は次のとおりです。
デバイスをだましてコマンドでホットワード認識サービスを有効にするにはどうすればよいですか?
私の現在の携帯電話は、画面がオフになっているときのホットワード検出をネイティブにサポートしていないため、これが機能する唯一の条件は、携帯電話の画面がオンになっているとき、または充電しているときです。 当然のことながら、私の目標は常に (画面がオフのときでも) ホットワード検出を有効にすることなので、画面をオンにしておくとその目的は果たせません。 デバイスを接続したままにしておく必要があるのも、私の努力には意味がありません。しかし、それができたらどうなるでしょうか。 騙す 私のデバイスはこれら 2 つの条件のいずれかを満たしているでしょうか?
幸いなことに、少しの root マジックとデバッグ コマンドを賢く使用すれば、これは非常に可能です。 テスト目的のデバッグシェルコマンドを使用すると、次のことができます。 デバイスをだまして充電中だと思わせる 電源が接続されていない場合でも。 私たちの目的のために利用するコマンドは次のとおりです。 dumpsys battery
、パラメータについては、で読むことができます。 Roman Mazur によるこのブログ投稿.
注: このトリックは 完全に安全 実行すること。 前述したように、このコマンドはデバイスをだまして充電中であると思わせるだけです。 バッテリー監視アプリケーションがそうでないと判断しても、実際には充電されていません (これは、これらのアプリケーションに誤った情報が供給されるためです)。
特に注目すべきは、 dumpsys battery set
このコマンドは、デバイスが現在 AC、USB、またはワイヤレス充電経由で充電されているかどうかを設定するパラメータを受け取ります。 たとえば、Android で root シェルを開いて次のコマンドを入力すると、 デバイスは AC 電源経由で充電されていると認識します。
su
dumpsys battery set ac 1
このコマンド(またはUSB/ワイヤレス充電のコマンド)を設定することで、次のことができるようになります。 画面がオフのときに OK Google コマンドをトリガーします。 これは、どう見てもデバイスが「充電中」であり、Google のホットワード認識サービスを有効にするための要件を満たしているためです。
これはデバッグを目的としたコマンドであるため (主に、開発者がさまざまなバッテリー条件下で機能をテストすることを目的としています)、この方法で使用するといくつかの欠点があります。 特に 2 つの欠点については、次に説明します。 最初の欠点は回避するのがかなり簡単ですが、2 番目の欠点については同じことが言えません。
欠点 #1 - バッテリー凍結インジケーター
「dumpsys Battery set」コマンドを入力すると、Android の BatteryManager サービスが すぐに収集をやめる バッテリーの状態に関するその他のデータ。 これは、バッテリー レベル、温度、電流、電圧、状態が Android システムによって報告されなくなることを意味します。 代わりに、コマンドを入力した瞬間にそれらは時間内に「凍結」されます。
ただし、このデータは、 まだシステムによって収集中です たとえどのアプリケーションからアクセスできたとしても。 現在のバッテリーレベルの最新情報を入手したい場合は、いくつかの工夫が必要です。 幸いなことに、データは非常に簡単に取得できます。 Tasker または別の自動化アプリケーションをお持ちの場合は、タップするだけで /sys/class/power_supply/battery/capacity に保存されている現在のテキストで更新される通知を作成するだけです。
上のスクリーンショットでは、バッテリー インジケーター (ステータス バーをプルダウンすると表示されます) が 70% で止まっていますが、端末でわかるように、実際のバッテリー レベルは 69% です。 このファイルを定期的にポーリングして、正確なバッテリー レベルを通知バーに表示するのは簡単ですが、この問題を回避するさらに簡単な方法があります。
この特有の欠点に対処するのは、 実際には信じられないほど些細なこと. 考えてみると、この問題はコマンドが有効で画面がオンになっている場合にのみ発生します。 ただし、デフォルトの機能では画面がオンのときに「OK Google」コマンドにアクセスできるため、画面がオンのときにこのコマンドを有効にする必要はありません。 したがって、あなたがしなければならないことはただ単に 画面がオンのときにこのコマンドを無効にします. Tasker または別の自動化アプリを使用するのがおそらく最も簡単な方法でしょう。 このトリックを無効にするには、次のコマンドを実行するだけです。
dumpsys battery reset
また、以下では、画面がオフのときにこのコマンドを実行し、画面がオンのときは無効にするためにセットアップする必要がある 2 つの Tasker プロファイルの説明を示します。 基本的に、2 つの「イベント」コンテキストを作成することになります。1 つは「表示オフ」イベント、もう 1 つは「表示ロック解除」イベントです。 「ディスプレイオフ」イベントのタスクには、「コード」-->「コマンドを使用してシェルを実行」という 1 つのアクションが含まれます。 dumpsys battery set ac 1
. 「ロック解除の表示」イベントのタスクには、「コード」-->「コマンドを使用してシェルを実行」という 1 つのアクションも含まれます。 dumpsys battery reset
. したがって、Tasker は、画面がオフのときにデバイスが充電中であると思わせるコマンドを実行します (プロファイル: 有効) ホットワード検出) を実行し、電話機のロックが解除されているときにこのトリックを無効にするコマンドを実行します (プロファイル: ホットワード検出を無効にする)。
[タブ][タブ タイトル ="ホットワード検出を有効にする"]
Profile: Enable Hotword Detection (180)
Event: Display Off
Enter: Anon (182)
A1: Run Shell [ Command: dumpsys battery set ac 1Timeout (Seconds):0Use Root:OnStoreOutputIn: StoreErrorsIn: StoreResultIn: ]
[/tab][tab title ="ホットワード検出を無効にする"]
Profile: Disable Hotword Detection (191)
Event: Display Unlocked
Enter: Anon (192)
A1: Run Shell [ Command: dumpsys battery resetTimeout (Seconds):0Use Root:OnStoreOutputIn: StoreErrorsIn: StoreResultIn: ]
[/タブ]
[/タブ]
欠点 #2 - バッテリーの消耗が増加する
ホットワード検出に常にカスタム コプロセッサーが必要なのは十分な理由があります。そうしないと、CPU が起動状態を維持する必要があるため、バッテリーがさらに消耗することになるからです。 デバイスをだまして充電中であると思わせると、デバイスはプロセッサを実行し続け、より多くのバックグラウンドを実行することになります。 デバイスが電源にアクセスできるため、消費電力の増加は問題にならないと想定されているためです。
ただし、これは当てはまらないため、このコマンドを有効にするとバッテリーの消耗が増加します。 私の経験では、デバイスを一晩この状態にしておくと、Mate 9 のバッテリーが消耗してしまいました。 8 時間で 12% のバッテリー残量.
私の意見では、契約を破るものではありませんが、これを聞いて思いとどまる人もいるかもしれません。 残念ながら、この 2 番目の欠点に対処する簡単な回避策はありません。 上のセクションの最後の段落に従って、画面がオンになっているときにコマンドを無効にすると、問題をある程度軽減できますが、できることはそれだけです。
結論
このトリックがお役に立てば幸いです。 もちろんすべての人に適しているわけではありませんが、OK Google ホットワード検出を強制的に機能させたいが、デバイスに必要なハードウェアがない場合は、この回避策が最適です。
このトリックの 2 つの潜在的な欠点について概説しました。1 つ目は、必要に応じて自動化アプリケーションを使用してコマンドを有効または無効にすることで解決できます。 後者の欠点は、残念ながら、ハードウェアが常時接続用に構築されていないという事実の結果です。 ホットワード検出機能がありますが、これを本当に必要な場合にのみ使用するのであれば、それほど問題にはならないはずです。 問題。
このトリックを試してみて、効果があるかどうかを下のコメントで知らせてください。