百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

百度大脑远场语音开发套件评测—快速上手,超赞语音交互体验

liuian 2025-02-13 13:05 57 浏览

近年来,人工智能话题越来越热,受到了更多人的关注。我也是大概在18年末开始接触到百度AI社区,通过使用文字识别、图像识别等百度AI技术,逐步感受到了AI技术的强大,同时也感觉到了百度AI技术的进步:AI技术领域范围越来越广泛,识别速度越来越快,识别准确度越来越高。这次,有幸收到百度远场语音开发套件的测评邀请,作为一个非测试专业人员,这里我就自己的百度远场语音开发套件使用过程及在使用过程中遇到的问题和大家分享一下,如有错误,请多多指教。

一、开箱

整个包装很简洁,就是一个白色的长方形盒子,正上方印着“百度大脑”标识。

打开盒子后,首先映入眼球的是一份“百度语音远场开发套件说明书”,里面介绍了硬件购成、开发资料等信息。

拿出说明书,看到的是一个长方形的盒子,里面放着电源适配器、USB线。

拿出盒子后,便看到了百度远场语音开发板主体了,被白色泡沫保护的很好。

接下来,一起具体看看远场开发板的一些细节:

最后,看看百度远场语音开发套件全家福:

百度大脑远场语音开发套件,基于 RK3308 开发平台打造,提供的麦克风选型适用于智能音箱、智能 家电、车载设备场景,整个开发套件包含麦克风阵列板、开发板、喇叭以及符合声学要求的腔体, 支持声源定位、噪声消除等信号处理算法,5 米内有效拾音,支持远场唤醒、远场识别、语音合成能 力,使语音开发评估更简便、更高效。

RK3308 开发平台,采用 64 位 4 核 ARMCortex-A35 处理器 RK3308 系列,整合了高性能 CODEC(8 通 道 ADC + 2 通道 DAC),直接支持最大 8 通道数字 MIC 阵列+回采,实现高精度声音采集及分析,是 一款集多种功能为一体针对音频类应用的 AI+IoT 开发平台。 丰富的操作系统/服务支持,助力方便快速进行 AIOT 开发和产品应用。

关于百度远场语音开发套件的更多介绍,可以到百度AI市场了解详情,我在这里就不在做赘述。

二、开发测试

本次测试环境为Ubuntu 16.04 64ibt 虚拟机,开发平台是RK3308。

登陆开发板后,可以进入/oem 目录,里面有开发相关说明以及一些测试示例。

(一)连接设备

1、安置在 adb 环境:sudo apt install adb

snow@snow-machine:~$ sudo apt install adb

正在读取软件包列表... 完成

正在分析软件包的依赖关系树

正在读取状态信息... 完成

下列软件包是自动安装的并且现在不需要了:

snapd-login-service xdg-desktop-portal xdg-desktop-portal-gtk

使用'sudo apt autoremove'来卸载它(它们)。

将会同时安装下列软件:

android-libadb android-libbase android-libcutils android-liblog

下列【新】软件包将被安装:

adb android-libadb android-libbase android-libcutils android-liblog

升级了 0 个软件包,新安装了 5 个软件包,要卸载 0 个软件包,有 6 个软件包未被升级。

需要下载 141 kB 的归档。

解压缩后会消耗 428 kB 的额外空间。

您希望继续执行吗? [Y/n] y

获取:1
http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 android-liblog amd64 1:6.0.1+r16-3 [16.6 kB]

获取:2
http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 android-libbase amd64 1:6.0.1+r16-3 [9,014 B]

获取:3
http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 android-libcutils amd64 1:6.0.1+r16-3 [18.7 kB]

获取:4
http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 android-libadb amd64 1:6.0.1+r16-3 [53.2 kB]

获取:5
http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 adb amd64 1:6.0.1+r16-3 [44.0 kB]

已下载 141 kB,耗时 2秒 (48.3 kB/s)

正在选中未选择的软件包 android-liblog。

(正在读取数据库 ... 系统当前共安装有 215288 个文件和目录。)

正准备解包
.../android-liblog_1%3a6.0.1+r16-3_amd64.deb ...

