订阅
纠错
加入自媒体

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

2019-10-29 14:21
来源: 粤讯

(五)蓝牙连接

输入命令 :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 push到tmp下,还是这个错误,那是因为虽然改了文件路径,但是我们还没有把 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 /tmpLD_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  4  下一页>  余下全文
声明: 本文系OFweek根据授权转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

    人工智能 猎头职位 更多
    扫码关注公众号
    OFweek人工智能网
    获取更多精彩内容
    文章纠错
    x
    *文字标题:
    *纠错内容:
    联系邮箱:
    *验 证 码:

    粤公网安备 44030502002758号