西西软件园多重安全检测下载网站、值得信赖的软件下载站!
西西首页 电脑软件 安卓软件 电脑游戏 安卓游戏 排行榜 专题合集

将PCM数据转换成WAV文件(pcm2wav)

绿色版
  • 将PCM数据转换成WAV文件(pcm2wav)绿色版
  • 软件大小:106KB
  • 更新时间:2013-10-14 17:38
  • 软件语言:中文
  • 软件厂商:
  • 软件类别:国产软件 / 免费软件 / 音频处理
  • 软件等级:4级
  • 应用平台:WinAll, WinXP
  • 官方网站:暂无
  • 应用备案:
好评:50%
坏评:50%

软件介绍

将PCM数据转换成WAV文件其实只是加个文件头。但要做给普通用户用,界面比较费时间。增加了单声道、双声道选择,样本宽度,提供更多采样率,并允许输入采样率。

实现原理:

wav文件通常包含4段:RIFF、格式段、FACT段和数据段。 PCM数据就放在数据段。只要格式段设置的格式与数据段的数据一致,播放程序就可以正确解析。 下面这个数组的数据其实就是一个最小的wav文件。

static const unsigned char wav_template[] =
{
	// RIFF WAVE Chunk
	0x52, 0x49, 0x46, 0x46,		// "RIFF"
	0x30, 0x00, 0x00, 0x00,		// 总长度 整个wav文件大小减去ID和Size所占用的字节数
	0x57, 0x41, 0x56, 0x45,		// "WAVE"
	
	// Format Chunk
	0x66, 0x6D, 0x74, 0x20,		// "fmt "
	0x10, 0x00, 0x00, 0x00,		// 块长度
	0x01, 0x00,			// 编码方式
	0x01, 0x00,			// 声道数目
	0x80, 0x3E, 0x00, 0x00,		// 采样频率
	0x00, 0x7D, 0x00, 0x00,		// 每秒所需字节数=采样频率*块对齐字节
	0x02, 0x00,			// 数据对齐字节=每个样本字节数*声道数目
	0x10, 0x00,			// 样本宽度
	
	// Fact Chunk
	0x66, 0x61, 0x63, 0x74,		// "fact"
	0x04, 0x00, 0x00, 0x00,		// 块长度
	0x00, 0xBE, 0x00, 0x00, 

	// Data Chunk
	0x64, 0x61, 0x74, 0x61,		// "data"
	0x00, 0x00, 0x00, 0x00,		// 块长度
};

这个wav文件的数据长度为0。我们要增加PCM数据只要完成以下工作:

在数据段尾增加PCM数据;

修改数据段的块长度,修改RIFF段的总长度;

正确设置格式段的PCM参数。

样本长度可能不是8的整数倍,这时wav文件还是要求样本按照字节对齐。在一个样本中数据是左对齐的,右侧空位用0填充。 pcm2wav只考虑了样本长度是16位的情况。

如果有多个声道,wav文件要求先放样本1的各声道数据,再放样本2的各声道数据,依此类推。 因为我没有碰到过处理多声道数据的需求,所以pcm2wav只考虑了单声道。

软件标签: wav PCM

软件截图

将PCM数据转换成WAV文件(pcm2wav) 绿色版

其他版本下载

最新评论查看所有(1)条评论 >

第 1 楼 英国 网友 客人 发表于: 2012/5/10 19:55:24
如果转换个别文件,其实可以用一个叫WaveCN的程序。不过WaveCN不支持big endian。我现在不怎么用到PCM数据,但写这种简单的程序,其实和打一个小游戏也差不多,一些按部就班,几个小关卡和一点成功的喜悦。

支持( 0 ) 盖楼(回复)

发表评论

昵称:
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
TOP
软件下载