当前位置:首页 > 芯闻号 > 厂商文章
[导读]远场语音识别套件之开箱很荣幸,在2019年我依旧在百度AI平台下茁壮成长,这次收到了来自百度的测试邀请,我将有机会拿到最新的前沿产品~为各位献上来自前线的战况~我在过去和百度语音打交道的这些日子,曾遇到过很多问题

远场语音识别套件之开箱

很荣幸,在2019年我依旧在百度AI平台下茁壮成长,这次收到了来自百度的测试邀请,我将有机会拿到最新的前沿产品~为各位献上来自前线的战况~

我在过去和百度语音打交道的这些日子,曾遇到过很多问题,比如识别慢、精度差。自身原因和设备原因太多,举步艰难。我觉得一个非音频内行的人很难进一步提升在这一块的性能与质量。

但现在,百度语音正不断地完善,已经推出多种我非常适用的新东西,例如:

上个月刚上线的 百度语音识别极速版

该项能力经我自己特定样本测试,可以提高识别速度约3~9倍,在上侧传送门的测试样例中,最慢的普通版和最快的极速版耗时甚至相差24倍,可见该极速版,可谓是目前普通版的最佳替代方案了!

这次我将为各位带来的百度开发套件的新星啦

远场语音开发套件!

这是一款很不错的产品,就像之前的人脸开发套件一样,他能有效帮助想要落地语音识别的企业和个人开发者们快速开发出属于自己的业务产品。

在本次产品的规格中,有三种配置可选,依次是:

6+1环形麦阵列4mic线性阵列3mic三角阵列他们各有各的应用场景,为了更好地提升各位未来的产品,一定要听我说完他们的优点喔!

6+1环麦阵列

 

百度远场语音识别套件-开箱评测

6+1环形阵列由6颗麦克风围绕一圈,中间分布一颗组成,可实现:

360°零死角环绕声场

增强GSC声源定位及波束形成效果

基于非线性消除的AEC技术

推荐用于智能音箱等智能家居产品。

像现在主流的天猫精灵、小米音箱,都是采用的环形6麦阵列喔!

还有像国外的amazon echo 采用了类似解决方案

 

百度远场语音识别套件-开箱评测

他可以做到无死角的识别和声源定位喔!这还是值得玩一玩的~

线性4麦阵列

 

百度远场语音识别套件-开箱评测

4mic阵列由4颗麦克风横向排列

阵型狭长占用空间小,可适配各种硬件结构设计。

推荐应用于智能电视、平板、以及空调、冰箱等传统白电产品。

三角麦克阵列

 

百度远场语音识别套件-开箱评测

3mic阵列是由3颗麦克风三角形方式排列

支持双音区,兼顾主/副驾的语音交互需求

增强GSC声源定位及波束形成效果

基于非线性消除的AEC技术

3mic也支持声源定位喔

本次我所收到的是4mic阵列套件呢。他也是带有声源定位的哦~

废话不多说,开箱开始!

首先这次开发套件的外包装精致小巧,方方正正的外包装有种扑面而来的低调奢华与神秘感,不知道各位有没有看过四驱兄弟呢?

 

百度远场语音识别套件-开箱评测

 

百度远场语音识别套件-开箱评测

 

百度远场语音识别套件-开箱评测

真是侧漏着一股神秘的气息呢!揭开它的面纱,看看里面吧

 

百度远场语音识别套件-开箱评测

包装盒内非常简单明了,一张3折页,简单的说明书,开发套件本尊及数据线和电源线。

说明书简单介绍了包装内容清单、开发板的接口示意图、硬件连接指南、测试方式和软件开发环境搭建引导,比较简单。

我们来看一下开发套件本身吧,本套件使用的开发板是来自深圳市百能达电子有限公司和百度联手打造的RK3308开发板,拥有128M的ram和128M的flash。cpu采用的是微芯瑞的rk3308,4核ARM Cortex-A35。

 

百度远场语音识别套件-开箱评测

wifi方面仅支持2.4g频段,蓝牙支持到4.0。

在本套件上额外有一片wifi天线,所以wifi质量杠杠的。

 

百度远场语音识别套件-开箱评测

 

百度远场语音识别套件-开箱评测

麦克风可兼容上方的3种阵列。

数据线是usb-micro,主要用于adb调试。

所配套的是输出为12V2A的电源。

远场语音识别套件之hello world(mac篇)

点亮设备,插上usb线,我们即将进入环境配置阶段。

本篇使用macOS majave 10.14.4做演示。

插入设备前,应当保证自己的系统内具备adb环境。在terminal内确认一下

 

百度远场语音识别套件-开箱评测

至于如何安装,可参考百度搜索下的各种adb部署文章~

然后我们第一步首先要帮助开发套件连接到我们的wifi中来。

