主页 > 案例大全 > 论文写作分析-基于单片机的语音录放系统设计

论文写作分析-基于单片机的语音录放系统设计

2021-04-07 09:24:17

  伴随着人类科学技术的提高,各项技术的不断发现,人类的生活逐渐的变得方便快捷。其中语音芯片的技术不断的突破,使得它得以在人类的日常生活中得以广泛的应用。基于语音芯片的语音录放系统现如今已经存在于我们生活的方方面面,例如公交车自动报站系统,数字播报时钟,带有录音回放功能的大喇叭,排队机等。各项技术应用的日常化,使得我们身边的电子产品应用范围逐渐扩大,发展前景广阔。随着发展对目前的语音录放技术的要求也在提高,需要电路简单清晰,使用简单,能够由单片控制芯片控制,不怕掉电,音质存储无损,播放音色纯正,价格低廉,经久耐用等特性。语音录放系统现如今已经渗入我们生活的方方面面,比如在通讯、医疗、警报、工业控制等方面。

  语音录放系统的革新是基于语音集成电路的发展,在其发展过程中克服了传统的语音录放系统诸多问题,因而在各个领域内产生了大量需求,并同时得到了大量的改进和发展空间。相对于传统的录音方式,它只需很少的电子器件,就能实现录放功能,可以永久保存数据。目前,在国内外,语音录放电路已经得到广泛的应用。在我们的日常生活中也到处存在着语音录放系统的身影,例如在公交车上听着公交的报站,在平时听课时有时会用到的录音笔,传统的MP3,电子时钟的自动报时等等,生活中种种的需求促使着语音录放系统的快速发展,令产品不断革新,改善了人民的生活质量,促进社会进步发展。

  本次论文采用STC89C52RC单片机与ISD4004-08MPY语音录放芯片进行设计构成语音录放系统,最终实现所需的语音录放功能。

  1.1本次设计的目的和意义

  伴随着集成电路的高速发展,语音芯片逐渐小型化集成化,开始大量的普及,广泛应用于公共日常生活中,并针对家庭化开始了快速发展。现如今因为语音录放系统的稳定,准确的性能已经成为了现代人们生活中不可或缺的一部分。本次论文采用单片机STC89C52RC为控制模块控制ISD4004-08MPY语音录放芯片构成语音录放系统。该语音录放系统操作简单,连接电路简洁易维修,容易携带,录放质量良好。各项性能均衡,性价比较高。在日常生活中可以很方便的使用,能够准确的录放所需的音频,能够充当录音笔,记事器,语音备忘录等功能,极大的改善了民众的生活。现如今快节奏的生活,每个人的一天往往充斥着大量的事情,难免会在过于忙碌的情况下忘记一些事情。所以在日常的生活中我们需要将一些事情记录下来,帮助我们记录我们可能会参与的会议,需要完成的工作等等事情。否则真的因为疏忽而导致了其他的事情的发生,往往会带来一些我们不想看到的严重的后果和损失。所以通过一个简单便携的语音录放系统来记录一下我们所需要做的事情,这会给我们的生活减免掉很多的不快和损失,提高我们的生活质量。

  1.2语音录放系统的国内外发展情况

  语音录放系统的发展是符合马克思主义中事物发展的规律的,是从功能由弱到强,大型电路到集成电路,由粗糙到复杂,机械构造到如今的电子自动化,功能也在逐步增加的过程。

  就目前语言技术的研究现状而言,基于现在语音技术的发展和突破,语音技术在语音识别和语音合成方面取得了长足的进步,人机对话、智能机器人的发展得益于语音识别和语音合成技术的大力发展。语音识别技术其中包括了语音控制技术,智能合成语音,连续语音识别,间断语言识别和语言学习等技术要求。现如今这项技术已经取得了很大的进步。初步实现人机语言沟通,建立起了一个具有听、说能力的语音录放识别系统。目前在支持各类语言混合识别方面存在一些障碍。录入的单词在标准发音的同时都能被准确地识别出来,但每个人都或多或少的存在一些口音,如何在口音的影响下准确的识别所说的内容,作为语言识别技术的新的突破口。

  语言合成和语言识别是实现人机语言交流和建立具有听说能力的人机交互系统的两项关键技术。与语言识别相比,语音合成技术相对成熟,已经开始走向产业化,大规模的应用才刚刚起步。语言合成,又称文本对语音技术,可以将任何文本信息实时转换成标准语言和语音流,使得机器人获得像人类一样的发声器官,这项技术涉及很多学科,并不是单一学科就能解决的内容,需要很多的学科来综合克服这个技术难题。同时人际交流这项技术是在中文语音信息处理领域里处于前列地位的领先技术。这项技术的主要要点是将机器接收或者生成的文字信息转换成为语音信息。这样就初步让机器能像人类一样发声交流,实现了人机对话技术的突破。这项技术的突破在于解决了通过事先录音,然后再播放,实现“让机器说话”。无论是内容、存储、传输还是方便,实时性等方面都受到了严格的限制的难题。让机器真正的能和人类进行对话交流。

  1.3语音芯片的现状

  语音芯片在不断涌现的科技浪潮中得到了快速的发展,伴随着人类各项技术的提高,新的材料的发明,确保了语音芯片自身的不断革新和发展,技术的提高降低了芯片的生产成本,使得芯片的价格逐渐下降,能够满足人们逐渐提升的需求。低成本便捷化简单化的生产使得语音芯片的应用前景非常广阔,这更进一步的促进的语音芯片的不断发展。

  现在市场上大部分的芯片都是随录随放型语音芯片,这种芯片自身就和日常使用的录音机一样具有完整的录音放音功能。该芯片可以通过连接话筒或其他声音录入方式来进行录音,将声音直接存储到芯片的内部。在需要放出录入与语音时,就可以将存储的语音通过放音设备进行放音。这种语音芯片的要求是具有极长的保存周期,在芯片存储好声音信息后,即使是在断电时间较长的时间下也能保存好录入的声音信息。这种芯片是目前应用的主流芯片,芯片的价格由于技术的发展也变得非常适合,性价比很高。

  其中美国的ISD公司研制的ISD系列芯片在市场中占据很大地位,该公司持有这方面技术的多项专利,生产的芯片存储语音长度时间从几秒到十几分钟的一系列的单片式控制语音芯片。因为该公司的产品性能稳定,产品质量高,价格低廉,广泛应用于目前生活的各个领域当中,本次论文也采用了ISD公司生产的ISD4004-08MPY语音存储芯片作为语音存储模块。

  1.4设计要求

  设计一个基于单片机的语音录放系统设备。按键操作切换录放功能。本次设计要求有稳定的工作状态、拥有良好的播放音质效果,存储的语音可以被完整的存储以及放出,同时尽量避免杂音一类的干扰,同时应用起来简单快捷。

  第二章单片机与开发环境及语音芯片概述

  2.1单片机

  2.1.1单片机概述

  单片机是指由芯片组成且不由执行固定单功能的芯片组成的微控制器。该芯片集成了与小型便携式微计算机相对应的计算机系统。体积小,重量轻,价格低廉为学习,应用和发展提供了有利条件。多样化的数据采集和控制系统可以使单片机执行各种复杂的操作。无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。由此可见,单片机凭借着强大的数据处理技术和计算功能可以在智能电子设备中充分应用。简单地说,单片机就是一块芯片,这块芯片组成了一个系统,通过集成电路技术的应用,将数据运算与处理能力集成到芯片中,实现对数据的高速化处理。

  2.1.2 STC89C52RC的介绍

  STC89C52RC单片机是STC公司生产的一款微控制器,具有8K字节系统可编程闪存。是低功耗,高性能CMOS 8位的微控制器。STC89C52使用经典的MCS-51内核,但是做了很多改进以使芯片具有传统51单片机所没有的功能。STC89C52在单芯片上具有智能8位CPU和系统内可编程闪存,可为许多嵌入式控制应用提供高度灵活高效的解决方案同时,它是STC89C51微控制器的升级版,它们具有相同的内核,并且该程序还可以与STC89C51微控制器的先前设置兼容,也可以在其上实现相同的6或12个时钟周期,还有上一代没有的许多功能。

  STC89C52微控制器的工作条件:

  不同单片机的工作电压也不同:5.5V?3.3V和3.6V?2.0V。微控制器中用户可用的程序空间为8K字节,芯片上还有512 RAM。单片机的工作频率为0?40MHZ,相当于以前的STC89C51单片机的工作频率为0?80MHZ。实际频率可以达到48MHZ。单片机中ips和iap的存在允许单片机通过串行端口将程序下载到单片机,而无需使用特殊的编程器。此过程仅需几秒钟即可完成,快速且方便。MCU上还有32个I/O端口,其中P1/P2/P3/P4是复位后的准双向端口。P0是漏极开路输出,具有两个功能。其中,当用作双向I/O端口时,需要添加总线扩展时不需要添加上拉电阻。MCU上有一个重置系统,可以将其编程为重置MCU,也可以通过按下外部重置电路上的重置按钮来重置它。MCU中具有EEPROM功能的看门狗。MCU具有三个12位计数器/定时器,其中定时器0也可用作两个8位定时器。有4个外部中断可触发用于下降沿中断和低电平的中断。

  功能说明如下:

  1(PO端口):一组8位漏极开路双向I/0端口,是地址/数据总线多路复用端口。访问外部数据和数据存储器时,PO端口被复用为低8位地址/数据。

  2(P1-P3):是一组带有内部上拉电阻的8位双向I/0端口。另外,P3端口第二功能的应用更加重要和广泛。如下表所示:

  3(RST):复位输入。

  4(ALE/PROG):地址锁存启用端。

  5(PSEN):外部程序存储器的读取选通信号可以通过程序进行存储和输出。

  6(EA/VPP):允许外部访问。

  7(XTAL1):振荡器反相放大器和内部时钟发生器的输入端。

  8(XTAL2):振荡器的反相放大器的输出。

  P3口的第二功能表

  端口引脚第二功能

  P3.0 RXD(串行输入口)

  P3.1 TXD(串行输出口)

  P3.2 INTO(外部中断0)

  P3.3 INT1(外部中断1)

  P3.4 TO(定时/计数器0)

  P3.5 T1(定时/计数器1)

  P3.6 WR(外部数据存储器写选通)

  P3.7 RD(外部数据存储器读选通)

  2.2开发环境概述

  2.2.1 KEIL简介

  KEIL C51是由美国KEIL Software生产的与51系列兼容的单芯片C语言软件语言开发系统。这个软件相比较于其他的软件来说对用户更为友好。支持在windows各个版本进行编译。同时这个软件采用了C语音进行编译。C语言简单易懂,结构紧凑,编译起来难度较低,而实现的功能也很多。与汇编语言相比较起来说,我们或许更习惯性用C语言,因为它在结构还是功能上都有很大的优势,对于我们来说,C更容易明白。并且KEIL它还可以通过uVision将各个部分结合到一块。在编译完成以后,KEIL软件能清晰的指出出现错误的位置,便于我们快速纠错和改正。

  2.3 ISD4004

  2.3.1 ISD4004简介

  ISD4004系列语音芯片质量良好,价格低廉,应用范围广泛,工作所需独立电压较低,仅为3V。芯片音质存储质量高,声音收录良好,并且单芯片最大支持声音存储容量为8-16分钟。芯片集成度高,总体积较小,适用于各类电子产品。该芯片采用多级直接模拟存储技术,每个样本都直接存储在片上闪存中,从而可以非常逼真地再现语音,音乐,声音和效果。但随着记录时间和播放时间长度的变化,声音的质量也会出现一定的变化。当芯片的供电出现问题,芯片内存储的信息也不会丢失,能在断电的情况下保存相当长的一段时间。该系列芯片支持重复记录100000次左右。性价比相对较高。

  2.3.2 ISD4004引脚图及描述

  1电源(VCCA,VCCD):依据电路的不同进行选择,去耦电容应尽可能靠近设备。

  2接地(VSSA,VSSD):依据电路的不同进行选择。

  3同相模拟输入(ANA IN+):录制信号的同相输入。

  4反相模拟输入(ANA IN-):录制信号的反相输入,当处于差分驱动时。

  5片选(SS):为低时发送指令。

  6串行输入(MOSI):串行输入端口。

  7串行输出(MISO):串行输出端口。

  8串行时钟(SCLK):用于同步数据。

  9中断(/INT):漏极开路输出端口。

  10线地址时钟(RAC):开漏输出。

  11外部时钟(XCLK):外部时钟该端必须接地。

  12自动静噪(AMCAP):连接到电源端时,该端口功能停止。

  2.4 SPI(串行外设接口)

  2.4.1 SPI协议介绍

  SPI端口是重要的协议,可以同步语音数据的串行传输。ISD4004芯片可在此SPI协议串行接口中工作。传输数据时,串行数据将从SS的下降沿发送出去。当SS处于发送周期时,其状态必须为低电平有效,但是在这两个指令之间,它们的状态仍为高电平有效。数据应添加到时钟序列的上升沿,并在时钟的下降沿移出。INT具有特殊功能。在ISD4004的任何操作期间,如果遇到INT,将产生一个中断。中断将在下一个时钟周期开始时清除。该操作只能在运行位置为1时运行,在运行位置为0时停止。同时,它由8位和16位组成,作为指令格式。所有指令均在SS的上升沿开始执行。

  2.4.2信息快进

  当处于播放模式的时候可以启用信息快进功能,该功能不要求使用者需要知道话音信息存储的确切地址。该功能的播放速度为常规播放速度的1600倍。使用者可以使用该功能快速的跳过当前播放的信息。当一条信息播放结束后,信息快进功能停止,播放地址变成下一条信息的开端。

  2.4.3上电顺序

  该设备只能在TPUD延迟(以8 kHz采样时大约25 ms)之后才能开始操作。因此,在发送开机命令后,用户必须等待TPUD,然后发出操作命令。

  如从00开始发音,应遵循以下顺序:

  1发送POWERUP命令;

  2等待TPUD(上电延时);

  3发送地址值为00的SETPLAY命令;

  4发送PLAY命令。器件会从此00地址开始放音,当出现EOM时,立即中断,停止放音。

  如果从00处录音,则按以下时序:

  1发送POWER UP命令;

  2等待TPUD(上电延时);

  3发送POWER UP命令;

  4等待2倍TPUD;

  5发送地址值为00的SETREC命令;

  6发送REC命令。器件便从00地址开始录音,一直到出现OVF(存贮器末尾)时,录音停止。

  指令表

  指令8位控制码<16位地址>操作总结

  POWERUP 00100XXX<XXXXXXXXXXXXXXXX>上电:等待TPUD后设备可以正常工作

  SET PLAY 11100XXX<A15-A0>从指定的地址开始播放。紧接着PLAY命令可以继续播放

  PLAY 11110XXX<XXXXXXXXXXXXXXXX>从当前地址播放(直到EOM或OVF)

  SET REC 10100XXX<A15-A0>从指定的地址开始记录。跟随REC命令以继续记录

  REC 10110XXX<XXXXXXXXXXXXXXXX>从当前地址开始记录(直到OVF或停止)

  SET MC 11101XXX<A15-A0>从指定地址快进。MC指令后可以使快进继续

  MC 11111XXX<XXXXXXXXXXXXXXXX>执行快进,直到EOM。如果没有更多信息,进入OVF状态

  STOP 0X110XXX<XXXXXXXXXXXXXXXX>停止当前操作

  STOP WRDN 0X01XXXX<XXXXXXXXXXXXXXXX>停止当前操作并关闭电源

  RINT 0X110XXX<XXXXXXXXXXXXXXXX>读取状态:OVF和EO

  注意事项:只有当设备开始放音之后,才可以选择快进功能。

  2.4.4 SPI端口的控制位

  SPI端口具有两个硬件控制位MISO和MOSI,并且SPI控制寄存器控制功能诸如回放,记录,信息检索,上电,断电,开始和停止以及忽略地址指示等功能。

  2.4.5 SPI控制寄存器

  SPI控制寄存器控制设备的每个功能,例如声音的录入存储和输出播放,声音的存放地址位置,信息快进跳过,控制电源开关,启动和停止正在执行的操作,忽略地址指针等。

  控制器功能

  位值功能

  RUN 1

  0允许/禁止操作

  开始停止

  PU 1

  0电源控制

  上电掉电

  P/-R 1

  0录/放模式

  放音录音

  IAB 1

  0操作是否使用指令地址

  忽略/使用输入地址寄存的内容

  MC 1

  0快进模式

  允许禁止

  P15-P0

  A15-A0行指针寄存器输出

  输入地址寄存器

  注意:IAB设置为0,记录和回放将从地址A9-A0开始并循环往复。

  2.4.6时序

  SPI总线协议的结构是由ss(cs),sck,sdi和sdo组成的环形总线结构。它的时序主要由sck控制,两个双向移位寄存器交换数据。我们在此设置,后续的8位寄存器包含要发送的数据10101010,上升沿发送,下降沿接收,高位先发送。然后,当第一个上升沿到来时,数据为sdo=1,否则数据为sdo=1。寄存器=0101010x。当下降沿到来时,sdi上的电平存储在寄存器中,然后寄存器=0101010sdi,以便在这8个时钟脉冲之后交换两个寄存器的内容。构成了一个完整的SPI时序。SPI时序参数如下表所示:

  Symbol Parameters Min Typ Max Units

  TSSS/SS Setup Time 500 nsec

  TSSH/SS Hold Time 500 nsec

  TDIS Data in Setup Time 200 nsec

  TDIH Data in Hold Time 200 nsec

  TPD Output Delay 500 nsec

  TDF Output Delay to Hiz 500 nsec

  TSSmin/SS HIGH 1μsec

  TSCKhi SCLK High Time 400 nsec

  TSCKlow SCLK Low Time 400 nsec

  F0 CLK(Frequency)1000 kHz

  第三章语音录放系统设计

  3.1硬件电路设计

  本次论文的硬件电路构成主要由一个单片机和一个ISD语言芯片组成。该系统可以分为三个部分。单片机控制部分,记录部分,回放部分。本次论文所设计的语音录放系统所采用的语音芯片型号为ISD4004-08MPY语音芯片,该芯片的录放语音总时间为8分钟。本次论文设计语音录放系统电路以STC89C52RC单片机、ISD4004-08MPY语音芯片两个元件为核心。该系统由单片机控制模块,录音模块,放音模块三部分构成。

  系统的硬件电路如图所示连接:

  3.2 ISD4004电路连接图

  本次论文采用了ISD4004-08MPY芯片。基于该芯片进行构筑放音电路、录音电路。

  其电路连接图如下:

  3.3语音芯片的内部信息寻址机制

  ISD4004语音芯片具有精确控制语音记录和回放地址的功能。使用此功能,我们可以方便,灵活地处理语音信息,以满足我们对语音信息的要求。例如,我们可以使用软件编程方法来编辑和合成语音信息,以满足我们对语音信息的特定要求。另外,通过程序控制,我们可以实现语音的常规播放和循环播放。几条信息按顺序分别输入到芯片中。我们需要始终了解芯片存储器中已记录信息的位置。通过ISD4004语音芯片的工作的存储信息的位置,以便我们知道所管理的每个输入的信息的开头和结尾的确切存储地址。

  ISD4004-8MP的信息寻址机制,即行地址时钟(以下称为RAC),是它具有的特殊信息寻址机制。必须首先引入设备的存储器结构。以弄清其工作原理

  以ISD4004-8MP为例,如果RAC刚好到达行尾,则RAC在行尾之前25 ms变为低电平。就像手表一样,您可以用来确定录制和回放的位置。与单片机的速度相比,这个时钟速度相对较慢,在上面的示例中为200 ms。因此,微控制器可以简单地通过软件查询RAC,以确定何时到达线路末端。

  RAC时钟频率相比于单片机的寻访速度要慢很多,所以因此当最后一次识别出RAC的低电平以重新检测RAC时,通过轮询方法检测到RAC每个周期的低电平时,必须经过一个延迟。检测到的低电平有效。该延迟可以被称为“错误延迟”。延迟时间必须大于RAC低电平时间且小于RAC周期。

  我们可以使用计数器对RAC引脚进行计数,这样我们不仅知道输入的每条消息的开始和结束地址,而且还知道每条消息内容地址的具体内容,创建地址表以编辑和合成信息,以满足语音信息的特定需求。

  我们还可以在播放过程中实现语音信息的准确再现。只需将经过预处理的语音信息的确切地址发送到ISD4004的控制连接,即可实现指定地址的再现。如有必要,我们还可以实时监视ISD4004的播放地址。该方法类似于收入声音的方法。

  3.4程序流程图

  首先,电路上电后,程序开始初始化程序。程序启动以后,单片机扫描按键电路状态,当功能键按下以后,判断按键的功能来调用录音或者放音程序。当按键松开以后,结束该项功能。功能键包括录放音两部分。

  第四章调试运行语音录放系统

  4.1软件调试

  首先先对该系统的各功能要求进行代码的构建,然后对编写的代码进行纠错和调试。在此调试中,KEIL用于开发和编译用于程序调试的软件。首先,对每个功能程序分别进行调制,针对每一项错误进行代码的更改和调试,等到各项无误后,汇总在一起对主程序进行调试,这样可以加快调试速度,并大大减少工作量。以下是调制过程中的简要步骤:首先在KEIL编译软件中查找STC89C52微控制器,将其选择为控制处理器,然后开始创建一个新的项目文件,将之前编写的各种功能程序输入该软件中。然后将其保存开始编译程序,编译后该软件将标记错误的程序结果,以方便人们修改。然后根据错误位置提示对其进行修改。编译完每个功能程序后,执行整个程序,然后查看整个程序中哪里有错误,根据错误提示进行修改,以完善整个程序,当程序已全部执行没有错误后,软件调试成功。

  4.2硬件调试

  当软件调试成功以后,通过KEIL软件生成HEX文件。将实物按照设计好的电路图进行连接,连接期间一定要注意好连接的引脚石否正确,否则很容易就会引起电路短路烧毁元器件。等到各元件连接正确,将准备好的HEX文件烧入进单片机中,进行功能测试,发现功能调用出现问题后,返回代码部分重新进行软件调试。各功能测试无失误以后,本次硬件调试成功,基于单片机的语音录放系统设计成功。