技术文档

51单片机语音识别 基于51单片机的语音识别控制系统

小编 2024-11-24 技术文档 23 0

基于51单片机的语音识别控制系统

0-演示视频

1-功能说明

(1)使用DHT11检测温湿度,然后用LCD12864显示,语音播放,使用STC11l08xe控制LD3320做语音识别,

(2)上电时语音提示:欢迎使用声音识别系统,之后进行初始化12864等相关事项

(3)语音识别:您好 →您好

(4)语音识别:播放温湿度 →播放当前温度、湿度数据,并在LCD12864显示温湿度数据

(5)语音识别:打开台灯 →打开继电器、同时在LCD12864显示台灯状态 已打开

(6)语音识别:关闭台灯 →关闭继电器、同时在LCD12864显示台灯状态 已关闭

2、开题报告

1、系统概述这个系统需要实现以下功能:使用DHT11传感器检测环境温湿度,通过LCD12864液晶显示屏显示检测到的温湿度数据,同时通过语音识别模块识别用户的语音指令,并根据指令进行相应的操作,如播放温湿度数据、控制台灯的开关等。整个系统由STC11l08xe单片机控制。2、系统硬件设计系统的硬件部分包括DHT11传感器、LCD12864液晶显示屏、语音识别模块、继电器等。DHT11传感器用于检测环境温湿度,输出信号为数字信号,可以直接连接到单片机上。LCD12864液晶显示屏可以显示温湿度数据和其他的提示信息。语音识别模块使用LD3320芯片,可以通过串口与单片机通信。继电器用于控制台灯的开关。3、系统软件设计系统的软件部分需要实现以下功能:初始化各个模块、读取DHT11传感器的数据、处理语音识别模块的输入、控制继电器等。初始化模块:在系统上电后,需要先初始化DHT11传感器、LCD12864液晶显示屏、语音识别模块等。读取DHT11传感器的数据:使用单片机的I/O口读取DHT11传感器的数据,然后通过串口发送给LCD12864液晶显示屏显示。处理语音识别模块的输入:使用STC11l08xe单片机的串口接收语音识别模块的数据,然后解析用户的语音指令,根据指令进行相应的操作。控制继电器:根据用户的语音指令控制继电器的开关,从而控制台灯的开关。4、系统调试与测试在完成系统的硬件和软件设计后,需要进行系统调试和测试。首先测试DHT11传感器能否正确地检测到环境温湿度,然后测试LCD12864液晶显示屏能否正确地显示温湿度数据和提示信息。接着测试语音识别模块能否正确地识别用户的语音指令,最后测试继电器能否正确地控制台灯的开关。5、总结与展望这个系统实现了使用DHT11传感器检测环境温湿度、使用LCD12864液晶显示屏显示检测到的温湿度数据、使用语音识别模块识别用户的语音指令、根据指令进行相应的操作等功能。整个系统运行稳定、可靠,具有一定的实用价值。展望未来,可以在系统中加入更多的功能,如通过互联网远程控制台灯的开关、将温湿度数据上传到云端服务器进行数据分析等。同时,随着人工智能技术的发展,可以使用更先进的语音识别技术,如深度学习算法等,提高语音识别的准确率和用户体验。

3-程序

4-参考论文

5-原理图

6-PCB图

7-芯片相关资料

8-赠送资料

9-资料下载链接

单片机语音播报怎么做?语音模块原理及程序编写思路

我最欢就是做带语音播报的产品,写程序的过程太枯燥了。

有些产品一开发就是几个月,整个过程都跟冷冰冰的LED、蜂鸣器、按键、LCD屏打交道难免有些寂寞。

加上语音就不同了,录制好一个好听的妹子声音,不但可以提升整个产品的逼格,自己也满满的成就感。

今天就来聊聊带语音的产品怎么做。

实际产品中,用单片机播放语音方案有很多种,唯一没有开发板那种,因为成本各方面都不满足产品需求。

另外就是加一个语音芯片,如果利润高的产品会优先使用这种,一个几块钱还能接受。

还有就做软解码的,就是把语音文件解码成喇叭能够识别的PWM和DAC数据,这种技术难度最大,对工程师编程水平是一个考验。

虽然难度大,但是成本低,不需要额外增加语音芯片,老板的最爱,反正工程师掉点头发对公司又没影响。

软解码大概在6,7年前做电子狗的时候玩过一次,大概原理就是把语音文件合并成bin文件,烧录到外置的flash里面,做好每条语音的地址映射。

