Wav编码转换

   首先我要说明一下,我下面要说的不是对于音频数据算法处理的内容,而是对于Wav文件编码头信息的解释以及一些简单的处理。

   如果你已经完全了解了,就可以不用看了。

   ---------------------------------------------------------------------

   百度百科:

    WAV为微软公司(Microsoft)开发的一种声音文件格式,文件作为多媒体中使用的声波文件格式之一,它是以RIFF(Resource Interchange File Format)格式为标准的。每个WAV文件的头四个字节便是“RIFF”。WAV文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分,包含了音频流的编码参数。

WAV对音频流的编码没有硬性规定,除了PCM(Pulse Code Modulation脉冲编码调制)之外,还有几乎所有支持ACM规范的编码都可以为WAV的音频流进行编码,如MP3编码同样也可以运用在WAV中,只要安装好了相应的Decode(指令解码),就可以欣赏这些WAV了。

在windows平台下,基于PCM编码的WAV是被支持得最好的音频格式,所有音频软件都能完美支持,由于本身可以达到较高的音质要求,因此,WAV也是音乐编辑创作的首选格式,适合保存音乐素材。因此,基于PCM编码的WAV被作为了一种中介的格式,常常使用在其他编码的相互转换之中,例如MP3转换成WMA。

WAV文件可以存储大量格式的数据,通常采用的音频编码方式是脉冲编码调制(PCM)。由于WAV格式源自Windows/Intel环境,因而采用Little-Endian(小字节序、低字节序)字节顺序进行存储。

   看了百科,基本上什么是Wav文件,应该没什么问题了。

   下面开始正题,

    1. Wav编码格式的转换。

        如果你用的是XP或者其他什么windows 系统,估计系统都有自带的录音机。利用这个录音机就可以很方便的转化 Wav文件的编码,这里的选择也非常多,什么采样频率,什么8位16位都有。

        这个的前提是你只需要手动转化,或者在PC这个windows平台上,一般都可以通过代码实现。如果在其他平台上,比如,手机,相机。那么你就需要真正的代码实现。

        如果你够勤劳,那么你应该可以通过google 或者百度,找到标准的转化代码。

        我在这里就举个最简单的例子 比如 U-LAW编码格式的WAV文件转化为PCM编码的WAV文件。通过查询这个编码标准G711 ,可以在googl代码中搜索 到 g711的编码转换源代码。

        下面就是g711的源代码。其他的编码也有G72x等,

/*
 * This source code is a product of Sun Microsystems, Inc. and is provided
 * for unrestricted use.  Users may copy or modify this source code without
 * charge.
 *
 * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
 * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
 *
 * Sun source code is provided with no support and without any obligation on
 * the part of Sun Microsystems, Inc. to assist in its use, correction,
 * modification or enhancement.
 *
 * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
 * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
 * OR ANY PART THEREOF.
 *
 * In no event will Sun Microsystems, Inc. be liable for any lost revenue
 * or profits or other special, indirect and consequential damages, even if
 * Sun has been advised of the possibility of such damages.
 *
 * Sun Microsystems, Inc.
 * 2550 Garcia Avenue
 * Mountain View, California  94043
 */

/*
 * g711.c
 *
 * u-law, A-law and linear PCM conversions.
 */
#define SIGN_BIT        (0x80)          /* Sign bit for a A-law byte. */
#define QUANT_MASK      (0xf)           /* Quantization field mask. */
#define NSEGS           (8)             /* Number of A-law segments. */
#define SEG_SHIFT       (4)             /* Left shift for segment number. */
#define SEG_MASK        (0x70)          /* Segment field mask. */

static short seg_end[8] = {0xFF, 0x1FF, 0x3FF, 0x7FF,
                            0xFFF, 0x1FFF, 0x3FFF, 0x7FFF};

/* copy from CCITT G.711 specifications */
unsigned char _u2a[128] = {                     /* u- to A-law conversions */
        1,      1,      2,      2,      3,      3,      4,      4,
        5,      5,      6,      6,      7,      7,      8,      8,
        9,      10,     11,     12,     13,     14,     15,     16,
        17,     18,     19,     20,     21,     22,     23,     24,
        25,     27,     29,     31,     33,     34,     35,     36,
        37,     38,     39,     40,     41,     42,     43,     44,
        46,     48,     49,     50,     51,     52,     53,     54,
        55,     56,     57,     58,     59,     60,     61,     62,
        64,     65,     66,     67,     68,     69,     70,     71,
        72,     73,     74,     75,     76,     77,     78,     79,
        81,     82,     83,     84,     85,     86,     87,     88,
        89,     90,     91,     92,     93,     94,     
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
1、Java实现wav音频文件转换为pcm音频文件(AudioUtils.java) 2、Java实现播放pcm音频文件(PCMPlay.java) WAVwav是一种无损的音频文件格式,WAV符合 PIFF(Resource Interchange File Format)规范。所有的WAV都有一个文件头,这个文件头音频流的编码参数。WAV对音频流的编码没有硬性规定,除了PCM之外,还有几乎所有支持ACM规范的编码都可以为WAV的音频流进行编码。 PCM:PCM(Pulse Code Modulation----脉码调制录音)。所谓PCM录音就是将声音等模拟信号变成符号化的脉冲列,再予以记录。PCM信号是由[1]、[0]等符号构成的数字信号,而未经过任何编码和压缩处理。与模拟信号比,它不易受传送系统的杂波及失真的影响。动态范围宽,可得到音质相当好的影响效果。 简单来说:wav是一种无损的音频文件格式,pcm是没有压缩的编码方式。 WAV和PCM的关系 WAV可以使用多种音频编码来压缩其音频流,不过我们常见的都是音频流被PCM编码处理的WAV,但这不表示WAV只能使用PCM编码,MP3编码同样也可以运用在WAV中,和AVI一样,只要安装好了相应的Decode,就可以欣赏这些WAV了。在Windows平台下,基于PCM编码WAV是被支持得最好的音频格式,所有音频软件都能完美支持,由于本身可以达到较高的音质的要求,因此,WAV也是音乐编辑创作的首选格式,适合保存音乐素材。因此,基于PCM编码WAV被作为了一种中介的格式,常常使用在其他编码的相互转换之中,例如MP3转换成WMA。 简单来说:pcm是无损wav文件中音频数据的一种编码方式,但wav还可以用其它方式编码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值