Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中播放音乐时通过蓝牙耳机进行语音识别_Android_Audio_Bluetooth_Speech Recognition_Pocketsphinx Android - Fatal编程技术网

在android中播放音乐时通过蓝牙耳机进行语音识别

在android中播放音乐时通过蓝牙耳机进行语音识别,android,audio,bluetooth,speech-recognition,pocketsphinx-android,Android,Audio,Bluetooth,Speech Recognition,Pocketsphinx Android,我目前正在使用pocketsphinx库识别热门单词(如“ok google”)。 该应用程序工作正常,只是它总是只使用手机的麦克风来识别语音。 我的用例是这样的: 我听一个热门词,然后用MediaPlayer播放一些音乐 在播放音乐的同时,继续收听下一个命令,并做出相应的反应 该应用程序工作正常,通过蓝牙耳机播放音乐,同时还能识别语音,但它始终使用手机的麦克风。即使蓝牙耳机已连接或未连接,它仍会使用手机的麦克风 我尝试使用: AudioManager mAudioManager = (Aud

我目前正在使用pocketsphinx库识别热门单词(如“ok google”)。 该应用程序工作正常,只是它总是只使用手机的麦克风来识别语音。 我的用例是这样的:

  • 我听一个热门词,然后用MediaPlayer播放一些音乐
  • 在播放音乐的同时,继续收听下一个命令,并做出相应的反应
  • 该应用程序工作正常,通过蓝牙耳机播放音乐,同时还能识别语音,但它始终使用手机的麦克风。即使蓝牙耳机已连接或未连接,它仍会使用手机的麦克风

    我尝试使用:

    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();
    
    我尝试使用:

    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();
    
    在这两种方法中,它都会切断音乐并使用蓝牙麦克风收听

    我需要一种方法,使音乐播放器不与蓝牙耳机断开,但我仍然能够从蓝牙耳机识别语音

    例如: 我正在通过蓝牙耳机听音乐。 我打开了录音应用程序() 即使在听音乐时,我也可以通过蓝牙耳机录制音频

    这让我觉得这是可能的,但我不知道怎么做


    请帮帮我。提前感谢。

    启动SCO模式是正确的,之后pocketsphinx将收听蓝牙耳机

    要在sco模式下禁用手机麦克风,请使用
    am.setMicrophoneMute(true)


    要通过SCO播放音频,您需要播放器通过流式语音通话播放。可能在SCO切换后必须重新启动播放机。

    只要抬起头,即使你让它工作,你也会很快耗尽耳机的电池,因为它会不断地向手机发送麦克风音频。你是对的。但是,我想我可以接受。我试着使用mAudioManager.setMode(AudioManager.STREAM\u VOICE\u CALL);但是当我设置mAudioManager.startBluetoothSco()时,音乐仍然在关闭;我还使用安卓音乐播放器来播放。