根据《百度大脑-远场语音开发套件-RK3308开发平台使用说明.pdf》中所提到的wifi配置,可以顺利完成入网。这里我做一遍操作

使用数据线连接设备后,我们可以用

adb devices命令查询到开发套件

随后键入 adb shell,使用命令行调试设备

cd /data/cfg 进入到wifi配置文件的目录下

通过vi命令打开配置文件

 

百度远场语音识别套件-开箱评测

默认情况下家用路由器的话,只需要修改ssid(wifi名称)和psk(password key)即可。

若wifi有特殊情况,自行添加

key_mgmt=WPA-PSK // 加密方式

# key_mgmt=NONE // 不加密

修改完成后保存配置

 

百度远场语音识别套件-开箱评测

随后输入

wpa_cli reconfigure

wpa_cli reconnect

指令激活重新联网

 

百度远场语音识别套件-开箱评测

此时此刻,我们就完成了设备入网了。

语音识别、合成都需要用到网络,所以一定要正确入网喔!

(蓝牙我目前用不到,所以暂时没有继续去配置)

接着我们来尝试启动语音识别的demo程序,来看一看环境是否正常

所有sdk资源及相关文件都在根目录oem文件夹内

根据产品说明书,我们需要先启动 alsa_audio_main_service服务。

启动它之前,我们需要对目录权限进行相关修改赋予权限后进行启动

multi_4_2 指的是使用4阵列板声卡2。&后台启动

然后使用 ps -A检查一下服务是否正确启动在后台中

 

百度远场语音识别套件-开箱评测

启动了alsa服务后,我们就可以去前往中启动demo了

样例程序文件位于/oem/BDSpeechSDK/sample目录中, 运行时依赖lib、resources、extern目录中的库及资源文件。

所以我们需要在启动时共享库

关于共享库可以看这里

我们运行指令

cd /oem/BDSpeechSDK/sample/wakeup

LD_LIBRARY_PATH=/oem ./e2e_wp_asr_test

 

百度远场语音识别套件-开箱评测

试着喊一下”小度小度,今天天气怎么样”试试?

 

百度远场语音识别套件-开箱评测

可以发现,这次套件采用了流式识别喔!附带中间结果的!

并且在3米远的位置,使用悄悄话的方式呼唤小度小度,也能成功唤醒!

 

百度远场语音识别套件-开箱评测

可能在英语方面还有待加强吧~

(也许是我的英语太散装了)

 

百度远场语音识别套件-开箱评测

关于语音合成

示例程序会将文本“456hello你好今天天气不错”传送给服务器,由服务器生成对应的语音,保存为pcm文件,用户可以进行播放体验。

在终端启动语音合成功能,生成文本“456hello你好今天天气不错”对应的语音。

cd /oem/BDSpeechSDK/sample/tts

LD_LIBRARY_PATH=/oem ./online_test

测试程序暂未提供用户传入合成文本生成语音的功能,用户可以参照样例程序自行开发。

运行结束后,会在当前目录下生成一个xxx.pcm,其中xxx是一个测试时的时间戳.在终端执行如下命令体验语音合成效果

aplay -t raw -c 1 -f S16_LE -r 16000 xxx.pcm

远场语音识别套件之交叉编译SampleCode

经过了近一周的努力,总算能够成功地将sample程序成功的交叉编译出来了。

本篇只针对如何成功交叉编译,解决我遇到的问题而设立的。重点是交叉编译的流程

这边我在mac上利用parallel部署了ubuntu虚拟机。为了重新确认一遍步骤,我重新装了一台机器并重头进行了一遍步骤。并故意重现了我这几天碰到过的错误及解决办法,可能可以帮助到各位。

这边需要以下内容:

rk3308的交叉编译工具链

gcc环境

ubuntu16.04 lts版

下载SDK

将rk3308板子内的oem内BDSpeechSDK目录复制到虚拟机内。可以进行adb pull /oem/BDSpeechSDK指令download下来

随后将sdk放到虚拟机。我这里就直接放在了home根目录

 

百度远场语音识别套件-开箱评测

 

百度远场语音识别套件-开箱评测

rk3308的编译在标准linux上是编不出来的。我们这里需要用到交叉编译工具链,这是一个特殊的编译器,可以认为是在A平台编译出B平台才能运行的工具包。

然后将交叉编译链也复制到虚拟机里

 

百度远场语音识别套件-开箱评测

按要求构建项目工程目录结构

基于目前创建日期为4月23日的quick_start.md中所述

mkdir my_specch_project

cd my_speech_projects

touch Makefile

mkdir src

touch src/main.cpp

创建如下的目录结构:

my_speech_project/

├── Makefile

└── src

└── main.cpp

我们到sample目录下,创建project文件夹并创建src目录,创建指定的文件

 

百度远场语音识别套件-开箱评测

编写(copy) sample代码

