智能导盲拐杖的语音交互方法

2024-09-14 00:00:00刘世龙谢典唐志远吴昊华莲莲李春华
物联网技术 2024年3期
关键词:语音识别

摘 要:文中设计出一款多功能智能拐杖,可以实现路径规划、自主导航、物品识别、语音交互等功能,最重要的是可以让老人对智能拐杖进行语音控制,使之更加便捷化、智能化,从而更好地为老人服务。语音交互功能采用STM32F405作为底层开发板,分为语音识别、语音合成以及语音控制等部分。

关键词:智能拐杖;语音交互;STM32;语音识别;语音合成;语音控制

中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2024)03-0-03

0 引 言

在当代,人口老龄化程度不断加深,整个社会对老年人的关注度也越来越高,老年人的行动安全也受到格外的重视[1-3]。老年人常用的传统拐杖具有功能单一、智能化程度低等缺点,无法真正满足老年人的行动需求[4-6]。因此,亟需一款更加便捷、智能的拐杖,能够更好地为老人服务。为此,本文设计一款多功能智能拐杖,可以实现路径规划、自主导航、物品识别、语音交互等功能,方便老人日常生活和出行。

1 系统总统方案设计

语音交互模块主要由语音导航、语音识别、语音合成、语音控制四大部分组成。主要功能可总结为:语音识别、语音合成、智能聊天、语音导航、语义分析、语音唤醒、语音打断、多媒体服务等。

语音交互模块由Jetson Nano机器人、USB外部麦克风、音响三部分组成。在Ubuntn开发环境中打开终端,通过SSH远程连接机器人,输入roslaunch huanyu_speech robot_speech.launch启动机器人语音交互功能。具体系统总体设计方案如图1所示。

Jetson Nano机器人通过USB麦克风将音频信号传送到语音识别模块,经过ASR转化得到的文字作为参数发送给图灵机器人,图灵机器人经过与数据库中的数据进行对比运算,返回为答复用户所需要的文本文字,Jetson Nano将得到的文本进行语音合成,最后通过音响播报给用户。具体流程如图2所示。

2 系统硬件设计

采用STM32F405作为底层开发板[7-8],根据需求开发设计上位机,确保对相关功能所需的程序进行编译;同时实时接收LD3320A通过ADC数模转换得到的音频信号,将接收到的音频信号转化为所需要的数据信息;通过特定的运算步骤,并且运用交互逻辑向SYN6288传输数据,运行合成语句的代码,由外部USB麦克风播报。硬件原理框图如图3所示。

2.1 语音识别电路设计

语音识别电路主要由SPCE061A和集成功率放大器SPY0030组成。语音信号经过SPCE061A的DAC引脚,被输送到电路的J4端口处;通过R9音量电位器的调节,将信号送到集成功率放大器SPY0030。SPY0030的原理就是利用三极管的电流控制作用或场效应管的电压控制作用将电源的功率转换为随输入信号变化的电流。语音识别电路如图4所示。

2.2 语音合成电路设计

语音合成模块采用SYN6288中文语音合成芯片,SYN6288通过异步串口(UART)通信方式,接收待合成的文本数据,实现文本到语音(或TTS语音)的转换;支持GB2312、GBK、BIG5和UNICODE内码格式的文本,支持多种控制命令,包括合成、停止、暂停合成、继续合成、改变波特率等。同时,支持多种控制命令,包括合成、停止、暂停合成、继续合成、改变波特率等。具体电路设计如图5所示。

3 系统软件设计

在Ubuntu开发环境中,使用robot_speech.launch来启动语音交互功能。从语音交互的启动文件 robot_speech.launch 中我们可以看到一共启动了4个节点,它们对应的功能如下:

(1)机器人的智能聊天服务(question_to_answer.py):调用图灵机器人智能聊天平台,以服务的形式供客户端调用。

(2)机器人的语音合成功能(text_to_speech.py):调用百度在线语音合成API,分别以服务和话题订阅回调形式封装,支持用户的服务调用和话题发布;并且在合成语音后,直接播放。

(3)机器人的语音控制中心(speech_control.py):订阅语音识别的结果,进行语义分析、控制命令提取;然后发布语音控制命令,比如发布导航命令、调用智能聊天服务、播放本地歌曲库等[9];可以根据具体格式自定义所需的控制命令。

(4)机器人的语音识别、语音唤醒、语音打断功能(speech_recognize.py):调用了百度在线语音识别AP进行语音识别。

3.1 语音识别