正在解包 android-liblog (1:6.0.1+r16-3) ...

正在选中未选择的软件包 android-libbase。

正准备解包
.../android-libbase_1%3a6.0.1+r16-3_amd64.deb ...

正在解包 android-libbase (1:6.0.1+r16-3) ...

正在选中未选择的软件包 android-libcutils。

正准备解包
.../android-libcutils_1%3a6.0.1+r16-3_amd64.deb ...

正在解包 android-libcutils (1:6.0.1+r16-3) ...

正在选中未选择的软件包 android-libadb。

正准备解包
.../android-libadb_1%3a6.0.1+r16-3_amd64.deb ...

正在解包 android-libadb (1:6.0.1+r16-3) ...

正在选中未选择的软件包 adb。

正准备解包 .../adb_1%3a6.0.1+r16-3_amd64.deb ...

正在解包 adb (1:6.0.1+r16-3) ...

正在处理用于 libc-bin (2.23-0ubuntu11) 的触发器 ...

正在处理用于 man-db (2.7.5-1) 的触发器 ...

正在设置 android-liblog (1:6.0.1+r16-3) ...

正在设置 android-libbase (1:6.0.1+r16-3) ...

正在设置 android-libcutils (1:6.0.1+r16-3) ...

正在设置 android-libadb (1:6.0.1+r16-3) ...

正在设置 adb (1:6.0.1+r16-3) ...

正在处理用于 libc-bin (2.23-0ubuntu11) 的触发器 ...

2、查看安装结果:adb version

3、查看硬件是否连接:adb devices

4、连接硬件:adb shell

(二)WIFI连接

1、进入/data/cfg 进行wifi配置:cd /data/cfg

使用 vi 编辑 wpa_supplicant.conf:vi wpa_supplicant.conf

在设置好 wpa_supplicant.conf 后,可以通过如下命令来重新联网:

注意:第一次操作,调用 wpa_cli reconfigure 命令出错:

切换联网命令:wpa_supplicant -B -i wlan0 -c

虽然显示操作成功,但是查看网络连接,发现还是未成功连接(可以看到wlan0并未显示IP地址):

重启系统(如果一次不行,可以进行多次重启),最后成功了(可以看到wlan0显示了分配的IP地址-192.168.1.110):

(三)运行语音识别示例

进入/oem目录,查看语音能力相关文件: cd oem

查看文档说明:cat readme.txt

根据文档,相关文件应该在data目录下,但是实际操作发现,相关文件在oem目录下,故进入oem目录,执行操作:

主要是运行以下四个命令(该命令是修改权限,启动 alsa_audio_main_service服务,根据说明书,使用语音识别功能需要先启动alsa服务):

执行上述命令后,可使用ps命令检测alsa服务是否正确启动:ps –A|grep alsa

根据说明书,BDSpeechSDK 目录下的sample目录中包含语音识别示例,由于语音识别运行时依赖lib、resources、extern目录中的库及资源文件,所以我们需要在启动时共享库。

进入目录,运行语音识别示例:

“小度小度,今天天气怎么样”的识别结果:

可以发现,本开发套件采用了流式识别,附带中间结果!

(四)语音识别效果测试

通过距离远近,语速快慢,中间是否有隔离物(隔离物为电脑桌,显示屏)等方式,对本开发套件进行了一次粗略的测试:

一米处:

有隔离:“一米一次唤醒测试”

有隔离,语速较快:“一米二次唤醒测试”

有隔离,语速较快:“今天天气怎么样”

无隔离,正常语速:“一米三次唤醒测试”

无隔离,语速较快:“今天天气怎么样”

2米处:(无隔离,正常语速)

“两米一次唤醒测试"

“两米二次唤醒测试”

“天天气比较凉爽”

3米处:(无隔离,正常语速)

“三米一次唤醒测试”

“三米二次唤醒测试”

“听说明天有台风”

5米处:(无隔离,正常语速)

“五米一次唤醒”

“五米二次唤醒”

“台风来了怎么办”

6米处:(无隔离,正常语速)

