一种蓝牙智能设备语音交互系统及方法与流程

文档序号:17735311发布日期:2019-05-22 03:08阅读:442来源:国知局
一种蓝牙智能设备语音交互系统及方法与流程
本发明涉及蓝牙通信
技术领域
,尤其涉及一种基于opus的蓝牙智能设备语音交互方法及系统。
背景技术
:随着数字无线音频传输技术的发展,蓝牙设备得到了广泛使用,具有语音交互系统的蓝牙智能终端已日渐普及,给我们的生活带来很大的便利各乐趣。用户只要对蓝牙智能终端按规定格式讲出某项要求,例如想要听歌或是拨打电话等,系统便会依据使用者的语音信号,采取对应的动作。当前,由于蓝牙智能终端一般不具备互联网能力,而是借助手机的移动互联的功能,实现语音交互。流程:蓝牙智能终端采集音频,然后通过蓝牙sco(synchronousconnectionorientedlink,面向连接的同步链路)把音频数据传递给手机app。然而,现有技术也面临一些问题亟待解决:手机蓝牙sco通道只有一个,在语音数据传输的过程中,来电或其他系统级的请求,sco通道就会被占用,导致语音数据提交失败,因手机的厂家众多,批次也多,存在着蓝牙兼容性问题,无法灵活扩展,影响用户体验;音频传输带受限,无法传输高质量音频,导致传输至云端的音频数据失真严重,间接降低了云端的识别效果。由于现有蓝牙设备与智能手机app音频数据传输方式的鲁棒性和可靠性较差,因此,有必要提供一种基于opus的蓝牙智能设备语音交互方法及系统,来解决蓝牙智能终端与手机app音频数据传输通道单一和sco的系统兼容性的问题,提高系统的稳定性,满足了对高质量音频传输的需求,改善用户体验。技术实现要素:为解决上述技术问题,本发明提供一种基于opus的蓝牙智能设备语音交互系统及方法,解决现有相关技术中的蓝牙智能设备与智能手机app音频数据传输通道单一和sco的系统兼容性的问题,实现音频数据多通道传输,提高系统的稳定性和交互响应时间,保证了音频数据传输的高效性和节能性,满足了对高质量音频传输的需求。具体技术方案为:一种基于opus的蓝牙智能设备语音交互系统,包括智能移动终端、蓝牙智能设备、云服务器;所述蓝牙智能设备包括spp/ble数据传输模块、电源管理模块;所述智能移动终端包括网络传输模块、spp/ble数据传输模块;所述云服务器包括网络传输模块;智能移动终端与蓝牙智能设备建立蓝牙连接并传输数据;智能移动终端与云服务器相连接并上传数据;智能移动终端通过蓝牙智能设备播报云端的回复。一种基于opus的蓝牙智能设备语音交互系统运作方法,步骤为:步骤一、智能移动终端与蓝牙智能设备通过spp/ble数据传输模块建立蓝牙连接;步骤二、蓝牙智能设备通过spp/ble数据传输模块的发送控制指令数据及经opus编码后的pcm音频流数据给智能移动终端;步骤三、智能移动终端根据收到数据进行区分控制指令数据和音频流数据,若是控制指令则给予对应的回应,若是音频流数据,需要按约定好的参数进行opus解码;步骤四、智能移动终端通过网络传输模块将解码后的pcm音频数据上传到云端的云服务器作解析;步骤五、云端结合蓝牙智能设备、智能移动终端、云服务器三方的vad判断是否停止录音采集;步骤六、智能移动终端通过蓝牙智能设备的a2dp通道播报云端的回复。优选的,一种基于opus的蓝牙智能设备语音交互系统运作方法步骤一具体为:打开智能移动终端,根据预置的uuid及名称自动过滤uuid和蓝牙名称并建立与蓝牙智能设备的ble或spp数据通道连接。优选的,一种基于opus的蓝牙智能设备语音交互系统运作方法步骤二具体为:蓝牙智能设备向移动智能终端上传数据分为两种:header格式:位数(bit)长度(bit)描述154版本号115数据标记,0为控制指令数据,1为音频流数据66保留01长度位,0为1个字节的长度,1为2个字节的长度8/16长度负载,payload根据上述定义控制指令数据,header数据,即开头两个字节为:0x10,0x00音频流数据,header数据,即开头两个字节为:0x10,0x80数据格式:控制指令数据:header+定义的指令(如开始录音)音频流数据:header+opus编码后的音频数据即当蓝牙智能设备启动录音时,先向移动智能终端发送启动控制指令,待收到移动智能终端的应答指令后,开始发送音频流数据;此音频流数据为经opus编码后的音频数据,音频数据参数为采样率16kpbs、单声道、16bit。opus编码初始化如下:encoder=opus_encoder_create(sampling_rate,channels,opus_application_voip,&err);if(err<0){return0;}opus_encoder_ctl(encoder,opus_set_vbr_request,0);opus_encoder_ctl(encoder,opus_set_bitrate_request,sampling_rate);opus_encoder_ctl(encoder,opus_set_signal_request,opus_signal_voice);opus_encoder_ctl(encoder,opus_set_complexity_request,0);opus_encoder_ctl(encoder,opus_set_expert_frame_duration(opus_framesize_20_ms))。优选的,一种基于opus的蓝牙智能设备语音交互系统运作方法步骤三具体为:移动智能终端从蓝牙数据连接通道接收数据;移动智能终端从缓存数据中读取数据,根据header定义来区分是控制指令数据还是音频流数据;若是控制指令数,则app需对该指令作出回应,即应答指令;若是音频流数据,则需要经过opus解码,然后将音频数据上传到云端;首先,初始化opus解码decoder=opus_decoder_create(sampling_rate,channels,&err);if(err<0){return0;}opus_decoder_ctl(decoder,opus_set_vbr_request,0);opus_decoder_ctl(decoder,opus_set_bitrate_request,sampling_rate);opus_decoder_ctl(decoder,opus_set_signal_request,opus_signal_voice);opus_decoder_ctl(decoder,opus_set_complexity_request,0);opus_decoder_ctl(decoder,opus_set_expert_frame_duration(opus_framesize_20_ms));接着,根据header中的payload长度提取编码后的数据进行解码:intopuslength=block[2];//真正opus数据长度byte[]opusblock=newbyte[opuslength];system.arraycopy(block,3,opusblock,0,opuslength);//mpcmbuf为解码后的数据intdecode=mopusdecoder.decode(opusblock,mpcmbuf);依上述解码方法,由40个字节的数据解析出160个字节的pcm原始音频数据。优选的,一种基于opus的蓝牙智能设备语音交互系统运作方法步骤四具体为:移动智能终端边接收音频数据,经opus解码后pcm音频数据,边上传给云端。优选的,一种基于opus的蓝牙智能设备语音交互系统运作方法步骤五具体为:为了提高交互响应时间,综合了蓝牙智能设备、智能移动终端、云服务器三方的vad判断判停数据;具体情况哪个vad先响应,就以先响应时点为准,停止系统录音。优选的,一种基于opus的蓝牙智能设备语音交互系统运作方法,移动智能终端与蓝牙智能设备建立蓝牙连接,根据预置的uuid及名称自动过滤uuid和蓝牙名称并建立ble或spp数据通道连接;为了保证数据传输的稳定性,android的移动智能终端使用spp连接,ios的移动智能终端使用ble连接。优选的,基于opus的蓝牙智能设备语音交互系统涉及的蓝牙智能终端可以为蓝牙智能耳机、蓝牙智能音箱等。优选的,基于opus的蓝牙智能设备语音交互系统涉及的智能移动终端可以是智能手机、平板电脑、笔记本电脑、智能手表等。采用了上述技术方案后,本发明的有益效果是:相对于已披露的技术方案,本技术方案将通过优化简化系统和运作步骤,解决现有相关技术中的蓝牙智能设备与智能手机app音频数据传输通道单一和sco的系统兼容性的问题,实现音频数据多通道传输,提高系统的稳定性和交互响应时间,保证了音频数据传输的高效性和节能性,满足了对高质量音频传输的需求,改善用户体验。附图说明图1是基于opus的蓝牙智能设备语音交互系统图2是基于opus的蓝牙智能设备语音交互系统运作方法步骤具体实施方式下面结合附图1至2以及具体实施例对本发明进行详细描述,但不作为对本发明的限定。实施例如图1所示的系统,包括智能移动终端、蓝牙智能设备、云服务器,其中,智能移动终端可以是智能手机、平板电脑、笔记本电脑、智能手表等;蓝牙智能设备可以是蓝牙智能耳机、蓝牙智能音箱等;本实施例智能移动终端和蓝牙智能设备以一台android智能手机和一台蓝牙智能音箱为例。请参阅图2,为本发明实施例提供的一种基于opus的蓝牙智能设备语音交互系统及方法,其主要包括以下步骤:步骤一(s101)智能手机app与蓝牙智能设备建立蓝牙连接;在本发明实施例中,首先通过智能手机系统蓝牙模块与蓝牙智能设备的传输蓝牙建立蓝牙连接,即传统蓝牙连接,主要是a2dp和avrcp的profile连接;在传统蓝牙连接成功的基础上,打开智能手机app,根据预置的uuid及名称自动过滤uuid和蓝牙名称并建立ble或spp数据通道连接,为了保证数据传输的稳定性,android手机使用spp连接,ios手机使用ble连接,成功建立连接后,即可实现手机app与蓝牙智能终端的数据交互。步骤二(s102)蓝牙智能设备通过蓝牙数据通道发送控制指令数据及经opus编码后的pcm音频流数据给智能手机app;在本发明实施例中,蓝牙智能设备向智能手机app上传数据分为两种:header格式:位数(bit)长度(bit)描述154版本号115数据标记,0为控制指令数据,1为音频流数据66保留01长度位,0为1个字节的长度,1为2个字节的长度8/16长度负载,payload根据上述定义控制指令数据,header数据,即开头两个字节为:0x10,0x00音频流数据,header数据,即开头两个字节为:0x10,0x80数据格式:控制指令数据:header+定义的指令(如开始录音)音频流数据:header+opus编码后的音频数据即当蓝牙智能设备启动录音时,先向智能手机app发送启动控制指令,待收到智能手机app的应答指令后,开始发送音频流数据。此音频流数据为经opus编码后的音频数据,音频数据参数为采样率16kpbs、单声道、16bit。opus编码初始化如下:encoder=opus_encoder_create(sampling_rate,channels,opus_application_voip,&err);if(err<0){return0;}opus_encoder_ctl(encoder,opus_set_vbr_request,0);opus_encoder_ctl(encoder,opus_set_bitrate_request,sampling_rate);opus_encoder_ctl(encoder,opus_set_signal_request,opus_signal_voice);opus_encoder_ctl(encoder,opus_set_complexity_request,0);opus_encoder_ctl(encoder,opus_set_expert_frame_duration(opus_framesize_20_ms));步骤三(s103)智能手机app根据收到数据进行区分控制指令数据或音频流数据;在本发明实施例中,智能手机app从蓝牙数据连接通道接收数据,ios手机监听ble通道读取蓝牙智能设备发送过来的数据,android手机监听spp通道的数据信息。spp通道在高频率数据发送时,会容易出现串包,第有的包被分隔成不同的两包数据,有的会出现几个包合并成一个包,所以需要建立接收缓存线程来接收蓝牙智能设备发送过来的数据。智能手机app从缓存数据中读取数据,根据header定义来区分是控制指令数据还是音频流数据。若是控制指令数,则app需对该指令作出回应,即应答指令。若是音频流数据,则需要经过opus解码,然后将音频数据上传到云端。首先,初始化opus解码decoder=opus_decoder_create(sampling_rate,channels,&err);if(err<0){return0;}opus_decoder_ctl(decoder,opus_set_vbr_request,0);opus_decoder_ctl(decoder,opus_set_bitrate_request,sampling_rate);opus_decoder_ctl(decoder,opus_set_signal_request,opus_signal_voice);opus_decoder_ctl(decoder,opus_set_complexity_request,0);opus_decoder_ctl(decoder,opus_set_expert_frame_duration(opus_framesize_20_ms));接着,根据header中的payload长度提取编码后的数据进行解码:intopuslength=block[2];//真正opus数据长度byte[]opusblock=newbyte[opuslength];system.arraycopy(block,3,opusblock,0,opuslength);//mpcmbuf为解码后的数据intdecode=mopusdecoder.decode(opusblock,mpcmbuf);依上述解码方法,由40个字节的数据解析出160个字节的pcm原始音频数据。步骤四(s103)智能手机app将解码后的pcm音频数据上传云端作解析;在本发明实施例中,为了改善用户体验,必须采用边录边传的方法来上传音频数据,对于智能手机app来说,就是边接收音频数据,经opus解码后pcm音频数据,边上传给云端。步骤五(s105)语音传输vad判停定义;在本发明实施例中,为了提高交互响应时间,综合了三个vad判停数据,即蓝牙智能设备端的vad,app端根据pcm音频数据声音能量来判断的vad,还有云端的vad,根据哪个vad先响应,就以先响应的为准,停止系统录音。步骤六(s106)智能手机app通过蓝牙智能设备的a2dp通道播报云端的回复;在本发明实施例中,智能手机app收到云端的回复后,通过蓝牙智能设备的a2dp通道播报出来,实现了对蓝牙智能设备交互系统的语音从采集、处理、压缩到发送及音频播放的完整流程。由技术常识可知,本技术方案可以通过其它的不脱离其精神实质或必要特征的实施方案来实现。因此,上述公开的实施方案,就各方面而言,都只是举例说明,并不是仅有的。所有在本发明范围内或在等同于本发明的范围内的改变均被本发明包含。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1