第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/7/26 4:05:01 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

图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文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2499m886k825ui718xfz9x6b742rz501dsm_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top