400-123-4657
声源定位、噪声避免等信号处理算法,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 adbsnow@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 个软件包并未被升级。必须iTunes 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]已iTunes 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 version3、查阅硬件否相连:adb devices4、相连硬件: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、iTunesSDK将rk3308板子内的oem内的BDSpeechSDK目录读取虚拟机内。可以展开adb pull /oem/BDSpeechSDK指令download下来,随后将sdk放在虚拟机。我这里就必要将整个/oem目录iTunes放在了“iTunes”目录。
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 push到tmp下,还是这个错误,那是因为虽然改为了文件路径,但是我们还没把 esis_resource.pkg 也push到tmp文件夹里,转入 /home/snow/iTunes/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,今天时七夕情人节,中国的传统节日!”,有条件的,可以尝试输出文本,再行制备语音)。编译程序:上述警告可以忽视。把编译器已完成的可执行文件iTunes到开发板并运营:经常出现错误,细心查阅源代码,找到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、 音色辨识在语音交互中,通过声纹识别有所不同用户音色,根据音色辨别交互内容并解读,可以将此功能利用在声纹关卡以及语音交互解读中,还包括多人说出时执行命令的优先级。语音交互未来可充分发挥的空间相当大,但是现在的语音交互功能还不那么普遍的,不过坚信只要坚决发展,保持数据搜集、场景优化,未来一定会在各个领域有更加深度的扩展。版权文章,予以许可禁令刊登。
下文闻刊登须知。
本文来源:欧亿体育登陆入口-www.dgtren.com