现今移动支付方式发展迅速,为了保障不同人群的支付安全,笔者设计了一款基于语音识别的智能收付款系统。
1、系统总体方案设计
系统总体设计如图1所示,该系统通过主控制芯片STM32F103RCT6,对矩阵按键、语音识别芯片LD3320和语音播报芯片SYN6288进行控制,在收付款期间,商家或买家一方将会报出支付金额,语音识别系统精确捕捉,与商家通过按键输入的金额进行判断,通过语音播报系统进行播报,确认是否支付成功。若出现错误,系统将自动终止支付并提醒;若仍然出现支付错误,商家可急速退款。这将大大降低了支付的错误率,进一步提高支付效率。
图1 系统总体流程
系统可实现两种控制方式:人工控制、语音智能控制。其中人工控制通过收银机电脑进行控制。前者更适用于突发状况;后者则是通过语音识别系统进行控制,通过商家或者买家语音控制整个支付过程。
2、硬件设计
硬件划分为4个模块:①语音识别模块。基于关键词语列表识别技术来进行语音识别。②语音播报模块。通过异步串口(UART)通信方式,来实现文本到语音(或TTS语音)的转换,实现语音播报功能。③矩阵按键模块。商家通过按键来进行金额的设置。④主控板模块。用于控制其他模块的工作。
1.语音识别模块
模块采用LD3320芯片,这是一颗基于非特定人语音识别(SI-ASR:Speaker-Independent Automatic Speech Recognition)技术的语音识别/声控芯片。LD3320芯片上集成了高精度的A/D和D/A接口,可实现语音识别/声控/人机对话的功能。并且,识别的关键词语可以动态编辑。基于这款芯片,可以为所有的电子产品增加VUI(Voice User Interface)语音用户操作界面。
(1)语音识别技术介绍。
语音识别ASR技术,是基于关键词语表识的技术,只需要设定好要识别的关键词语列表,并把这些关键词语以字符的形式传送到LD3320内部,就可以对用户说出的关键词语进行识别,不需要用户做任何的录音训练。每次的识别过程就是把用户说出的语音内容,通过频谱转换为语音特征,和这个关键词语列表中的条目进行一一匹配,最优匹配的一条作为识别结果。语音识别过程见图2。
图2 语音识别过程
(2)LD3320芯片介绍。
语音识别模块采用的是由ICRoute公司生产的非特定人语音设备芯片LD3320。LD3320芯片共48个引脚,是一款专用的语音识别芯片,该芯片集成一块专用DSP(Digital Signal Processing)电路,即语音识别处理电路和一些外围电子电路,主要用于完成语音交互功能。基于LD3320芯片的语音识别模块原理见图3。
图3 基于LD3320芯片的语音识别模块原理
2.语音播报模块
该模块采用SYN6288芯片,是宇音天下科技有限公司2010年推出的性价比更高、效果更加自然的一款中高端语音合成芯片。这款芯片通过异步串口(UART)通信方式,接受待合成的文本数据实现文本到语音(或TTS语音)的转换。
芯片支持GB23、GBK、BIG5和UNICODE内码格式的文本,支持多种控制命令功能,包括:合成、停止、暂停合成、继续合成、改变波特率等。支持串口数据通信接口,支持3种通信波特率:9 600,19 200,38 400。内置10 bit推挽式、可独立供电的功放,进行数模DAC输出。支持16级音量调整,播放文本的前景音量和播放背景音乐的背景音量可分开控制。语音播报原理见图4。
图4 语音播报原理
3.矩阵按键模块
独立按键一个按键就要占用一个IO口,整个单片机也就32个IO口,全部用完也控制不了几个按键,太占用资源,而矩阵按键则在这方面更有优势,可以只用8个IO口就控制16个按键。矩阵按键的原理见图5。
4.主控板
主控板采用的是STM32F103RCT6芯片,它是一种嵌入式、微控制器的集成电路,它拥有的资源包括:48KB SRAM、256KB FLASH、2个基本定时器、4个通用定时器、2个高级定时器、2个DMA控制器(共12个通道)、3个SPI、2个IIC、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口及51个通用IO口。主控板原理见图6。
图5 矩阵按键原理
图6 主控板原理
3、软件设计
1.语音识别系统
语音识别系统通过LD3320语音识别芯片进行语音识别,将收集到的语音与软件设计的一些关键词进行比较,如果匹配则将其存储在LD3320寄存器中,并连接STC11单片机,应用SPI或串口发送到STM32F103RCT6的单片机进行处理。
该系统通过一个一级指令来启动语音识别系统,例如:商家说出“收款”则启动语音识别系统,其他时间段系统处于休眠状态。当系统启动之后,商家说出一个要付款的金额时,例如:“五十元”,这时会有一个二级命令的产生,系统将会识别出这段语音,并将语音中的词语与系统中的关键词进行对比,转换成识别码,通过串口通信传输到计算机,让计算机可读取,并将其语音输入的金额数在收银机的电脑屏幕上进行显示。
2.语音播报系统
语音播报系统通过SNY6288中文语音合成芯片进行语音播报。通过异步串口(UART)通信方式,将STM32F103RCT6中得到的金额进行数读取,将其文本数据转换成语音(或TTS语音),通过模块中的音响,进行语音播报。
例如:买家成功支付了五十元;通过主控板传输到SNY6288芯片中,播报“成功支付五十元”,若付款失败,或者语音输入金额与按键输入的金额不符,通过主控板匹配后,将会播报“支付失败,请重新输入”。
通过这个模块还可以进行音量的调节、词语语速的改变、设置背景音乐、设置提示音等多种功能。
3.矩阵按键模块
使用矩阵按键模块,主要是用来让商家输入需要买家支付的金额。该模块的使用,先是让行做出输出,并输出低电平,列作输入,并读取电平,当有按键按下的时候就会有电平变化,来判断是哪一行,同样的方法,再来判断是哪一列,这样得出是哪一个按键按下,然后在按键位置做处理,让它进行金额输入。
4.主控板系统
主控板由STM32F103RCT6芯片控制,由主控板控制其他模块的运行。按键输入的金额数字和语音识别输入的金额数字是由主控板进行匹配,核对是否相等,相等则让主控板发起付款界面,让买家进行付款;若不相等,则由主控板控制语音播报系统提示失败的语音,并重新让语音识别系统和矩阵按键进行输入。在此过程中,可以控制语音识别系统进行语音录制。
图7 主控板程序流程
4、系统测试
通过串口的接收区,可以看到语音识别接收到的金额数目。通过串口打印,可以看到矩阵按键输入的金额数目。通过测试,两个数据在系统运行过程中基本准确无误。
通过主控板让语音播报系统模块进行语音播报,能准确地播报出程序所设置的词语和语句。并且设置的背景音乐、提示音、音量大小都能够准确、连续、音质良好的播放。
在进行模拟支付环节时,首先是两个输入金额都相等时:商家说话输入的金额和矩阵按键输入的金额进行对比,通过主控板进行比较,相等后,系统成功的跳出支付二维码界面,并通过语音播报“支付成功”。
其次是输入两个金额不等时:主控板比较发现错误后,通过语音播报系统播报出警告的提示音,并语音播报“输入错误,请重新输入”,再传给主控板,重新发起语音输入系统和矩阵按键的输入,重新让主控板进行比较。系统运行过程稳定,并没有出现运行错误,并且可以存储并提取出整个支付环节过程的录音。
该系统整体运行过程中较为稳定安全,语音识别过程准确,语音播报内容无误,主控板芯片运行稳定。
5、结论
基于LD3320语音识别芯片、SYN6288中文语音合成芯片,在STM32F103RCT6的主控板上进行语音识别的智能支付系统,能够有效地防止由于误支付所引起的各类问题,提高支付的成功率,并且使智能支付更加安全、便捷。并且该系统小巧,能够适配于商家的收银机电脑。经过实际测试,该智能支付系统运行较为稳定,并且语音收集准确,语音播报清晰。