基于单片机的数字化语音存储与回放系统[附源码和中英文翻译]

2025/5/8 14:20:13

图3-6 复位电路

3.5 PROBEG和EZ-PROBE接口

61板结构方框图中的J4为PROBE的接口,PROBE一端接PC机25针并口,一端连接它来调试、仿真和下载程序的。这样,就不需要再用仿真器和编程器了,只需按照要求将其连接好,就可以通过它在PC机上调试程序,并且在线仿真,最后将程序下载到芯片中,即完成了程序的烧写。",方框图中的J11是EZ-PROBE的接口,下载线一端连接PC机的25pin并口,另外一端接61板的5pin EZ-PROBE接口。

第四章 软件系统设计

4.1 音频压缩及算法 4.1.1 音频的概述

我们所说的音频是指频率在20 Hz~20 kHz的声音信号,分为:波形声音、语音和音乐三种,其中波形声音就是自然界中所有的声音,是声音数字化的基础。语音也可以表示为波形声音,但波形声音表示不出语言、语音学的内涵。语音是对讲话声音的一次抽象。是语言的载体,是人类社会特有的一种信息系统,是社会交际工具的符号。音乐与语音相比更规范一些,是符号化了的声音。但音乐不能对所有的声音进行符号化。乐谱是符号化声音的符号组,表示比单个符号更复杂的声音信息内容。

4.1.2 数字音频的采样和量化

将模拟的(连续的)声音波形数字元化(离散化),以便利数字计算机进行处理的过程,主要包括采样和量化两个方面。

数字音频的质量取决于:采样频率和量化位数这两个重要参数。此外,声道的数目、相应的音频设备也是影响音频质量的原因。

4.1.3 语音压缩编码基础

语音压缩编码中的数据量是指:数据量=(采样频率×量化位数)/8(字节数) ×

声道数目。

压缩编码的目的:通过对资料的压缩,达到高效率存储和转换资料的结果,即在保证一定声音质量的条件下,以最小的资料率来表达和传送声音信息。

压缩编码的必要性:实际应用中,未经压缩编码的音频资料量很大,进行传输或存储是不现实的。 所以要通过对信号趋势的预测和冗余信息处理,进行资料的压缩,这样就可以使我们用较少的资源建立更多的信息。

举个例子,没有压缩过的CD品质的资料,一分钟的内容需要11MB的内存容量来存储。如果将原始资料进行压缩处理,在确保声音品质不失真的前提下,将数据压缩一半,5.5MB就可以完全还原效果。而在实际操作中,可以依需要来选择合适的算法。常用的是SACM_A2000和SACM_S480两种放音算法

4.2 A2000键控语音模块

本部分模块设计的总体思路是把整个系统分为录音、停止和放音三种状态,状态的改变用按键K1\\K2\\K3控制。录放音都放在中断服务程序里处理,主程序只处理键盘事件。主程序先对系统进行初始化,然后只处理键盘事件,判断按键值,并据此设置相应的系统状态。中断服务程序是通过定时器中断进入的。在中断服务程序中,先判断系统当前状态,根据系统状态进行相应操作。如果是录音状态,就去取ADC结果进行数字滤波,把滤波结果保存到SPR4096中,最后清中断标志退出中断服务;如果是放音状态,就从SPR4096中读出数据,进行DAC,最后清中断标志退出中断服务;如果是停止状态,就不进行其它操作,直接清中断标志就退出中断服务程序。

4.2.1键控语音函数及说明

通过键盘扫描,键值确定,根据不同的键值,做出语音播放的不同处理。 使用相关语音函数说明: 语音函数,来自于sacmv25.lib 1)

【API格式】void SACM_A2000_ServiceLoop(void)

【功能说明】从资源中获取SACM_A2000语音资料,并将其填入译码队列中。 【参 数】无。 【返 回 值】无。 2)

【API格式】void SACM_A2000_Initial(int Init_Index) 【功能说明】SACM_A2000语音播放之前的初始化。

【参 数】Init_Index=0 表示手动方式;Init_Index=1 则表示自

动式。

【返 回 值】无

【备 注】该函数用于对定时器、中断和DAC等的初始化

3)

【API格式】void SACM_A2000_Play(int Speech_Index, int Channel, int

Ramp_Set);

【功能说明】播放资源中SACM_A2000语音或乐曲。 【参 数】Speech _Index:表示语音索引号。

Channel: 1.通过DAC1通道播放;

2.通过DAC2通道播放;

3.通过DAC1和DAC2双通道播放。

Ramp_Set: 0.禁止音量增/减调节;

1. 仅允许音量增调节; 2. 仅允许音量减调节; 3. 允许音量增/减调节。

4)

【API格式】unsigned int SP_GetCh(void); 【功能说明】获取按键值。 【参 数】无。

【返 回 值】按键值 5)

【API格式】unsigned int SACM_A2000_Status(void); 【功能说明】获取SACM_A2000语音播放的状态。 【参 数】无。

【返 回 值】当R1的bit0=0,表示语音播放结束;bit0=1,表示语音在播放中。

相关按键函数:来自key.asm文件 6)

【API格式】void System_ServiceLoop (void); 【功能说明】键盘扫描与按键去抖。 【参 数】无。 【返 回 值】无 7)

【API格式】void System_Initial (void); 【功能说明】键盘初始化 【参 数】无。 【返 回 值】无

4.2.2 主程序流程图及说明

说明:本程序流程主要通过对按键扫描、键值确定后,决定语音是播放、停止、暂停。 主程序流程图如图4-1: ?

图4-1 主程序流程图


基于单片机的数字化语音存储与回放系统[附源码和中英文翻译].doc 将本文的Word文档下载到电脑
搜索更多关于: 基于单片机的数字化语音存储与回放系统[附源码和中英文翻译] 的文档
相关推荐
相关阅读
× 快捷下载通道(下载后可以自由复制和排版)

开通会员免费下载

开通会员后百万份文档资料免费自由复制和下载,是您最优的选择,赶快来试试吧!

单篇下载:10元 点击下载

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219