我目前正在使用pocketsphinx库识别Hot word(如“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) 即使在听音乐的时候,我也可以通过蓝牙耳机录制音频。
这让我觉得有可能,但我不知道如何。
请帮帮我。提前谢谢。
答案 0 :(得分:0)
启动SCO模式是正确的,之后pocketphinx将收听蓝牙耳机。
要在sco模式下禁用手机麦克风,请使用am.setMicrophoneMute(true);
要通过SCO播放音频,您需要播放器通过STREAM_VOICE_CALL播放。也许在SCO切换后必须重新启动播放器。