注:首先需要较大声唤醒小度,唤醒后,可识别正常音量的声音:

“六米一次唤醒”

“六米二次唤醒”

“今天天气好晴朗”

测试结果:

经过上述的语音识别测试,可以发现,本套件在5米内可以达到比较良好的唤醒、识别效果,超过5米后,唤醒、识别效果下降比较明显。

另外,对于一般性的用语,识别相当准确(即使达到6米,也能比较准确的识别),但是对于读音相近的词语(“一米”-“玉米”,“两米”-“杨幂”等),识别准确性就有点差了(也可能跟发音有关)。

发音源跟套件之间是否有隔离物(非完全隔离),对识别的影响不是很大(没有读音的影响大)。

语速不是很快的情况下,一般也能正常识别。

总体而言,对识别结果影响较大的,除了距离外,就是读音相近的词语(发音)了。

(五)蓝牙连接

输入命令 :bt_realtek_start即可启动蓝牙:

打开电脑的蓝牙,可以发现名为realtek_bt的蓝牙设备,尝试进行配对:

配对成功:

配对成功后,就可以用蓝牙进行音乐播放等操作了。

断开蓝牙连接:

测试发现的问题:

1、初次打开蓝牙播放音频时,声音过大,调整声音后,又发现最大声音音量有的小了。

2、虽然本套件蓝牙可以一次性连接多个蓝牙(我尝试了连接两个蓝牙设备),但是,两个连接成功后,当用一个蓝牙设备播放音乐,然后停止,再用另一个蓝牙设备播放音乐时,发现播放失败,只能用之前的那个蓝牙设备播放音乐。

(六)录音、播放音频测试

查看tmp目录内容:cd tmp

进行录音:arecord -D hw:2,0 -c 8 -r 16000 -f S16_LE /tmp/test.wav

结束录音后,查看目录文件信息:

使用 aplay 命令就可以播放录音文件:aplay test.wav

录音效果还是不错的。

(七)语音合成测试

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

进入语音合成示例目录: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

(八)交叉编译

1、下载SDK

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

我这里就直接将整个/oem目录下载放到了“下载”目录。

2、交叉工具链:

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

我这里将交叉编译链复制到虚拟机的桌面上了。

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

创建如下的目录结构:

编写(copy) sample代码

目录sample/wakeup/src中的e2e_wp_asr_test.cpp中有相应的demo代码,这里我就直接将wakeup/src中的sample代码拷贝到这里替换main.cpp

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

编写(copy) Makefile代码

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

尝试编译:

配置完成后,需要在Makefile所在的目录执行:

上述语句中的 /home/snow/桌面1/rk3308_arm_tool_chain 代表着工具链rk3308_arm_tool_chain的根目录/bin,如果路径填写错误,会出现如下错误:

make:
arm-rockchip-linux-gnueabihf-g++:命令未找到

可以进入rk3308_arm_tool_chain 目录 ,使用pwd命令获取rk3308_arm_tool_chain 的路径:

使用正确的路径,重新编译:

如果出现上述错误,说明缺少alsa的so库,我们可以从oem目录中pull一个文件下来。他在/oem目录下,名为
libbd_alsa_audio_client.so。将它复制到BDSpeechSDK/lib下,这个目录专门放外部依赖的库文件,这个也放这里吧。

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

编译成功,发现工程目录下多了一个main文件,这就是我们编译好的可执行程序了。

将main可执行程序复制到/tmp目录(tmp目录在断电后会清空)下:adb push ./main /tmp

运行程序:

LD_LIBRARY_PATH=/oem:/oem/BDSpeechSDK/lib:/oem/BDSpeechSDK/extern/lib ./main

出现错误:

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

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

我们看一下代码。在wakeup_config函数中,可以看到它配置dat文件的路径,是
../../resources/asr_resource/esis_resource.pkg

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

然后重新编译,adb pushtmp下,

还是这个错误,那是因为虽然改了文件路径,但是我们还没有把 esis_resource.pkg 也push到tmp文件夹里,进入 /home/snow/下载
/oem/BDSpeechSDK/resources/asr_resource 文件夹,执行
adb push ./esis_resource.pkg /tmp:

