河南理工大学毕业设计(论文)说明书
(14)使用凌阳音频编码SACM_S480可以播放压缩的语音资源 (15)锁相环PLL振荡器提供系统时钟信号 (16)32768Hz实时时钟
(17)7通道10位电压摸/数转换器(ADC)和单通道声音模/数转换器 (18)声音模/数转换器输入容道内置麦克风放大器,并具有自动增益控制(AGC)功能
(19)具备串行设备接楼(SIO)
(20)具备低电压复位(LVR)功能和低电压检测(LVD)功能 (21)内置ICE(在线仿真电路)接口 (22)具有WatchDog功能
SPCE061A 单片机代表了单片机发展的潮流,非常适合用于嵌入式语音识别系统。
? 它整合了多个常用的功能模块,让我们在进行系统开发的时候不
用外加过多的硬件就可方便的 完成一个系统的设计,这就是人们常说的 SoC(System on chip)技术。
? 耗电少,可以满足很多手提设备、掌上设备低能耗的需求,低能
耗也是电子技术一直在追求的 一个目标。
? 可方便的用来实现声音录制、播放,Midi 音乐合成和语音识别,
相比别的单片机比较有特色。
? 可方便的完成一系列乘加的运数,实现一些数据处理比较容易,
别的单片机一般都不具备这种 功能。
? 芯片里具备在线仿真调试电路,使调试和程序下载更加方便,也
把仿真器和烧录器的成本给节 省下来了。
凌阳SPCE061A单片机语音处理的实现:
凌阳SPCE061A将语音处理相关各功能做成函数模块,通过API调用来实现。这些函数分为两类:用于音频资料播放的凌阳音频编码(SACM)类和用于辨识语音的语音识别(BSR)类。对输入生成的WAVE文件按不同的压缩算法压缩成SACM_A2000或SACM_S480等相应语音资料后,就可利用SACM-LIB库对这些资料进行处理。该库将A/D、编码、解码、存储及D/A做成相应的模块,每个模块都有其应用程序接口API函数,调用对应函数即可实现各自功能。如针对特定人语音辨识,SACM-LIB库中提供了包括C语言和汇编语言两种格式定义的API函数,常用语音辨识API函数有:
河南理工大学毕业设计(论文)说明书
(1)SRAM初始化函数int BSR-DeleteSD-Group(int)
(2)训练函数int BSR-Train(int CommandID,int TrainMode) (3)识别初始化函数int BSR-InitRecognizer(int AudioSource) (4)获取识别结果函数int BSR-GetResult(void) (5)停止识别函数void BSR-StopRecognizer(void) (6)识别中断程序-BSR-FIQ-Routine
配合语音压缩及播放的相关API函数,即可构成一个完整的语音应用系统。 SPCE061A的结构如图4-2所示:
ICE-EN
16位微控制器 ICE-SCK u’nSPTM + ICE-SDA ICE
FLASH RAM RAM
双16位定时器 /计数器 时基 中断控制
Vcp XI/R XO
锁相环
振荡器
CPU时钟
实时时钟
7通道10位ADC MIN-CN 单通道ADC+ADG
AUD1 AUD2
双通道
10位DAC输出
低电压监测/ 低电压复位
串行输入输出接口 IOB0(SCK) 32管脚通用输入输出端口 IOA15-0
IOB15-0
IOB1(SDA)
图4-2 SPCE061A结构图
河南理工大学毕业设计(论文)说明书
图3-4 61原理图 放在附录部分
4.2.2 SPLC501液晶显示模组 V5.1
该模组是凌阳公司的一款128*64点阵的液晶模组,驱动芯片采用的是凌阳SPLC501。模组接口简单,应用方便,功耗低,且可以完成较多液晶特效功能。可以显示字符、汉字、图形等,且灰度编程可调。
图4-3 SPLC501原理图
河南理工大学毕业设计(论文)说明书
5系统软件设计
5.1开发环境
所谓的开发环境,其实就是一个或几个电脑上的可执行程序,不管是哪类单片机的开发环境都至少具备如下的功能:
? 程序编写:可以在开发环境里录入程序。 ? 编译程序:负责把程序翻译成机器码。
? 程序下载:把机器码下载到仿真板或开发系统上。
61 板开发系统的开发环境叫做集成开发环境(也称 IDE),它除了具上面的三个功能外还可以组织多个程序文件形成一个系统开发的项目,这样更有利于一些大型系统的开发和各功能模块的模块化,同时它还结合SPCE061A 单片机的硬件提供各类在线调试窗口,使调试程序变得更加直观和简单,除此之外,它还提供一些软件模拟 SPCE061A 单片机仿真的功能,在没有硬件的情况下也可以完成一些简单程序的调试。
5.2主程序的设计
基于凌阳61单片机的声控遥控器找寻器需要有语音信号的采集、识别处理、语音匹配、报警的运行过程。根据这一要求,语音信号采集与处理分三个阶段:61单片机音频部分的麦克风接收到语音信号以后,将其转交给语音处理部分进行语音识别,与之前训练过程中存入芯片的语音模板进行匹配,若为同一语音源发出的语音信号,则匹配成功后发出相应的报警信号,若不能匹配则不会发出报警声音。5-1为主程序工作流程,
河南理工大学毕业设计(论文)说明书
开始 初始化 Y 已经训练过 N 训练找寻器 保存训练结果 装载语音模型 进入识别模式 语音识别与执行 N 重新训练 Y 清模型存储区 等待复位
图5-1 主程序流程图
完成特定人语音的训练可在主函数中调用相关函数,然后在训练成功后进行语音识别,再根据识别的命令执行相关的操作。根据FLASH中的标志位判断是否为第一次下载。使用BSR _Export SD Word(uiCommand ID) 函数将训练好的语音模型导出存储到FLASH中,用于操作。在语音识别中,首先读取FLASH取得语音模型,然后调用BSR _Import SD Word(uiCommand ID)函数将语音资源载入内存。在识别出命令后,执行相关动作。
61单片机本身具有语音识别的功能,不过要先对其进行语音识别训练,即形成所谓的模板库,让芯片记住这些被训练过的语句和语音频率,当下次同一语音信号出现时,做出相应的动作就可以了。训练是必备的一步,并且多次训练可以使语音识别的效果更好。