带有蓝牙麦克风的Android语音识别器

欧文·瑞安(Owen Ryan)

我一直在编写一个聊天应用程序,以与蓝牙耳机/耳机配合使用。到目前为止,我已经能够通过蓝牙耳机中的麦克风录制音频文件,并且能够使用RecogniserIntent等与Android设备的内置麦克风一起使用语音转文本功能。

但是我找不到让SpeechRecogniser通过蓝牙麦克风收听的方法,甚至可以这样做,如果可以的话,怎么办呢?

当前设备:三星Galax

安卓版本:4.4.2

编辑:我发现我的平板电脑设置中隐藏了一些语音识别器选项,其中之一是一个标记为“使用蓝牙麦克风”的复选框,但似乎没有任何作用。

欧文·瑞安(Owen Ryan)

找到了我自己问题的答案,因此我将其发布给他人使用:

为了获得语音识别以与Bluetooth Mic一起使用,您首先需要将设备作为BluetoothHeadset对象,然后在其上调用.startVoiceRecognition(),这会将模式设置为语音识别。

完成后,您需要调用.stopVoiceRecognition()。

您可以这样获得BluetoothHeadset:

private void SetupBluetooth()
{
    btAdapter = BluetoothAdapter.getDefaultAdapter();

    pairedDevices = btAdapter.getBondedDevices();

    BluetoothProfile.ServiceListener mProfileListener = new BluetoothProfile.ServiceListener() {
        public void onServiceConnected(int profile, BluetoothProfile proxy)
        {
            if (profile == BluetoothProfile.HEADSET)
            {
                btHeadset = (BluetoothHeadset) proxy;
            }
        }
        public void onServiceDisconnected(int profile)
        {
            if (profile == BluetoothProfile.HEADSET) {
                btHeadset = null;
            }
        }
    };
    btAdapter.getProfileProxy(SpeechActivity.this, mProfileListener, BluetoothProfile.HEADSET);

}

然后,您将调用startVoiceRecognition()并发送语音识别意图,如下所示:

private void startVoice()
{
    if(btAdapter.isEnabled())
    {
        for (BluetoothDevice tryDevice : pairedDevices)
        {
            //This loop tries to start VoiceRecognition mode on every paired device until it finds one that works(which will be the currently in use bluetooth headset)
            if (btHeadset.startVoiceRecognition(tryDevice))
            {
                break;
            }
        }
    }
    recogIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    recogIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);

    recog = SpeechRecognizer.createSpeechRecognizer(SpeechActivity.this);
    recog.setRecognitionListener(new RecognitionListener()
    {
       .........
    });

    recog.startListening(recogIntent);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python语音识别:“模块”对象没有属性“麦克风”

来自分类Dev

语音识别完成后如何禁用麦克风?

来自分类Dev

插入麦克风后无法识别扬声器

来自分类Dev

插入麦克风后无法识别扬声器

来自分类Dev

带有TRRS外部麦克风录音的Android摄像机

来自分类Dev

带有TRRS外部麦克风录音的Android摄像机

来自分类Dev

带有音频和麦克风的Linux RDP

来自分类Dev

带有 AVAudioEngine 的立体声麦克风直通?

来自分类Dev

测试语音识别应用程序〜音频输出到麦克风输入适配器

来自分类Dev

测试语音识别应用程序〜音频输出到麦克风输入适配器

来自分类Dev

麦克风的Python Pocketsphinx识别

来自分类Dev

Android Studio 0.8屏幕录制有麦克风吗?

来自分类Dev

Android启动蓝牙sco不在棒棒糖中路由麦克风

来自分类Dev

JBL耳机在笔记本电脑上带有蓝牙时音质不佳,无法停用麦克风(假定修复)

来自分类Dev

在麦克风上检测到语音时运行的脚本

来自分类Dev

文字转语音以“虚拟麦克风”发送

来自分类Dev

我的内置麦克风有问题

来自分类Dev

iOS输入麦克风输出蓝牙设备

来自分类Dev

如何在Ubuntu中使用蓝牙耳机麦克风?

来自分类Dev

如何通过蓝牙麦克风录制音频

来自分类Dev

如何在Ubuntu中使用蓝牙耳机麦克风?

来自分类Dev

通过CoreBluetooth使iOS设备成为蓝牙麦克风

来自分类Dev

未检测到蓝牙耳机麦克风

来自分类Dev

蓝牙耳机的麦克风无法在Linux Mint上运行

来自分类Dev

Unity无法识别麦克风,但Windows可以识别

来自分类Dev

是否有支持的带有工作麦克风输入的外部声卡?

来自分类Dev

麦克风问题

来自分类Dev

麦克风问题

来自分类Dev

使用带有HTML5的用户麦克风录制音频

Related 相关文章

热门标签

归档