再次执行,出现错误:error:-1, domain:10,
desc:alsa_audio_client_open failed, sn: ,

因为我们的main也依赖于alsa的服务,所以需要开启alsa服务:

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

执行成功后,再次运行main程序:

cd /tmp LD_LIBRARY_PATH=/oem:/oem/BDSpeechSDK/lib:/oem/BDSpeechSDK/extern/lib ./main

执行成功。

(九)交叉编译-语音合成

按照上面的方法,我们可以编译一下语音合成示例(可以把合成的文字改为自己喜欢的,我这里就改成了“Hello World,今天时七夕情人节,中国的传统节日!”,有条件的,可以尝试输入文本,再合成语音)。

编译程序:

上述警告可以忽略。 把编译完成的可执行文件下载到开发板并运行:

出现错误,仔细查看源代码,发现main 函数中需要引用配置文件speech_sdk_log.conf,但路径为
../../resources/speech_sdk_log.conf:

并将speech_sdk_log.conf文件push到/tmp路径下:

重新执行:

LD_LIBRARY_PATH=/oem:/oem/BDSpeechSDK/lib:/oem/BDSpeechSDK/extern/lib ./main

执行成功,可以看到/tmp目录多了一个6832.pcm文件,运行命令 aplay -t raw -c 1 -f S16_LE -r 16000 6832.pcm,执行后,就能播放女生版的语音内容了。

三、产品建议

经过一个星期的测试,发现百度远场语音开发套件在语音唤醒、语音识别方面比较出色,识别率整体上准确很高,如果在发音相似的词语方面多加训练,效果会更好。此外根据个人的使用感受在产品的功能上提一些建议:

1、 提升音质,语音多样化

未来提供更多不同风格的发音人,并可以让用户自主选择,分别在进行购物、查询信息、播放音频资源等不同场景下有更多的音色供选择适配。让“小度”逐渐人性化、个性化。

2、 完善语音交互功能

提供更高质量的语音交互功能,加强对话理解和对话管理技术以及只是建设能力。通过不断的练习,让音箱能够更加“理解”用户的话语意思, 给用户提供更加准确的结果,轻松定制专业、可控、稳定的完整语音交互能力。

3、 音色识别

在语音交互中,通过声纹识别不同用户音色,根据音色判断交互内容并理解,可以将此功能利用在声纹解锁以及语音交互理解中,包括多人说话时执行命令的优先级。

语音交互未来可发挥的空间很大,但是现在的语音交互功能还不那么广泛的,不过相信只要坚持发展,保持数据收集、场景优化,未来一定会在各个领域有更深度的拓展。

相关推荐

驱动网卡(怎么从新驱动网卡)
驱动网卡(怎么从新驱动网卡)

网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...

2026-01-30 00:37 liuian

win10更新助手装系统(微软win10更新助手)

1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...

windows11专业版密钥最新(windows11专业版激活码永久)

 Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...

手机删过的软件恢复(手机删除过的软件怎么恢复)
手机删过的软件恢复(手机删除过的软件怎么恢复)

操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...

2026-01-29 23:55 liuian

一键ghost手动备份系统步骤(一键ghost 备份)

  步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。  步骤...

怎么创建局域网(怎么创建局域网打游戏)

  1、购买路由器一台。进入路由器把dhcp功能打开  2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。  3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...

精灵驱动器官方下载(精灵驱动手机版下载)

是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...

一键还原系统步骤(一键还原系统有哪些)

1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。  2、在弹出的“准备安装”窗口中,可...

电脑加速器哪个好(电脑加速器哪款好)

我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...

任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)

是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...

u盘怎么恢复文件(u盘文件恢复的方法)

开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...

系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)

1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...

剪贴板权限设置方法(剪贴板访问权限)
剪贴板权限设置方法(剪贴板访问权限)

1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...

2026-01-29 21:37 liuian

平板系统重装大师(平板重装win系统)

如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...

联想官网售后服务网点(联想官网售后服务热线)

联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...