音频文件PCM、WAV、MP3的区别以及文件合并

这篇具有很好参考价值的文章主要介绍了音频文件PCM、WAV、MP3的区别以及文件合并。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 一、数字音频三要素

1.采样率

采样率即采样频率,指的一秒内的采样次数,它反映了采样点之间的间隔大小。常说的 44.1KHz 采样率,也即 1 秒采集了 44100 个样本。间隔越小,丢失的信息越少,数字声音就越逼真细腻,要求的存储量也就越大。由于计算机的工作速度和存储容量有限,而且人耳的听觉上限为20kHz,所以采样频率不可能也不需要太高。根据奈奎斯特采样定律,只要采样频率高于信号中最高频率的两倍,就可以从采样中恢复原始的波形。因此,40kHz以上的采样频率足以使人满意。

在实际应用中,我们为了平衡带宽和音质,不同场景往往会有不同的选择。常见的选择如下:

mp3 pcm,c语言,音频,嵌入式硬件

 2.采样位深

位深又叫做量化位数、采样位数、分辨率,它是指声音的连续强度被数字表示后可以分为多少级。N-bit的意思声音的强度被均分为2^N级。16-bit的话,就是65535级。这是一个很大的数了,人可能也分辨不出六万五千五百三十五分之一的音强差别。也可以说是声卡的分辨率,它的数值越大,分辨率也就越高,所发出声音的能力越强。原则上,这个值也是大一些比较好,但是记录的数据量也会成倍增长。

和采样率的选择类似,虽然理论上来说位深越大越好,但是综合带宽、存储、实际听感的考虑,我们应该为不同场景选用不同的位深:

mp3 pcm,c语言,音频,嵌入式硬件

3.声道数

声音记录只产生一个波形,称为单声道。声音记录只产生两个波形,称为立体声双道(最基本的立体声是两声道:左声道、右声道)。立体声比单声道声音丰满、空间感强,但需要两倍的存储空间。

二、音频码率

数字音频的三要素不仅影响音频质量,也会影响音频存储、传输所需的空间、带宽。而实际应用场景下,音质决定用户体验、带宽决定成本,都是我们必须考虑到。音质可能更多是主观上的感受,但带宽、空间是比较容易量化的,我们需要了解音频码率的概念。

音频码率,又称为比特率,指的是单位时间内(一般为1s)所包含的音频数据量,可以通过公式计算。比如采样率 44.1KHz,位深16bit的双声道音频PCM数据,它的原始码率为:

原始码率 = 采样率/s x 位深/bit x 声道数 x 时长(1s)=44.1x1000x16x2x1 = 1411200 bps = 1411.2 kbps = 1.411 Mbps (需要注意单位之间的差异和转换,b=bit)

如果一个PCM文件时长为1分钟,则传输/存储这个文件需要的数据量为:1.411 Mbps * 60s = 86.46Mb。

需要注意的是,上述计算结果是未经压缩的、原始音频PCM数据的码率。RTC场景下,往往还需要再使用 AAC、OPUS 等编码算法做编码压缩,进一步减小带宽、存储的压力。码率的选择也是一个综合质量和成本的博弈,以后我们会详细讲解音频编码的知识,此处大家先了解即可。

三、wav、mp3、pcm文件的组成部分

1.wav文件格式

wav是一种无损的音频文件格式,wav文件格式是用于多媒体文件存储的微软RIFF规范的一个子集。一个RIFF文件从一个文件头开始,后面是一系列的数据块。一个wav文件通常只是一个带有单一"WAVE"块的RIFF文件。"WAVE"块是由两个子块组成的,一个是指定数据格式的“fmt”块和另一个是包含实际样本数据的数据块。这种形式被称为是“规范形式”("Canonical form")。具体格式如图所示:

上图中的data区域就是就是真正的数据部分,data上面的44字节是文件头,其文件头格式可以用下面的结构体表示:

typedef struct WAV_HEADER_S
{  
    char            riffType[4];    //4byte,资源交换文件标志:RIFF     
    unsigned int    riffSize;       //4byte,从下个地址到文件结尾的总字节数   
    char            waveType[4];    //4byte,wav文件标志:WAVE      
    char            formatType[4];  //4byte,波形文件标志:FMT(最后一位空格符)   
    unsigned int    formatSize;     //4byte,音频属性(compressionCode,numChannels,sampleRate,bytesPerSecond,blockAlign,bitsPerSample)所占字节数  
    unsigned short  compressionCode;//2byte,格式种类(1-线性pcm-WAVE_FORMAT_PCM,WAVEFORMAT_ADPCM)  
    unsigned short  numChannels;    //2byte,通道数  
    unsigned int    sampleRate;     //4byte,采样率  
    unsigned int    bytesPerSecond; //4byte,传输速率  
    unsigned short  blockAlign;     //2byte,数据块的对齐,即DATA数据块长度  
    unsigned short  bitsPerSample;  //2byte,采样精度-PCM位宽  
    char            dataType[4];    //4byte,数据标志:data  
    unsigned int    dataSize;       //4byte,从下个地址到文件结尾的总字节数,即除了wav header以外的pcm data length  
}WAV_HEADER;  

2.pcm文件格式

PCM(Pulse Code Modulation----脉码调制录音)。所谓PCM录音就是将声音等模拟信号变成符号化的脉冲列,再予以记录。PCM信号是由[1]、[0]等符号构成的数字信号,而未经过任何编码和压缩处理。与模拟信号比,它不易受传送系统的杂波及失真的影响。动态范围宽,可得到音质相当好的影响效果。在音视频中,PCM是一种用数字表示采样模拟信号的方法。

3.mp3文件格式

MP3是一个数据压缩格式,

4.wav与pcm文件的相互转换