语音识别采用的是百度在线语音识别技术,调用短语音识别标准版[10],具体实现采用REST-API-PythonSDK。源文件:huanyu_speech功能包中的script目录下的speech_recognize.py。

调用语音识别接口代码如下:

result = client.asr(get_file_content(baseDir + 'resource/listen.wav'), 'pcm', 16000, { 'dev_pid': 1537,

})

其中参数dev_pid表示识别的语言为普通话(纯中文识别),不同参数下的模型见表1所列。

3.2 语音合成

语音合成采用的是百度在线语音合成技术,具体实现采用 PythonSDK。源文件:uanyu_speech 功能包中的 script 目录下 text_to_speech.py。

调用语音合成接口如下:

result= client.synthesis('合成语音的文字', 'zh', 1, {'vol': 10,})

其中:'zh'表示语言选择,目前只有中英文混合模式,填写固定值zh;'vol'表示合成音频的音量。具体参数类型见表2所列。

3.3 语音控制

在语音识别之后,可以对识别的内容进行筛选,提取相应的语音命令。在huanyu_speech功能包config目录下的speechCommand.json中配置。在该配置文件中按照已有的命令格式,并在此JSON文件中添加新的语音控制指令,示例如下:

{

\"command\": [

\"唱首歌\",

\"唱一首歌\",

\"唱个歌\", \"唱歌\"],

\"type\": \"sing\", \"code\": 1,

\"reply\": [

\"小主人马上为你播放音乐!\",]

}

其中:command参数为语音控制指定内容,为字符串数组,即同一个操作可以对应多个语音指令,灵活性更高;type为语音指令的类型,可以自行设定,用于区分不同类的语音命令;code为语音指令对应的编码、整型,同一类型下的指令以此参数区分;reply为设定的机器人回复内容。

3.4 自定义提示语

在设计过程中,我们想让机器人在特定情况下播放设定的提示语。例如机器人语音交互包依赖于网络,若检测没有网络时,播放提示语来提醒用户配置网络;或者在机器人完成某项任务时,提示用户任务完成;导航中,提示导航开始、导航失败、导航成功。

本部分将在huanyu_speech功能包中config目录下的warnAudio.json中进行配置。命令如图6所示。

然后开始合成提示语,并播放出来,最后在终端上打印提示语生成情况的统计数,若失败数为0,说明全部合成成功,如图7所示。

4 结 语

本文设计了基于Jetson Nano的多功能智能拐杖,针对其中的语音交互模块,从硬件和软件的设计出发,进行了系统全面的介绍。该模块在很大程度上体现了多功能拐杖的智能化,为老年群体使用拐杖提供了更大的便利,同时对智能化助老设备的推广和智能语音交互技术的普及应用有较大的促进意义。

参考文献

[1]马可,何人可,马超民.基于语音交互的家用智能扫地机器人体验设计研究[J].包装工程,2020,41(18):118-124.

[2]康婷,沈雷,周帅.具有防摔检测预警的老人智能服装设计研究[J].毛纺科技,2021,49(4):70-75.

[3]杨帆,雷迪.基于STM32设计的避障小车[J].制造业自动化,2021,43(3):40-43.

[4]付蔚,唐鹏光,李倩.智能家居语音控制系统的设计[J].自动化仪表,2014,35(1):46-50.

[5]王璟珣,滕召胜,高云鹏,等.嵌入式盲人手机语音识别与控制系统设计[J].计算机测量与控制,2009,17(10):1951-1954.

[6]屈瑾.基于语音识别的智能交互系统设计[J].自动化与仪器仪表,2023,43(1):221-225.

[7]李渊博,马豪杰.语音交互空调遥控器的设计[J].内江科技,2022,43(8):67-68.

[8]程颖.基于智能语音交互的多媒体阅读辅助系统设计[J].自动化与仪器仪表,2022,42(2):112-115.

[9]贾志成,田祺,周婕妤,等.基于STM32的外加式电梯语音交互按键系统[J].信息科技,2022,40(2):313-318.

[10]张许如,任龙,攀婧,等. AI语音交互智能座椅控制器的设计与开发[J].自动化技术,2023,13(2):122-125.

猜你喜欢
语音识别
通话中的语音识别技术
面向移动终端的语音签到系统
农业物联网平台手机秘书功能分析与实现
物联网技术(2015年9期)2015-09-22 09:34:29
基于LD3320的非特定人识别声控灯系统设计
基于语音识别的万能遥控器的设计
基于Android手机语音和Arduino控制板的机器人控制系统
物联网技术(2015年3期)2015-03-31 15:03:32