基于语音识别的相机控制系统设计

2021-06-27 03:25何国康张志勇
电子设计工程 2021年12期
关键词:照相机摄像头语音

何国康,张志勇

(山西农业大学 工学院,山西晋中 030801)

在现实生活中,照相机的拍照等动作往往需要通过手动操作相机按钮来完成,这种方式在集体拍照、自拍等缺少拍照人员的情况下很不方便。随着科技的发展,人类进入智能化时代,其中语音识别技术在发展过程中逐步走向成熟[1]。为了解决以上问题,使照相机摆脱手动操作,提出的系统将非特定语音识别技术运用到照相机上,通过语音识别技术来完成照相机的拍照任务。语音识别技术时时刻刻影响着人们的生活,所以语音识别技术的研究和语音识别产品的研发对人们生活水平的提高有着重要的意义[2]。

语音识别技术应用在照相机上可以使照相机的操作更简单,从传统的按钮到语音识别控制,极大地方便了相机的使用。目前,大多数语音识别主要在PC 机上进行开发,其优点是PC 机的性能较好,可以运行更复杂的算法,但是可移植性非常低[3]。文中主要以嵌入式微控制器为核心,对系统加以实现,包括硬件的设计和软件设计,相对于PC 机有体积小、功耗低、运用灵活等特点[4]。

1 系统整体设计

按照系统功能及指标要求,系统主要包括电源模块、STM32F407ZGT6 最小系统、JTAG 下载电路、OV2640 摄像头、STC11L08XE 最小系统和LD3320 语音识别系统[5]。整个系统由5 V 电源供电,在开机状态下,系统采集到“开始”关键词时,2.8 寸TFTLCD 可以实时显示彩色摄像头OV2640 所采集到的图像;当识别到“对比度”关键词时,系统会对所采集图像的对比度进行逐次加一调整;当识别到“特效”关键词时,系统会对采集的图像进行特效的调整,比如使图像灰度化、绿色化、黄色化等。系统总体结构框图如图1 所示。

图1 系统总体结构框图

2 硬件系统设计

2.1 电源控制电路

滤波电路对于一个系统的稳定运行非常重要,所以系统根据需求设计了带有滤波电路的5 V 转3.3 V 稳压电路,稳压芯片采用AMS1117-3.3 线性稳压芯片。该芯片的输入电压范围为4.75~12 V,允许最大的输出电流为1 A,输出电压为3.3 V[6]。

2.2 时钟电路

在STM32 中,需要给系统提供一个8 MHz 的外部晶振作为系统时钟[7]。除此之外,有时还需要给系统提供一个32.768 kHz 的RTC 时钟振荡器。如果不使用系统内部RTC 时钟也可以不设计这个电路。对于8 MHz 的外部晶振,需要在晶振的输入和输出端分别接入22 pF 的电容,同时需要在输入和输入端之间并联一个1 MΩ的电阻,系统才能正常工作[8]。系统时钟电路如图2 所示。

图2 系统时钟电路

2.3 图像采集电路

OV2640 摄像头是一款CMOS 类型图像传感器,支持输出最大为200 万像素,支持使用VGA 时序输出图像数据,输出的图像数据格式支持YUV、YCbCr422、RGB565 以及JPEG 格式[9]。当直接输出JPEG 格式的图像时,可大大减少数据量,方便网络传输。由于系统需要在TFT 液晶显示屏上直接显示出来,所以需要选择RGB565 格式。摄像头内部集成了图像补偿,同时还支持伽马曲线、白平衡、饱和度、色度等基础的图像处理[10]。根据处理器的性能,传感器输出图像数据帧率为15~60 帧范围可调[11]。图像采集电路的连接方式如图3 所示。

图3 图像采集电路

2.4 LCD显示电路

系统LCD显示模块采用的是2.8寸TFT液晶显示屏幕,它可以显示240×320 像素的RGB565 格式[12]。由于STM32 芯片中带有FSMC 专用接口,所以显示屏可以采用16 位并行方式与STM32 芯片进行连接,相对于传统的8 位接口方式,传输速率得到了很大的提升[13]。由于屏幕自身带有RAM 存储器,所以系统工作时可以直接采用DMA 方式将摄像头采集的图像直接传输到显示屏RAM 中,大大减少了CPU 资源[14]。LCD 显示电路具体实现方式如图4 所示。

图4 LCD显示电路

3 软件系统设计

3.1 开发调试环境介绍

系统软件部分的设计使用Keil集成开发环境,对于STC11L08XE 和STM32F407ZGT6 的开发,Keil 分为两种不同的版本,STC11L08XE 单片机的开发需要使用KeilforC51,而STM32F407ZGT6嵌入式微控制器的开发需要KeilforARM 版本[15]。Keil 能够实现程序的编辑、编译、连接、调试、仿真等整个开发过程[16]。

3.2 系统总体软件设计