sample/asr/wakeup/src中的e2e_wp_asr_test.cpp和在quick_start.md中都有相应的demo代码,这里我就直接将wakeup/src中的sample代码拷贝到这里替换main.cpp

这里先不做任何改动,就照搬就行。目前的第一目的是尽快正确交叉编译并成功在板子上跑起来

编写(copy) Makefile代码

makefile可以帮助工程快速连接编译,他能省掉很多功夫。由于本人不是纯正的c++开发工程师,所以这里copy了quick_start.md中的makefile代码

 

百度远场语音识别套件-开箱评测

 

百度远场语音识别套件-开箱评测

 

百度远场语音识别套件-开箱评测

这里容易出现的第一个问题:

照搬后由于缩进,当你ctrlCV时,极有可能将缩进一起复制过来,所以这里需要将代码缩进都去除,保持整洁。在后面编译时我会演示出现缩进的错误提示,这里我继续保持原有的格式。

尝试编译

在quick_start.md中编译部分,要求我们配置完成后,在Makefile所在的目录执行

 

百度远场语音识别套件-开箱评测

这里 path-to-cross-compiler-root需要替换成我们工具链的根目录/bin即可/host其实就是我们工具链的根目录

那在我这样的目录环境,等效替换成了

 

百度远场语音识别套件-开箱评测

这里会出现很多问题。如果上方的操作跟我一样,那你也很有可能碰到这些问题!

错误1. Makefile:18

由于特殊缩进导致的makefile编译错误

错误具体提示如下

 

百度远场语音识别套件-开箱评测

经过我多次测试,我打了很多空行也会错在第18行这里。后来解决的方法就是将缩进全部去除就可以了!

 

百度远场语音识别套件-开箱评测

错误2.undefined reference

消除了上方的缩进后再次进行编译,会出现新的提示:

 

百度远场语音识别套件-开箱评测

这个错误是因为缺少alsa的so库导致的。这个错误也被写在了quick_start.md中

如果遇到类似 ld: 找不到 -lbd_alsa_audio_client的错误,请开发者自行从官网下载alsa服务包或自行从开发套件中/ome/目录下提取相关库放到工程下参与链接即可。

这边我们从oem目录中pull一个文件下来。他在/oem目录下,名为libbd_alsa_audio_client.so。将它复制到BDSpeechSDK/lib下,这个目录专门放外部依赖的库文件,这个也放这里吧。

然后再次尝试编译,没有任何错误提示了,编译通过

 

百度远场语音识别套件-开箱评测

然后在Makefile的同目录上就可以看到一个main的可执行程序了。这个程序是可以在rk3308的环境下执行的。将它通过adb放到板子里。这里提醒下,tmp目录在断电后会清洗。

(这里省略adb push ./main /tmp的过程)

尝试adb下打开main

我们的main也依赖于alsa的服务,所以在这里直接将alsa设置成开机启动得了。

/oem/Rklunch.sh 这个文件就是rk3308板子开机后会跑的一个执行文件,我们可以把所有需要在开机时启动的东西,都写在这个文件里,这样板子下次就会帮我们自动启动alsa了。

这里新增了几行代码,主要是改一下目录权限,然后运行alsa服务。

 

百度远场语音识别套件-开箱评测

但是这一次还是没有启动的,需要自己手动启动一下alsa。启动方式就是上面5句话。

这里也可以通过reboot指令重启板子,但是tmp刚放进来的main文件就被洗掉了,但可以检验开机启动是否正常,这个自行权衡吧~

 

百度远场语音识别套件-开箱评测

启动alsa后我们去启动main

 

百度远场语音识别套件-开箱评测

 

百度远场语音识别套件-开箱评测

如果看到这个输出,那么我们离成功不远了。但是其中有一句输出影响了整个程序。这不是编译问题!

错误3. dat file invalid

error:5, domain:38, desc:Wakeup: dat file invalid., sn:

这里意思是没成功载入dat文件。

我们看一下代码。在wakeup_config函数中,可以看到它配置dat文件的路径,

是../../resources/esis_resource.pkg

只要把这个层级改成绝对路径,或者把路径改短 ./esis_resource.pkg,并把pkg文件拷贝过来即可

 

百度远场语音识别套件-开箱评测

然后重新编译,adb push到tmp下,这里省略

记得把dat文件也push到tmp下,如果跟我的改法一样的话

然后再次执行main

 

百度远场语音识别套件-开箱评测

可以发现唤醒进入回调激活了引擎加载和启动唤醒。

我们这时候可以尝试使用了.

小度小度,今天上海天气如何?

 

百度远场语音识别套件-开箱评测

至此已经完成了demo项目工程的交叉编译工作。

这只是默认sample程序编译出来的效果喔,还有很多隐藏功能带解锁。

这是我7天来的努力成果,如果这篇文章对你有所帮助,请给一个赞吧~

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