王亚磊 季晔 李彬 冯崇 丁文豪
摘 要:为改善人们的生活体验,提高人们生活的自动化、智能化水平,设计一款基于语音识别的智能分类垃圾桶,实现垃圾桶实时联网、智能分类等功能。该垃圾桶采用Kaldi工具对输入音频进行处理,实现语音识别,识别结果通过串口通信经上位机传输给单片机,单片机控制舵机转动,实现对垃圾的分类。同时,垃圾桶的内置传感器可以实时获取垃圾桶内温度等状态信息,并通过ESP266模块上传云端,能够让用户在APP终端实时了解垃圾桶内的情况。该设计成本低廉,分类准确率高,可用于智能家居等多种场景,有着广阔的应用前景。
关键词:语音识别;智能垃圾桶;Kaldi;垃圾分类;智能化;人工智能
中图分类号:TN912.34 文献标识码:A 文章编号:2096-4706(2023)17-0156-04
Design and Implementation of Intelligent Classification Garbage Bin Based on Speech Recognition
WANG Yalei1, JI Ye1, LI Bin1, 2, FENG Chong1, DING Wenhao3
(1.School of Intelligent Manufacturing, Luoyang Institute of Science and Technology, Luoyang 471023, China; 2.Henan International Joint Laboratory of Cutting Tools and Precision Machining, Luoyang Institute of Science and Technology, Luoyang 471023, China; 3.School of Mechatronics Engineering, Henan University of Science and Technology, Luoyang 471003, China)
Abstract: To improve people's living experience and enhance their level of automation and intelligence, a speech recognition-based intelligent classification garbage bin is designed to achieve real-time networking and intelligent classification of garbage bins. The garbage bin uses Kaldi tool to process input audio and achieve speech recognition. The recognition results are transmitted to the Single-Chip Microcomputer through serial communication through the upper computer, and the Single-Chip Microcomputer controls the rotation of the servo to achieve garbage classification. At the same time, the built-in sensor of the garbage bin can obtain real-time temperature and other status information inside the garbage bin, and upload them to the cloud through the ESP266 module, allowing users to understand the situation inside the garbage bin in real time on the APP terminal. This design has low cost, high classification accuracy, and can be used in various scenarios such as smart homes, which has broad application prospects.
Keywords: speech recognition; intelligent garbage bin; Kaldi; garbage classification; intelligence; artificial intelligence
0 引 言
隨着经济的发展,人们物质生活日益丰富,同时也产生了大量的垃圾。过去垃圾的处理方式通常是焚烧、掩埋,对空气和土壤造成了严重的污染。在此情况下,2017年国务院办公厅下发《生活垃圾分类制度实施方案》,此举加速了垃圾分类的推进与实施。垃圾经过分类,再进行处理减少了对环境的污染,提高了垃圾的回收利用率。本文根据垃圾分类过程中的痛点,介绍了一种基于语音识别的智能分类垃圾桶,将垃圾分为可回收垃圾、厨余垃圾、有害废物和其他废弃物4种类型。
本文通过语音识别技术,实现无接触垃圾投放并进行分类,提高垃圾的回收率。语音识别运用Kaldi工具对输入语音进行信息处理,实现语音识别并分类,经上位机通过Python程序中的串口通信功能将识别结果传输给单片机,单片机控制对应垃圾种类的舵机转动并用语音播报模块播报垃圾种类。温度传感部分采用DS18B20温度传感器识别垃圾桶内温度并由数码管外部显示,利用ESP8266模块将温度信息上传至物联网平台,使用户在手机端可远程查看垃圾桶的环境温度,避免发生安全问题。
1 智能分类垃圾桶的结构与原理
1.1 智能分类垃圾桶的结构
智能分类垃圾桶由底座、4个扇形垃圾桶、垃圾投放机构等部分组成,其构成及外形如图1所示,
1.2 智能分类垃圾桶的原理
如图2所示,智能分类垃圾桶的工作原理为:将垃圾放在入口的转盘上,通过输入垃圾类型的自然语言指令,麦克风将收集到的音频信息,传送给装有Kaldi的上位机,Kaldi将识别结果传送给STC89C51主控芯片,主控芯片控制舵机执行指令,旋转一定角度,实现垃圾投放,同时语音播报模块输出所投放的垃圾类型。智能垃圾桶内置DS18B20温度传感器,一方面通过STC89C51主控芯片,将垃圾桶内温度传输到温度显示模块;另一方面,通过ESP8266模块,将垃圾桶内温度上传到Wi-Fi模块,用户可以在无线终端实时观察内部温度,此功能可实现高温报警,防止内部着火。
2 Kaldi语音识别原理与模型的搭建
语音识别目前应用于手机、计算机、平板电脑和其他类型机器,使机器能够接受、处理、识别和理解人类话语,它使用自然语言作为输入来触发动作,使我们的设备能够响应我们的口头命令。Kaldi是一种先进的自动语音识别(ASR)工具包,包含目前在ASR系统中使用的几乎所有算法,以及详细的文件和脚本用于构建完整的识别系统。本文Kaldi的使用在Linux系统下安装和运行。
Kaldi对收集的音频信息进行采样频率转换、去噪等预处理,然后将音频信息转换成特征向量,进行语音模型训练,获得声学模型。工作过程中,通过对实时获取的音频信息进行解码,得到最终的识别结果。解码中,先使用声学模型统计各个音素的概率,然后用语言模型对音素评分,获得最终识别结果。
在语音识别中,Kaldi可以对语音作信号处理,借助声学模型和语言学模型,解码获得语言文本。图3是语音识别的过程。本文使用Kaldi工具,根據实际需求搭建自己的声学模型和语言模型,帮助完成语音识别。Kaldi的数据准备需要4个文本内容——wav、spk2utt、utt2spk和text。其中,wav文本包含了音频编号和音频的绝对路径,spk2utt包含了音频编号和对应的发音着编号,utt2spk包含了说话人编号和此人所有的音频编号,text则是每个音频中的发音文本,如表1所示。
发音词典(Lexicon)表示了每个字、词与音素之间的对应关系,用来把声学模型和语言模型连接起来,用于解码工作。Lexicon文件中包含了音频文本中所有词汇与音素之间的对应,一般还需要对音频文本进行分词操作,由于本次录制音频内容都为词汇,则可以直接进行音素对应。为了获取每个词的发音,可以下载中文语音的发音词典集,本次采用了清华大学实验室的中文语音数据集中的词典。将所有的词汇与音素对应后,存储在Lexicon中,其中SIL表示静音音素。如图4所示。
根据发音词典和静音因素的结合,可以由Kaldi工具中的prepare_lang.sh生成L.fst,构成有限状态转换器。有限状态转换器每个状态节点通过弧线相连,每条弧上包含了输入和输出内容,还有相应的权重。L.fst中包含了每个词汇从初始状态到末端状态的路径,路径上包括输入的音素以及输出的词。Kaldi工具中具备的绘图功能,可以将fst可视化输出。
对text分词处理,可以获得语料,由于本次设计中词汇并不需要做分词处理,可以将text直接当作语料处理。在对语料中词汇做统计处理后,运用Kaldi中的ngram-count命令,可以获得语料的统计文件以及一元的语言模型。利用生成的语言模型,使用Kaldi工具的format_lm_sri.sh命令,即可获得G.fst。如图5所示。
mfcc特征中保留了音频中语义部分的内容,过滤掉背景音等无效音素,对音频运用make_mfcc.sh和compute-cmvn-stats.sh命令提取声学特征和计算倒谱均值方差归一化系数后,就能利用train_mono.sh命令结合L.fst和G.fst训练单因子声学模型。考虑到音素的发音通常受相邻音素的影响,还需要进一步训练三音子模型。将训练出的三音子模型导入Kaldi的online_demo项目下,即可利用麦克风或者音频文件进行语音识别,输出文本。
3 硬件选型
当前单片机芯片的种类有很多,根据实用性和可操作性,最终选择了宏晶公司生产的STC89C52RC芯片。输入音频,经上位机语音识别后,会输出垃圾种类。编写的Python程序可以读取垃圾种类,并将其利用Python中的串口通信功能发送给单片机,用来控制舵机和语音播报模块的运行。
舵机是常见的执行部件,可以用在需要较为精确地控制角度变化的控制系统,通常用于遥控玩具中,也可以用在小型机器人项目中。本装置选用简单可控的SG90舵机,其价格便宜,应用较广,可以用来模拟垃圾桶盖的开关。
在垃圾类别被识别出后,除了舵机模拟对应类别垃圾桶盖的开关,还需要语音播报模块用来外放垃圾种类,帮助居民掌握垃圾分类知识。DY-SV17F是一种语音播报模块,具有多种工作模式,板载32 MB大小的存储空间,可以直接通过USB接口传输音频文件来自定义语音播放的内容。
垃圾分类过程中,安全问题不容忽视。针对安全隐患,本文添加了温度检测部分。包含温度检测模块和Wi-Fi通信模块。目前用于温度检测的传感器种类有很多,如SHTC3、MCP9808T-E/MC、AD592、DS18B20等,本文选用了DS18B20,DS18B20具有体积小、接线方便、传输速率高等优点。该传感器正常运作下电压范围为3.0~5.5 V,零待机功耗,能够以0.5 ℃的精准度测量-10~+85 ℃的温度,支持自定义多精度的温度分辨率,在温度检测和控制系统中应用广泛。
程序中,初始化函数可以根据信号线的电平变化来判断传感器是否存在,写字节函数可以按位从低到高将数据发送出,读字节函数则按位读取从传感器传输过来的数据。DS18B20的各个功能是按照指令表,由单片机写入的命令来运行。
4 系统软件设计
舵机采用定时器作为定时时钟发出脉冲信号,根据定时器溢出公式计算出初值。选用定时器0输出脉冲信号,程序包括定时器初始化和定时器中断。初始化中包括设置定时器工作方式和设置初值等,初始化完成后,每达到重装载值就会进入定时器中断函数,定时器中断中将重置初值并计数,根据舵机的PWM周期按转动角度的占空比依次输出高低电平。
语音播报模块用于播报垃圾种类,采用IO触发模式,低电平触发,4个IO口分别控制播报4个垃圾类别。垃圾类别由上位机传输到单片机后,随即拉低对应IO口引脚。
上位机完成语音识别后,Python程序会读取识别的垃圾种类结果,利用serial库的串口通信功能将结果发送给单片机。
单片机的串口通信在初始化后,每当上位机传输数据时,单片机会进入串口中断,在中断中将数据存储在全局变量中,根据变量数值来判断垃圾的种类。
DS18B20温度传感器的控制需要严格按照时序图进行,在温度数据检测的过程中,需要编写传感器的初始化、写入字节和读取字节的功能函数。传感器初始化完成后,即可按照指令集向传感器写入转换温度并读取温度的命令,转换完成后,读取字节函数就能将转换后的温度数据存储在变量中。
为了避免局域网或者蓝牙传输数据的距离限制,本文将温度数据经ESP8266传输到物联网平台,物联网平台提供了远程可靠的数据通信功能,集成了设备管理、数据安全通信和消息订阅等能力,向下支持大量设备,允许设备数据发送到云端。阿里云生活物联网平台是阿里云搭建的一个公有云平台,提供了开发、调试、运维及管理等功能,可快速实现消费装置的智能化,支持开发设备在国内及海外激活。在该平台开发设备,平台提供了蜂窝、Wi-Fi、以太网等多种设备接入方案,设备下也提供了多种自定义功能。设备注册成功后,平台会提供用户名及密码,保障了用户隐私安全,同时支持多个设备接入。在人机交互方面,平台支持免开发的云智能APP功能及自由化的界面设计,界面中可绑定功能属性来显示属性内容,快速简便地实现设备界面的可视化。设备调试功能中,用户可调试设备下的各个功能,根据设备发送的内容对设备进行调整,排除故障。
ESP8266模块与单片机以串口通信方式传输数据,利用AT指令控制Wi-Fi模块运行。开始透传后,ESP8266模块会将从单片机发来的数据由TCP端口发送到阿里云服务器,实现单片机向云服务器的数据传输。
温度检测部分硬件如图示。单片机上电后数码管显示正常,温度数据经ESP8266模块传输到阿里云服务器,在云智能APP中同步显示,如图6所示。
5 结 论
本文将语音识别与垃圾分类结合,通过训练的语音模型完成语音识别,整个系统以单片机为主控制器,将语音识别后的信息以串口通信的方式从上位机传输给单片机。外设则搭配了舵机、语音播报模块、温度检测模块、显示模块和Wi-Fi通信模块。在获得语音识别结果后,舵机模拟对应种类垃圾桶的开合,语音播报模块播放垃圾种类。系统控制温度检测模块实时采集垃圾桶的环境温度,并通过两位数码管显示。温度信息还通过Wi-Fi通信模块传输到阿里云平台,通过云智能APP显示,使得可以远程观测温度,避免发生安全事故。通过实际结果测试,设定的垃圾种类词汇语音识别率达72%左右,温度检测值可以在数码管准确显示,阿里云平台调试结果正常,能够在APP界面观测到温度值,实现了温度信息的远程查看。
参考文献:
[1] 廖盛澨,曾俊,徐崇.基于Kaldi的智能语音识别在物联网中的应用研究 [J].电声技术,2022,46(1):10-13.
[2] 王凯.基于Kaldi的语音识别研究 [D].南京:南京邮电大学,2021.
[3] 李春雨.基于Kaldi的语音识别系统构建与调优 [D].长沙:湖南大学,2021.
[4] 彭燕子,柏杰,曹炳尧,等.基于Kaldi的AI语音识别在嵌入式系统中的应用研究 [J].工业控制计算机,2020,33(9):64-67.
[5] 张德良.深度神经网络在中文语音识别系统中的实现 [D].北京:北京交通大学,2015.
[6] 李娜,葛万成.语音关键词识别系统的模型训练及性能评价 [J].信息通信,2020(3):8-10.
[7] 陈康宁.基于深度学习的语音关键词检测技术研究 [D].广州:华南农业大学,2019.
[8] 温登峰. 基于循环神经网络的语音识别声学建模研究 [D].重庆:重庆邮电大学,2019.
[9] 杨胜捷,朱灏耘,冯天祥,等.基于Kaldi的语音识别算法 [J].电脑知识与技术,2019,15(2):163-166.
[10] 王成.基于深度学习的语音识别方法研究 [D].西安:西安工程大学,2018.
[11] 袁翔.基于HMM和DNN的语音识别算法研究与实现 [D].江西:江西理工大学,2017.
作者简介:王亚磊(1991—),男,汉族,河南平顶山人,助教,硕士,主要研究方向:机器人工程;季晔(1982—),男,汉族,江苏大丰人,副教授,博士,主要研究方向:机器人机构学;李彬(1982—),男,汉族,山东济南人,教授,博士,主要研究方向:先进制造技术研究;冯崇(1989—),男,汉族,河南驻马店人,讲师,硕士,主要研究方向:機器人系统集成;丁文豪(1999—),男,汉族,江西丰城人,硕士在读,主要研究方向:机械工程领域。