基于嵌入式的语音识别系统
2021-04-25肖武唐雅媛胡蓉潘学文
肖武 唐雅媛 胡蓉 潘学文
摘要:该文设计了基于嵌入式的语音识别系统。系统硬件需要实现与服务器连接生成二维码,对Led的驱动调用。系统软件则包括App应用的设计,科大讯飞语音识别技术的SDK移植、服务器的搭建以及TCP/IP协议与Socket通信机制进行网络通信交互的设计。App里的语音系统对A23中的Led具有高效的控制力,通过服务器的转发,Led能够对接收到的语音命令作出迅速的反应,从而进行相应的开灯或者关灯的操作。
关键词:A23;TCP/IP;App;语音识别
中图分类号:TN911-4;G434文献标识码:A
文章编号:1009-3044(2021)09-0193-02
开放科学(资源服务)标识码(OSID):
Speech Recognition System based on Embedded
XIAO Wu, TANG Ya-yuan, HU Rong, PAN Xue-wen
(School of Electronics and Information Engineering , Hunan University of Science and Engineering , Yongzhou 425199, China)
Abstract: This paper designs a speech recognition system based on embedded system.System hardware needs to be connected with the server to generate QR code, the LED driver call, the system software includes the design of App application, the SDK transplantation of iFlytek speech recognition technology, the construction of server and the design of network communication interaction between TCP/IP protocol and Socket communication mechanism.The voice system in the App has efficient control over the LED in A23. Through the forwarding of the server, the LED can make a quick response to the voice command received, so as to turn on or turn off the light accordingly.
Key words:A23; TCP/IP; App; Speech Recognition
在近几年来,随着物联网的发展,嵌入式技术的也开始更多的应用到了人类世界的方方面面,大家开始通过使用这项技术,让人类的生活越来越智能、高效、便捷。本文中的主要技术“语音识别”,就是一项能让人类智能生活变得更加智能的一项技术[1-4]。本文就是以嵌入式技术为基础,采用全志科技的A23主芯片和科大讯飞语音识别技术构建语音识别系统,应用于家居生活中,通过人说话实现对家中如卧室、厕所、厨房灯等的开关的远程控制,解放双手,实现人与机器之间交流。
1功能需求分析
本文旨在设计实现一个完整的语音识别系统,即用户可通过App中的智能语音模块对硬件端中的Led灯进行操控,实现其开灯或关灯的操作。本设计分为三个模块,即服务器、手机App端、硬件端,现对这三个模块功能的分析如下:
(1)服务器:采用技术成熟的C/S架構,同时在服务器中装载Sqlite3数据库存储用户信息,方便数据的交互;json自定义协议,为服务器处理上行和下行数据提供便捷;同时多线程的使用,也方便了大量数据的接收和发送;总而言之服务器在这期间是一个中转站的作用。
(2)手机App端:对自身信息存储处理,实现一人一账号的特点,保证其用户信息的隐私性和安全性;设计不同UI界面,具有注册、登录、刷新设备、扫描设备、命名设备、控制设备等六个界面;同时也是采用Socket通信方式与服务器建立连接,Json协议进行数据上下行传输,通过扫描上FSPAD-723的二维码绑定该设备;可通过语音或者按键触发的方式控制Led。
(3)硬件端:采用全志A23处理器,其性能稳定、功耗低,经过二度开发的FSPAD-723平板操作简单,节省了开发步骤。可在App应用中写入socket通信机制方便与服务器通信;同时添加生成二维码的功能,以便APP对其扫描和绑定;且该芯片已具备linux内核驱动,对LED的jni层与其应用层建立本地连接,方便对其驱动的调用。
2系统总体方案
该系统以C/S构架服务器作为数据中转站,App端和全志A23硬件端与服务器之间采用 SOCKET进行连接通信,各模块遵循 JSON协议从服务器接收指令和上传数据信息,这样各模块就能与服务器进行数据传输了,如图1所示。
首先服务器通过连接家用路由器的WiFi热点通网,搭建本地局域网,将其他模块连接进来。服务器可以将各个模块的数据汇集和作为转发中心可对接收的数据处理,从而在服务器后台上可显示各模块数据。用户使用手机App连接到服务器,在识别语音命令后,将其发送给服务器,服务器将命令转发给向全志A23芯片,芯片上的LED灯根据命令执行相应操作。
3系统关键技术
3.1语音识别技术
由于语音识别算法的复杂性,为了开发工作尽可能的简洁、方便、易理解,决定使用科大讯飞完备的语音识别技术。
首先需要在科大讯飞服务器上申请语音识别的应用,并获取它的APPID;然后下載其SDK,每个应用根据不同的功能会产生不同的SDK和对应的APPID,不匹配则不会成功;将SDK中的源码关于APPID的部分替换成自己的ID。SDK中会有已经训练好的语音转换成字符串的模型。在activity文件中设置“开灯”与“关灯”的语音模型,App应用需要在联网的情况下,长按语音的Button的按键进行对声音的监听,通过人说话的“开灯”或者“关灯”声音的捕捉,将语音信息上传至讯飞云端服务器中,按照规定的语法标准获取语音中的关键字,并形成Json字符串返回至App中,并Toast出来。最后将其Json字符串的命令通过标志位发送给服务器,再由服务器进行转发给硬件端,以此实现控制LED灯,具体流程如图2所示。
3.2二维码生成技术
在mainActivity中直接调用Zxing库的方法传入url参数即可生成二维码,具体流程为:首先创建QR二维码图片方法(设置QR二维码参数、编码方式、二维码的内容、生成一个由true和false组成的QR二维码数据),二维码的参数为:编码内容url地址、编码类型、生成图片宽度、生成图片高度;然后将输入EditText的字符串进行编码,将其转化成bitmap格式;然后运用二维码数据创建Bitmap图片;将创建的bitmap图片用最高的效果显示;将颜色数组生成bitmap图片颜色。
3.3用户App界面和功能设计
UI 是一个应用程序展现给用户的界面,也就是layout。本文设计了六个界面,分别是登录、注册、扫描、添加设备名称、刷新设备、控制界面。
每一个XML文件都会自动跟随一个Activity文件,Activity文件内的Intent 可以实现不同 Activity 之间的切换和数据传递。这里采用的Socket通信机制与服务器连接,JSON协议内容与服务器一致,同时在Handle处理函数中添加线程方便接收和发送消息。手机端App的功能分为登录、注册、设备、扫描和控制等。登录流程如图3所示。
(1)注册:有设置用户名、密码和确认密码的功能,保证用户的安全性;还有确认按钮和返回按钮;若设置的用户名和密码是之前注册过的,点击确认按钮后,则提示该用户已存在,界面不跳转,需要重新注册新用户信息;如填写错误或不填,则会提示用户账号或密码输入不正确或为空,界面不跳转;只有填写正确才会跳转到登录界面;除此之外,点击返回按钮,即可跳转到上一个界面。
(2)设备:登录成功后跳转到设备端,界面有扫描和刷新设备的按键;点击扫描会跳转到扫描界面,点击刷新设备,则会显示可控设备;除此之外,点击返回按钮,即可跳转到上一个界面;
(3)扫描:进入界面后,自动打开手机摄像头扫描二维码,识别成功后给设备取个名字,便于区别各个受控设备,然后回到设备界面;
(4)控制:点击选定的要控制开关的设备名称,则会跳转到控制界面,有语音按钮和开关灯按钮;点击语音按钮,人开口说“开灯”或“关灯”,系统自动识别后,硬件设备端的LED灯会做出相应反应,开光按钮同理;开关灯流程图如图4-9所示:
4结论
本文先根据系统需求,定好系统的框架结构,对系统的服务器和Android的框架、全志A23硬件平台的Led的驱动调用等进行设计。系统以 Socket进行网络通信,将json协议作为上下行数据的交换格式,sqlite3数据库,可以通过服务器实现消息的接收和转发和用户信息的存储并显示在后台。利用App中的Socket通信机制连接服务器,实现功能界面的跳转,通过语音和按钮控制硬件的Led设备。系统经测试,能完成该语音识别系统的基本功能,具有应用到实际生活中的价值。
参考文献:
[1] 张红艳.一种嵌入式短词语音识别系统的研究与设计[D].上海:华东师范大学,2018.
[2] 袁毅,陈胜勇.基于Cortex-A9的嵌入式语音识别系统设计[J].现代信息科技,2019,3(14):166-168.
[3] 陈春玲,李雯雯,余瀚.嵌入式语音识别系统的测试方法研究[J].计算机技术与发展,2019,29(7):108-113.
[4] 张洪.基于Sphinx语音识别的智能家庭管家机器人的设计[D].武汉:武汉工程大学,2018.
【通联编辑:代影】