时间:2024-05-18
卢嫚,陈佳悦
(西安工程大学电子信息学院,陕西西安 710048)
随着科技的发展和智能语音助手、智能音箱市场的逐渐成熟,人工智能浪潮下的语音交互已经成为最被人们所接受的交互方式[1]。智能语音互动超越了电子屏幕的局限逐渐扩展至人们的生活中,成为了新一代用户的主流交互方式,语音交互作为一种自然的人机交互方式,已经融入了各个领域,如智能家居、车载智能语音等[2-3]。智能音箱作为语音交互的功能产品,带给人们一种全新的体验[4]。与如今的智能手机相比,智能音箱的交互功能更加明确,使用轻松便利,提高了使用效率[5]。对于智能音箱的使用,无需用户进一步学习,无论小孩还是老人,都可以更好地使用。用户使用的要求降低,只需要用户说出来问题或要求即可[6]。
设置个性化的唤醒词。首先,需要创建一个配置文件以便于配置唤醒词,这个工作可以交给wukong-robot 辅助完成。在终端输入指令:利用cd wukong-robot 来打开wukong-robot 文件夹,接下来在wukong-robot 的根目录下执行python3 wukong.py[7]。
第一次启动后,提示用户目录下创建一个配置文件,输入 y 即可。配置文件将会保存在~/.wukong/config.yml 中。
对于设置个性化的唤醒词,先登录https://snowboy.hahack.com/网站,训练个性化的模型。再下载pmdl 模型并放到~/.wukong 中。最后修改config.yml 的model 配置,修改为已经训练好的模型的文件名。
个性化的snowboy 唤醒词训练界面如图1 所示,需要3 个语音示例训练唤醒词,合成一个.pmdl 文件,即训练成的上传文件。
图1 个性化唤醒词设置界面
本文训练的唤醒词为“嘿小婷”,经过多次训练后,可以正常识别及运行。
结合语音理解 NLU(Natural Language Understanding,自然语言理解)的对话功能,整个对话的设计流程如图2 所示。
UNIT(Understanding and Interaction Technology)是百度AI推出的可定制的对话开发系统。
先设计一个最简单的版本,首先通过关键词“打个招呼”来触发这个插件响应,无需任何配置项,需处理用户的指令,直接回复“hello world”。
3.3 早期干预对促进儿童语言发育和预防心理问题意义重大 正常的听力是进行语言学习的前提。而听力障碍的儿童由于缺乏语言刺激和环境,不能在11个月前进入呀呀学语期,在语言发育最重要和关键的2~3岁内不能建立正常的语言学习,轻者导致言语障碍、社会适应能力低下、注意力缺陷和学习困难等心理行为问题,严重者会导致聋哑。本县确诊为听力障碍的103例婴儿均得到及时有效的干预及治疗。对听力障碍儿童均进行了心理行为发育筛查和跟踪随访,89.32%的儿童心理行为发育正常,可疑和异常儿均在进一步的康复治疗中。
训练百度平台UNIT 的技能[8],首先在百度UNIT中训练这个技能。注册登录百度UNIT 后,在“我的技能”面板中点击“新建技能”按钮,在弹出的窗口中填好信息,完成创建。之后创建一个对话意图。
进入这个技能面板后,点击“新建对话意图”,新建一个名字为HELLO_WORLD 的意图,并填好相关的信息。百度UNIT 的新建技能面板如图3 所示。
图3 新建技能面板
在上面已经定义了一个名字为user_person 的可选词槽,用来确定要向谁问好。在创建的时候,可以复用UNIT 自带的sys_pe,其中可以是人物,包含虚拟人物在内的各类人名的系统词槽,还可以根据需要再添加一些自定义词典。
接下来在左侧面板点击“训练数据”的“对话样本集”,在对话样本集面板中点击“新建对话样本集”,创建样本集。
创建好对话样本集后,训练UNIT 技能这一步已经完成,完成后就可以对该技能进行训练和测试,先确保模型正常工作,并且不会被误判为其他技能。如果判断不理想,可以继续补充,直到结果符合预期为止。
配置完成后,则实现了结合NLU 的对话功能,如果需要更多的对话,也可以按照这个方法,在百度UNIT 上继续载入自己的样本集。
清除缓存这个功能对于计算机来说是必不可少的,可以增加使用寿命、避免卡顿,是一个有真正用途的普通技能插件。为了节省用于语音合成所消耗的时间,wukong-robot 支持将语音文件缓存到temp 目录中,但是如果使用时间久,目录里的文件数量就会越来越多,会占用大量的设备存储空间。另外,如果语音合成配置改了发音人的音色,没有清理已有的缓存语音,也会导致wukong-robot 使用过程中混杂多种音色的奇怪体验。清除缓存是必不可少的,流程如图4所示。
图4 清除缓存设置流程框图
清除缓存配置文件如图5 所示。
图5 清除缓存配置文件
本文中将此插件设计成只要指令中包含关键词“清除缓存”“清空缓存”“清缓存”就可触发这个插件响应。且无需任何配置项,无需处理用户的指令,直接清除缓存,并告知用户“缓存目录已清空”。
为保证唤醒词设置不出现错误,先使用唤醒词为默认唤醒词“孙悟空”。终端输入指令python3 wukong-robot.py,运行成功后,可以进行功能测试,如进行沟通交流,是否能理解语义及进行反馈。语音交互对话的界面如图6 所示,可以实现基本的智能音箱设计中的聊天对话功能。
图6 语音对话显示
语音接收信息无误后,可以对前文中设计的天气查询技能进行简单的测试,对天气查询功能的测试如图7 所示。经过提问,可以准确回答出天气如何,则功能设计也基本成功,可以满足设计需求。
图7 天气查询显示
此外,wukong-robot 在运行时默认启动后台管理终端,不仅提供远程对话和更改配置视图,还提供日志显示等功能。其默认地址为http://localhost:5000,默认账户名为wukong,默认密码为wukong@2019。后台管理端的显示界面如图8 所示。
图8 后台管理端
也可以直接在终端启动wukong-robot 进行运营管理。终端关闭,wukong-robot 进程可能会消失。要想在后台保持运行,可以在tmux 中运行。
如果出现wukong-robot 在运行时反应速度太慢的情况,反馈交互有时发生后需要2 min。经过测试,这通常与网络环境有很大关系,例如由于防火墙而无法访问某些服务。此时可以运行wukong-robot:python3 wukong.py profiling,在每一次交互后,显示出当次交互的性能数据。
如图9 显示的是性能调优数据,用长方形框显示列堆积了处理每个任务所需的时间,如果该列下降并发现数量突然变小,则第一行是最大的黑手。执行python3 wukong.py help 可以了解更多命令行用法。
图9 性能调优数据
若使wukong-robot 暂时不监听不授权,可以在配置文件中设置hotword_switch 为true,可以更好地保护用户的隐私安全,防止被监听、信息泄露等。
经过测试,符合预期的3~5 m 的收音范围,由于远场唤醒距离与场合的安静与否、说话声音大小、距离远近都有关系。在较为安静的场合时,以麦克风为半径的5~7 m 内的圆内都可以较为清晰地收音,若为较为嘈杂的场合,收音半径小于3 m。
本文设计了基于树莓派的智能语音交互系统,利用wukong-robot 开源库及百度语音转换等提供的通信协议以及采用API接口来实现人机交互中的语义理解、语音转换,最终设计出一个具有个性化的智能音箱。系统有成本低、功能强大、体积小、功耗低及便于实现等优点,结合AI语音交互,制作了一款陪伴型机器人,可运用于各个领域,如智能家居、智能车载等。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!