用单片机读取Flash的数据并解码,然后转换成PWM或者DAC经过功放输出到喇叭。

这种一般要有个写上位机的配合,以前市面上没有在把语音文件合并成bin文件的工具,现在好像有了。

时间相隔太久,很多细节记不清楚了,后续如果还能找到资料再跟大家分享。

今天无际单片机编程给大家讲后面我做过的一种方法:用语音芯片

这是语音芯片的一些介绍:

我们需要关注的就是,这个芯片对语音长度的支持分别有55s、25s、85s,如果产品语音少还是挺合适的。

这种芯片如果语音少的直接用芯片内部的Flash,如果语音多了就需要外挂一个Flash来存储语音数据。

一般每个产品的语音都是不一样的,那怎么把我们想要的语音通过这个语音芯片播放出来呢?

想实现这个功能要经过以下几个步骤:

通过软件把语音文案转成mp3格式语音文件,类似的软件有很多,比如说科大讯飞。把语音文件提供给芯片方,让他们帮你定制。拿到样品后就是焊接到自己板子上,然后根据芯片规格书写控制时序程序,每条语音都对应了一个地址,只要把地址数据写入芯片,芯片就会自动播放指定语音。

整个过程是不是非常简单?

除了播放语音功能以外,还有一些附加功能,比如说静音,音量调节、循环播放等等。

下面来看下芯片的引脚定义

一般使用3根线来跟单片机通讯。

PA0/SDA: 数据线

PA1/SCL: 时钟线

PA2: 忙碌线,当有语音播报的时候,该引脚为低电平。

芯片的控制时序如下:

不难发现,数据开始之前SCL需要先产生5ms的低电平同步头,然后数据在SCL线的上升沿被读取,一共读取8位,也就是1个字节。

如果你不会写这个时序也没关系,芯片原厂都有提供例程。

相关问答

8051单片机能直接 识别 的语言是?

8051单片机能够直接识别的语言是机器码,也就是二进制代码,文件是*.bin。51单片机最常用的编程语言是汇编语言和keilC语言,但软件对上述语言进程编译之后,生...

51单片机 的程序语言有哪几类?

51单片机的程序语言有汇编语言和C语言。汇编语言是一种面向机器的编程语言,能直接操作单片机的硬件系统,如存储器、I/O端口、定时/计数器等。优点:指令效率...

51单片机 定时闹铃(c语言) - 懂得

我来发一个C语言51单片机2113时钟程序,希望5261能帮到你/*程序功能:带定时闹4102铃时钟*//*-----------------------------------------我来21...

51单片机 定时闹铃(c语言) - R6OWXQ1Id 的回答 - 懂得

我来发一个C语言51单片机2113时钟程序,希望5261能帮到你/*程序功能:带定时闹4102铃时钟*//*----------------------------------------------...

51单片机 串口怎么找?

在51单片机中,串口通常是通过两个引脚来实现的,即TXD(发送引脚)和RXD(接收引脚)。下面是找到51单片机串口的一般步骤:1.确定串口的引脚:查阅51单片机的...

我现在想用电脑往 51单片机 里写进去一个代码,让他通过 语音 模块把写进去的内容读出来?

想用电脑往51单片机里写进去一个代码,让单片机通过语音模块把写进去的内容读出来。这涉及两个问题:1、数据提取和通信传输数据与存储数据。你把“欢迎使用”...

51单片机 用C语言或者汇编程序如何实现定时1秒?如何设定初始值?如何计算?如何输出方波?如何对外部?

使用定时器实现1秒定时;初始值要看单片机配置的晶振频率了,若12M晶振,初始值为TH0=0x3c;TL0=0xb0;这才是50ms,还要一个单元做计数器,计数20次才是1秒方波...

51单片机 C语言 如何写代码。控制2个LED的亮和灭。

[最佳回答]比如你的8个灯连在P0口,如果是阴极的你只要先定义sbitP0^0=LED0;.....一定定义下去然后再定义一个按钮比如P1.1sbitP1^1=key;代码里写12...

51 系列 单片机 新手用什么语言编程?

51系列单片机初学者可以使用汇编语言或C语言进行编程。汇编语言通常需要对硬件有深入的了解,代码量较多,但可以实现更高效的控制。C语言则更加易学易用,代码量...

8051单片机能够直接 识别 的语言是?

8051单片机能直接识别的语言叫做机器码语言,一条完整的机器码语言由若干字节二进制代码组成,例如给RAM的30H单元赋值立即数8FH,单片机的机器码语言就是75H、30...

猜你喜欢