【毕业设计】基于stm32的语音识别 – 单片机 嵌入式 物联 语音识别

文章目录

  • 0 简介
  • 1 项目目标
  • 2 项目背景意义
  • 3 需求分析
    • 3.1 功能性需求
    • 3.2 非功能性需求
  • 4 设备器件
    • 4.1 STM32单片机
    • 4.2 LD3320语音识别芯片
    • 4.3 TFT-LCD液晶显示屏
  • 5 设计方案
  • 6 语音识别模块的开发
  • 7 警电路模块的开发
  • 8 上位机模块的开发
  • 9 项目成果
  • 9 最后

0 简介

Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目

于stm32的智能婴儿车 婴儿床

大家可用于 课程设计 或 毕业设计

单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052

1 项目目标

项目最终实现功能: 用户说出指定的语音,硬件系统(由STM32和LD3320构成)能识别并显示在LCD液晶屏上,并触发预设的 警电路(由蜂鸣器和LED灯组成),还开发了对应的上位机(运行在PC电脑上),上位机可以显示硬件系统的状态,也可以控制其状态。

2 项目背景意义

首先,我们所开发的语音识别 警监控系统可以解放工厂员工的双手,让他们通过说出语音即可对设备进行控制,更方便也更快捷。

其次,当现场的工作人员正忙于操纵设备,无法腾出手来发出警 ,或者当他们距离 警系统较远,无法手动发出警 ,可以通过该语音识别系统进行发出警 的操作。

最后,我们还开发了上位机,这让工作人员可以无需待在工业现场,在办公室内也可查看当前设备的 警情况,还可通过该上位机发出特定的警 。

3 需求分析

3.1 功能性需求

该语音识别系统能够读入不同 警类型的语音,并予以波形显示;利用单片机对不同 警类型语音进行匹配识别,根据识别结果输出声音 警和光指示 警,要求误 率应低于10%;对语音进行预处理,对语音信 进行特征参数提取;通过STM32单片机编写控制程序;实现上位机的开发,完成嵌入式系统与上位机的交互。

3.2 非功能性需求

考虑相关的 会、健康、安全、法律及环境方面的制约因素;讨论或分析或预测本项目所应用或涉及的相关新技术或新产品、新工艺对本项目的积极意义和对 会、安全、健康、法律及文化方面可能存在的正、负影响。给出两种设计方案并进行论证。

4 设备器件

4.1 STM32单片机

具体型 是STM32F103,对其进行开发的语言是C语言,编译器为keil5。

4.2 LD3320语音识别芯片

4.3 TFT-LCD液晶显示屏

TFT-LCD即薄膜场效应晶体管,是有源矩阵类型液晶显示屏(AM-LCD)中的一种。

5 设计方案

语音识别 警监控系统主要由 STM32单片机、LD3320 语音识别模块、 警电路模块、上位机模块组成。

将LD3320语音识别芯片与我们自己设计的 警电路接在单片机STM32上,通过对单片机STM32进行编程来实现处理输入的语音信 ,触发对应的 警电路等操作,编程语言为C语言,编程软件为KEIL5,由LD3320进行语音的采集,在STM32单片机上对识别结果进行逻辑判断,从而输出端口产生对应的输出信 ,由显示屏、LED灯、蜂鸣器构成的 警电路模块用来显示 警效果。用C#语言编写上位机软件,软件安装在PC电脑上,通过串口使得上位机与下位机(单片机STM32)进行通信。

然后当有声音输入时,会产生中断不管是否识别出正常结果,都会产生一个中断信 。而中断程序要根据寄存器的值分析结果。读取 BA 寄存器的值,可以知道有几个候选答案,而 C5 寄存器里的答案是得分最高、最可能正确的答案。例如发音为“全亮”并被成功识别(无其他候选),那么 BA 寄存器里的数值是 1,而 C5 寄存器里的值是对应的编码 3。

7 警电路模块的开发

警电路模块主要由一个LCD-TFT、两个LED灯和一个蜂鸣器组成。LED灯与蜂鸣器是直接使用单片机STM32自带的,无需外接,而对于LCD-TFT,将其与单片机STM32相连,硬件连接图如下:

然后设置窗体的组件,在工具箱中有各种各样的组件,使用的话可以拖需要的组件进入到form中即可,按照预期的功能设置窗体,最终窗体界面如下:

上述代码是点击“断开/连接”按钮后触发的函数代码,用变量Button_State表示当前上位机与单片机间是否连接,根据连接情况与否,通过if 语句执行对应的代码,通过函数serialPort1.Close()来断开连接,通过serialPort1.PortName来设置端口 ,通过serialPort1.BaudRate来设置波特率,通过serialPort1.Open()来开启连接。

上述代码用来显示当前单片机的状态,通过中断的方式,当单片机向上位机传输数据时,就执行以上代码。在单片机的程序中,向上位机传输数据的代码是printf(),而在上位机的程序中,用textBox2.Text即可拿到传输的数据,Contain()函数表示是否包含某个字符,通过设置textBox3.Text从而在窗体中显示当前的状态。

9 项目成果

单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052

9 最后

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月3日
下一篇 2022年6月3日

相关推荐