3

現在、ポケットフィンクス ライブラリを使用してホット ワード (「ok google」など) を認識しています。アプリは正常に動作しますが、常に電話のマイクのみを使用して音声を認識します。私のユースケースは次のようなものです:

  1. 熱い言葉に耳を傾け、MediaPlayer を使用して音楽を再生します。
  2. 音楽の再生を続けながら次のコマンドを聞き続け、それに応じて反応します。

アプリは正常に動作し、Bluetooth ヘッドセットを介して音楽が再生され、音声も同時に認識されますが、常に電話のマイクが使用されます。Bluetooth ヘッドセットが接続されていても接続されていなくても、電話のマイクを使用します。

私は使用してみました:

AudioManager mAudioManager = 
(AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
mAudioManager.setMode(AudioManager.MODE_IN_CALL); 
mAudioManager.startBluetoothSco();

私は使用してみました:

AudioManager mAudioManager = 
(AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION); 
mAudioManager.startBluetoothSco();

どちらのアプローチでも、音楽を遮断し、Bluetooth マイクで聞きます。

音楽プレーヤーがBluetoothヘッドセットから切り離されていないアプローチが必要ですが、それでもBluetoothヘッドセットから音声を認識できます。

例: Bluetooth ヘッドセットで音楽を聴いていました。音声録音アプリを開きました ( https://play.google.com/store/apps/details?id=com.andrwq.recorder ) 音楽を聴きながら、Bluetooth ヘッドセットを介して音声を録音できます。

これは可能だと感じますが、方法がわかりません。

私を助けてください。前もって感謝します。

4

1 に答える 1

1

SCO モードを開始するのは正しいです。その後、 pocketphinx は Bluetooth ヘッドセットをリッスンします。

sco モードで電話のマイクを無効にするにはam.setMicrophoneMute(true);

SCO を介してオーディオを再生するには、プレーヤーが STREAM_VOICE_CALL を介して再生する必要があります。SCO の切り替え後にプレーヤーを再起動する必要があるかもしれません。

于 2015-04-15T21:19:09.603 に答える