我目前正在使用 pocketsphinx 库识别热门词(如“ok google”)。
该应用程序运行良好,只是它始终只使用手机的麦克风来识别语音。
我的用例是这样的:
该应用程序运行良好,通过蓝牙耳机播放音乐,同时识别语音,但它始终使用手机的麦克风。即使蓝牙耳机已连接或未连接,它仍然使用手机的麦克风。
我尝试使用:
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();
在这两种方法中,它都会切断音乐并用蓝牙麦克风收听。
我需要一种方法,音乐播放器不会从蓝牙耳机中删除,但我仍然能够从蓝牙耳机进行语音识别。
例如:
我正在通过蓝牙耳机听音乐。
我打开了录音应用(https://play.google.com/store/apps/details?id=com.andrwq.recorder)
即使在听音乐时,我也可以通过蓝牙耳机录制音频。
这让我觉得这是可能的,但我不知道如何。
请帮帮我。提前致谢。
最佳答案
启动SCO模式是正确的,之后pocketsphinx会监听蓝牙耳机。
要在 sco 模式下禁用电话麦克风,请使用 am.setMicrophoneMute(true);
要通过 SCO 播放音频,您需要播放器通过 STREAM_VOICE_CALL 播放。 SCO切换后可能必须重新启动播放器。
关于android - 在播放音乐时通过 android 中的蓝牙耳机进行语音识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29658622/