系统开机后,首先对STM32、STC11、LD3320、OV2640 和LCD 进行初始化,语音识别部分由STC11 单片机和LD3320 语音识别芯片协同完成。识别到系统语音库中的关键词时,STC11 单片机通过串口将数据发送给STM32 嵌入式微控制器,嵌入式微控制器根据接收的数据进行一系列的照相机操作。当系统识别到“开始”关键词时,系统进入实时图像采集界面,OV2640 采集的图像在LCD上显示;系统识别到“特效”关键词时,每识别一次,图像会变换一次特效;当系统识别到“缩放”关键词时,LCD 显示的图像会被缩放;识别到“拍照”关键词时,系统进行一次拍照操作。系统的主流程控制图如图5 所示。

图5 系统主流程控制图

3.3 语音识别系统软件设计

语音识别系统是通过STC11 单片机和LD3320语音识别芯片来完成的,STC11 单片机和LD3320 之间通过并行方式连接。语音识别程序的设计需要采用中断方式来完成,它的工作分为单片机初始化和语音识别初始化、写入识别关键词、开始识别和中断响应几个步骤。

1)单片机初始化和语音识别初始化。在初始化程序中,需完成软件复位、工作模式设定、系统时钟频率设置、FIFO 设定。

2)写入识别关键词。关键词需要根据LD3320芯片关键词写入规则进行写入,每一个关键词应对应一个存储字节,关键词需要有相应的编号,它可以相同或不连续,但是数值要小于256。关键词需要使用标准普通话的汉语拼音,两个字之间需要加一个空格,表1 是该系统的关键词示例。

表1 关键词示例

3)开始识别。在语音开始识别之前需要设置几个相关的寄存器,麦克风语音的输入需要用到ADC转换通道,可以通过设置ADC 的增益来设置麦克风的灵敏度,麦克风的灵敏度越高,可以识别的距离越远,但是抗干扰能力比较弱,容易发生误识别。

4)中断响应。当麦克风采集到声音时,不管识别的结果是否与库中的关键词相匹配,都会产生一个中断信号。若识别到正确的结果,则STC11 单片机会通过串口向STM32 发送一个操作数据。

3.4 照相机系统软件设计

系统的照相机部分是使用STM32F407ZGT6 芯片实现的,照相机系统主要由OV2640 摄像头和TFTLCD 组成。STM32 和摄像头采用DCMI 接口连接,图像的传输使用DMA。图像采集程序流程图如图6 所示。图像采集过程的主要函数如下:

图6 图像采集程序流程图

4 系统测试

为了验证设计的语音控制相机的可行性和实验效果,基于上述设计方案制作了一款基于语音识别控制的相机。系统PCB 图和实物图如图7、8 所示。

图7 系统PCB图

图8 系统实物图

系统的相机功能是由语音识别进行控制的,现将程序下载好后对语音控制功能进行测试。

系统测试步骤如下:

1)系统开机后进入系统初始化界面,在显示屏上可以看到系统创作时间等信息。

2)靠近麦克风用普通话说“开始”关键词,系统识别成功后显示屏上会实时显示摄像头采集的图像,然后依次说出“特效”“对比度”“饱和度”“缩放”等关键词,观察屏幕上实时图像的变化。

3)系统识别到“拍照”关键词时,实时图像结束传输,显示屏显示传输结束前一刻的画面。

为了保证测试的准确性,分别在安静环境和嘈杂环境对系统的6 条语音进行了测试。测试时分别让3 个非特定人对每条语音指令进行10 次测试,记录成功的次数,测试的结果如表2 所示。

表2 系统测试结果

由测试的数据可以得出,在安静环境下,系统的识别率可以稳定达到85%以上;但在嘈杂环境下,识别率相较于安静环境下有所降低。同时,在安静环境中的稳定性也比嘈杂环境中要好很多,在安静环境下,一般说一遍语音就可以识别到,个别比较长的关键词需要说2 到3 遍;但在嘈杂环境下,有时需要重复说几遍关键词才可以识别,在识别速度上嘈杂环境也较慢于安静环境。

5 结论

文中采用STM32F407ZGT6 微控制器和LD3320语音识别模块,完成了一套基于语音识别的相机控制系统。该系统将嵌入式、单片机、语音识别和通信技术融合在一起,实现了照相机的拍照、对比度调整、特效变换、缩放等功能。经过测试,系统各个功能模块工作正常,语音识别成功率也达到了预定的要求。但不可否认,系统还存在许多不足,语音识别部分与现在的先进水平相比存在非常大的差距,功能还不够完善,以后要注重提高语音识别的正确率和精准度以及系统的抗干扰能力,满足不同环境下的使用需求。

猜你喜欢
照相机摄像头语音
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
走进照相机
How photography was developed
对方正在输入……
奔驰360°摄像头系统介绍
最早的照相机