WAV可以使用多种音频编码来压缩其音频流,不过我们常见的都是音频流被PCM编码处理的WAV,但这不表示WAV只能使用PCM编码,MP3编码同样也可以运用在WAV中,和AVI一样,只要安装好了相应的Decode,就可以欣赏这些WAV了。在Windows平台下,基于PCM编码的WAV是被支持得最好的音频格式,所有音频软件都能完美支持,由于本身可以达到较高的音质的要求,因此,WAV也是音乐编辑创作的首选格式,适合保存音乐素材。因此,基于PCM编码的WAV被作为了一种中介的格式,常常使用在其他编码的相互转换之中,例如MP3转换成WMA。

简单来说:pcm是无损wav文件中音频数据的一种编码方式,但wav还可以用其它方式编码。

(1)wav转pcm,原理就是将文件头去掉,数据转成int型即可。

(2)pcm转wav,原理就是利用wave库,添加通道信息、采样位数、采样率等信息作为文件头,pcm数据直接写入即可。文章来源地址https://www.toymoban.com/news/detail-608894.html

到了这里,关于音频文件PCM、WAV、MP3的区别以及文件合并的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mp3怎样才能转换成wav格式?音频互相转换的方法

    一,什么是WAV WAV,全称为波形音频文件(Waveform Audio File Format),是一种由微软公司和IBM公司联合开发的音频文件格式。自1991年问世以来,WAV格式因其无损的音频质量和广泛的兼容性,成为了多媒体应用中不可或缺的一部分。本文将从WAV格式的定义、特点、应用以及与其他音

    2024年04月14日
    浏览(58)
  • uniapp 微信小程序 使用video 播放mp3、wav、flac等音频文件 报错 MEDIA_ERR_DECODE(-11103,11010001)

     官方解释是解码发生了错误,当是我对音频文件进行转码后并未解决这个问题,但是我想到解决方案是使用audio 标签,但是样式又非常丑自能选择自己写,然后又出现个问题audio标签获取不了播放音频总时长,差点没缓过气来。。。最后苦思冥想到了解决方案,使用video标签

    2024年02月03日
    浏览(106)
  • Linux音频处理:MP3解码、PCM、播放PCM、ALSA(Advanced Linux Sound Architecture)、MPEG(Moving Picture Experts Group)

    将MP3音频文件中的数字音频数据转换为可以播放或处理的音频信号的过程。MP3(MPEG-1 Audio Layer 3)是一种常见的音频压缩格式,用于将音频文件压缩到较小的文件大小,同时保持相对高的音质。 以下是MP3解码的一般步骤: 读取MP3文件 : 首先,需要读取存储在MP3文件中的音频

    2024年02月03日
    浏览(42)
  • 如何制作mp3音频文件?分享制作mp3的简单方法

    MP3 对每个人来说都不是一个陌生的名字,因为它是全球排名第一的主流音乐格式。听过上千首MP3歌曲,你知道自己可以制作MP3文件吗?如果答案是否定的,那么您很幸运能找到这篇文章,因为它将通过向您介绍一个免费且简单的解决方案,重点介绍如何在 Windows 中创建 MP3 文

    2023年04月15日
    浏览(62)
  • 使用ffmpeg将m4a及wav等文件转换为MP3格式

    要使用ffmpeg将m4a及wav等文件转换为MP3格式,您可以按照以下步骤进行操作: 确保您已经安装了ffmpeg软件。如果没有安装,请访问ffmpeg的官方网站https://ffmpeg.org/ 并按照说明进行安装。 Win10 / Win11 可以通过 winget 命令安装 注意前提已经在微软应用商店安装了 应用安装程序 安装

    2024年02月13日
    浏览(45)
  • mp4文件可以转成mp3音频吗

    现在是个非常流行刷短视频一个年代,刷短视似乎成了人们休闲娱乐的一种方式,在日常刷短视频过程中,肯定会有很多同学被短视频 bgm 神曲洗脑,比如很多被网红翻唱带火的歌曲,例如其中\\\"不负人间”,就是其中之一,一开口直击灵魂,旋律在脑海挥之不去! 有些同学肯

    2024年01月20日
    浏览(48)
  • Android studio添加MP3音频文件(超详细教程)

    进入Android studio 在res下新建一个文件夹raw,右击res—— New ——Direclory 输入raw 再把MP3文件复制到raw就可以了。 这样就完成了。

    2024年02月11日
    浏览(52)
  • ffmpeg批量转换wav为mp3

    1、新建一个txt文件,并复制如下代码进入,然后保存。 2、把文件后缀修改为bat 。 3、把后缀为bat的文件放到要批量处理的视频文件夹里面。 4、在确保安装了ffmpeg的情况下,双击bat文件执行即可。 5、参数说明: -i          输入文件,这里指的就是视频文件。 -y       

    2024年01月20日
    浏览(60)
  • 怎样压缩mp3文件?分享四个压缩音频的方法

    为什么压缩mp3为什么压缩MP3? 随着数字音乐的普及,MP3格式已成为最常用的音频文件格式之一。然而,尽管MP3提供了高质量的音乐体验,但它也带来了一个不可忽视的问题:文件大小。未压缩的音频文件,尤其是无损音频文件,可能会占用大量的存储空间。这对于拥有大量音

    2024年03月23日
    浏览(65)
  • 微软Azure文本转音频,保存成MP3文件【代码python3】

    标签: 文本转音频并保存mp3文件; 微软Azure; 微软Azure可以将文本转音频,并保存mp3文件,直接上代码 代码格式: python 3 注意: 1,代码运行前,SPEECH_KEY和SPEECH_REGION已生成好,并保存在你的环境变量中。 参考:https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/get-started-

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包