BlueNRG-1为ST公司推出的超低功耗的BLESOC芯片,本文介绍基于BlueNRG-1的语音识别方案BlueVoice。BlueVoice方案将外部语音数据通过BLE协议传输到手机端APP,利用讯飞语音识别云服务解析语音内容并显示出来。
下面介绍BlueVoice的使用方法,演示对着BlueNRG-1测试平台说出“你好”,在手机APP中显示出“你好”两个汉字。
一、硬件
使用BlueNRG-1开发板(STEVAL-IDB007V1)作为演示平台,并外置一个数字麦克风。
该麦克风有五个管脚,分别连接至开发板的对应管脚。麦克风与开发板的管脚对应关系如下:
通过跳线将该麦克风模块连接到开发板的效果图如下:
二、固件
ST提供了BlueVoice的测试工程,该工程中包含了BlueVoice软件包和可供测试的示例工程。该软件包支持16kHz和8kHz两种语音采样频率。对于简单的语音指令,可以使用8k的采样频率。打开工程文件bluevoice_application_peripheral.h,跳转到第71行,如下:
宏变量FS指定了语音采样频率,请确保该工程的采样率为8000。编译后将工程Hex文件下载到BlueNRG-1的开发板中。正常运行时,开发板上的蓝色LED灯会慢慢闪烁。
三、APP
从ST供应商获取安卓或iOS版的BlueMSAPP(稍后会上传至GooglePlay和iOSAPP Store)。安卓版的BlueMS打开后界面如下:
界面中上部的的图标(START SCANNING)为一个按钮,点击后APP将开始扫描周围的BlueVoice设备。假如下载了BlueVoice的开发板正在运行,则APP可以检测到它,如下图:
选择该设备,将打开一个设备操作界面。BlueMS APP支持多种语音识别云服务,比如Google语音识别和讯飞语音识别。用户需要在设置界面选择中文地区,以使用讯飞服务,如果选择英文地区,则使用Google服务。在界面的右上角,选择ASRLanguage菜单项,选择Chinese。如下图:
这时,可以看到BlueMS主界面:
观察界面,可以看到本APP使用的是8kHz的采样频率(SamplingFreq),所以要求BlueVoice设备端也要使用8kHz的采样频率。同时,注意右下角的麦克风图标。在上图中,该图标的背景色为红色,点击该按钮,图标背景色会变为绿色。当背景色为红色时,BLE传输过来的数据会回放出来,即APP上可以听到用户在BlueVoice设备上说的语音内容。当背景色为绿色时,BLE传输过来的数据会传送到讯飞云服务器,解析后显示出来。
这时,单击开发板上的按键1(PUSH 1),使BlueVoice系统进入语音接收状态。注意,再次单击按键1,将结束语音接收状态,使得语音无法传输到BlueMSAPP中。
同时,单击BlueMSAPP上的麦克风按钮,使其进入语音识别模式,此时图标底色应为绿色。这时,对着连接在开发板上的麦克风,说一句“你好”,就可以看到APP上的识别结果:
更进一步,在APP中对该语音内容进行解析,转换成设备操作指令,通过BLE回传给BlueVoice设备端,即可实现通过语音控制设备。