一个PCM音频转换与混音的示例

  做语音通讯时通常会碰到需要将某种格式的音频信号转换成其它格式的音频信号和将两个或多个音频信号混合的情况,参考网上搜寻到的一些资料,我做了一个示例程序,此程序可以将两个 8Bit 8000Sample 1Channel PCM A-Law 格式的音频文件转换成为容易混音的16Bit 8000Sample 1Channel PCM Line格式的音频数据,然后对两个信号进行混音处理,最后将混音结果再转换为8Bit 8000Sample 1Channel PCM A-Law格式保存。
  格式转换使用了ACM,参考了《VC下调用ACM音频编程接口压缩Wave音频》(原文不知何处,GOOGLE一下一大把),混音则采用最简便的线性累加的方法进行累加。
  我提供了两个文件A1.PCM和A2.PCM,点击Convert按钮会将这两个文件转换为B1.PCM与B2.PCM,生成这两个文件后,点击MIX按钮会将B1.PCM与B2.PCM混合并生成M.PCM。

  A1.PCM、A2.PCM、M.PCM格式均为 8Bit 8000Sample 1Channel PCM A-Law格式
  B1.PCM、B2.PCM格式为16Bit 8000Sample 1Channel PCM Line格式
  以上文件可以使用CoolEdit或Adobe Audition打开。

  工程基于CodeGear C++ Builder 2007,在Windows Server 2003和Vista下均调试通过。

代码下载:点此下载
posted @ 2008-06-26 11:27  AndyHai  阅读(6180)  评论(3编辑  收藏  举报
QQ: 2369537