打印
[MCU]

基于MSP430的语音与音频压缩/解压缩技术

[复制链接]
970|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Sode|  楼主 | 2019-12-18 16:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
基于MSP430的语音与音频压缩/解压缩技术



      引言

  采用微控制器 (MCU) 来实施语音记录器比较简单。许多MCU 均采用集成模数 (A/D) 转换器。扩音器将捕获到的声音提供给放大器,然后再馈送给 A/D 转换器的模拟输入。可将录制的声音存储在闪存或 RAM 等存储器中,按下按钮就能触发MCU 以播放录制到的声音,其原理是将存储的数据先提供给数模 (D/A) 转换器,然后再提供给音频功率放大器。

  利用MSP430 很容易实现这种语音记录器。MSP430 微控制器利用集成外设来实现片上模拟信号链。此外,MSP430 的 CPU 处理能力非常强大,足以执行录制声音的压缩。


  压缩与解压缩算法

  举例来说,实现语音记录器的最简单办法就是将 A/D 转换器转换结果(如 12 位采样)直接存储在闪存中。音频数据大多数时间都不使用整个 A/D 转换器范围,也就是说,冗余数据也存储在闪存中。压缩算法可去除这些冗余信息,从而减小所存储数据的容量。

  自适应差分脉冲代码调制 (ADPCM) 就是此种类型的压缩算法。ADPCM 算法存在各种类型,但都使用量化器差分编码与量化器中自适应量化阶步长方案。在进一步讨论 IMA ADPCM 算法用于相关代码之前,我们首要来简单介绍一下差分 PCM 编码。


  差分脉冲代码调制 (DPCM)

  DPCM 通过使用当前采样与前一个采样的差值来对模拟音频输入信号进行编码。图 1 显示了DPCM 编码器与解码器的结构图。在本例中,我们用信号估算 Se(n) 而非前一个输入来决定信号差值 d(n),从而确保了编码器使用的信息与解码器相同。如果编码器使用的是上一个输入采样的话,那么就会造成量化的累积错误,从而使重建信号与原始输入信号不同。通过采用如图 1 所示的信号估算,我们能避免重建信号 Sr(n) 与原始输入信号出现差异。重建信号 Sr(n) 是预测器 (predictor) 的输入,其决定了下一个信号估算 Se(n+1)。

  

  图 2 显示了一小段录制音频流,并通过两个示意图给出了模拟音频输入采样(PCM 值)与连续采样(DPCM 值)间差值的比较。

  

  PCM 值的范围在 26 到 203 之间,总共 177 个步长。编码的 DPCM 值范围在-44 至 46之间,总共 90 个步长。尽管量化器步长仅为 1,但这种 DPCM 编码已经实现了输入数据的压缩功能。只需选择较大的量化器步长即可将编码 DPCM 值的范围进一步缩小。



使用特权

评论回复

相关帖子

沙发
51xlf| | 2019-12-27 21:19 | 只看该作者
单片机压缩mp3,性能到不到  

使用特权

评论回复
板凳
i1mcu| | 2019-12-27 21:19 | 只看该作者
指的是实时压缩?  

使用特权

评论回复
地板
pmp| | 2019-12-27 21:19 | 只看该作者
低档次的单片机恐怕不能胜任这样的工作

使用特权

评论回复
5
mmbs| | 2019-12-27 21:19 | 只看该作者
32位ARM中的高端产品可以胜任这样的工作

使用特权

评论回复
6
1988020566| | 2019-12-27 21:20 | 只看该作者
用单片机采集音频的弱点在采集速度

使用特权

评论回复
7
lzbf| | 2019-12-27 21:20 | 只看该作者
是怎么压缩成功的?  

使用特权

评论回复
8
houjiakai| | 2019-12-27 21:20 | 只看该作者
压缩算法跟单片机无直接关系  

使用特权

评论回复
9
youtome| | 2019-12-27 21:20 | 只看该作者
单片机如何直接播放音频文件

使用特权

评论回复
10
cemaj| | 2019-12-27 21:21 | 只看该作者
单片机视频压缩怎么做  

使用特权

评论回复
11
jimmhu| | 2019-12-27 21:21 | 只看该作者
单片机如何控制语音芯片  

使用特权

评论回复
12
houjiakai| | 2019-12-27 21:21 | 只看该作者
单片机执行只是速度慢一些而已

使用特权

评论回复
13
51xlf| | 2019-12-27 21:21 | 只看该作者
32b位的也要跑几十兆,才能压缩

使用特权

评论回复
14
lzbf| | 2019-12-27 21:21 | 只看该作者
小型的单片机无损压缩算法?

使用特权

评论回复
15
i1mcu| | 2019-12-27 21:21 | 只看该作者
如果采样率是8k,效果很差。16k采样才可以。

使用特权

评论回复
16
1988020566| | 2019-12-27 21:21 | 只看该作者
内存肯定不够用  

使用特权

评论回复
17
pmp| | 2019-12-27 21:21 | 只看该作者
视频压缩和解压运算比较复杂

使用特权

评论回复
18
mmbs| | 2019-12-27 21:21 | 只看该作者
普通单片机在内存大小和运算速度方面差很多

使用特权

评论回复
19
jimmhu| | 2019-12-27 21:21 | 只看该作者
单片机HEX文件太大了把HEX文件分成两段的方法?

使用特权

评论回复
20
cemaj| | 2019-12-27 21:21 | 只看该作者
单片机 语音芯片如何烧录语音

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1049

主题

1522

帖子

8

粉丝