b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

声音文件格式,字节计算,PCM标头信息2019-04-26

电脑杂谈  发布时间:2020-05-22 03:28:56  来源:网络整理

pcm 采样率转换 算法_pcm编码转换lpcm软件_pcm a率

PCM

我们经常在音频处理过程中接触PCM数据: 它是由模数转换(A / D转换)后的模拟音频信号直接形成的二进制序列. 该文件没有其他文件头和文件结尾标记.

声音本身是模拟信号,计算机只能识别数字信号. 要在计算机中处理声音,您需要数字化声音. 此过程称为模数转换(A / D转换). 最常见的方法是通过脉冲编码调制PCM(Pulse Code Modulation).

其工作原理如下: 首先,我们认为声音通过麦克风传递并转换为一系列电压变化信号,如下图所示. 该图片的水平坐标是秒,垂直坐标是电压的大小.

将此类信号转换为PCM时,需要对声音进行量化. 我们通常从以下维度描述声音:

1. 通道数2.采样位数3.采样频率4.持续时间

采样频率: 采样频率是指每秒获取声音采样的次数. 采样频率越高,声音质量越好,声音恢复越真实,但同时占用更多资源. 由于人耳的分辨率有限,无法分辨出太高的频率. 16位声卡中有22KHz,44KHz和其他级别. 其中22KHz相当于普通FM广播的声音质量,44KHz已经相当于CD的声音质量,并且当前的通用采样频率不超过48KHz.

采样位数: 采样值或采样值(即采样的采样幅度被量化). 它是用于测量声音波动变化的参数,也可以称为声卡的分辨率. 值越大,分辨率越高,发出声音的能力越强.

声道数: 这很容易理解,有单声道和立体声,单声道声音只能使用一个扬声器(有些也可以处理成两个扬声器输出相同的声道声音),立体声PCM可以使两个扬声器声音(通常左右声道之间存在分工),您可以感受到更多的空间效果.

持续时间: 采样持续时间

让我们看一下采样位数和采样频率的概念. 让我们看看这些图片.

图中的黑色曲线表示PCM文件记录的自然声波,

红色曲线表示从PCM文件输出的声波,

在该图中,采样点是离散的,每个点对应于一个单位pcm的数据.

采样频率越高,x轴采样点越密集,声音越接近原始数据

采样位数越多,y轴采样点越密集,声音越接近原始数据

采样频率单位为Hz,表示每秒采样的次数:

通常有三种类型: 11025HZ(11KHz)pcm 采样率转换 算法,22050HZ(22KHz),44100Hz(44KHz).

采样比特的单位是比特(bit),通常是8bit和16bit. 8位表示8位空间用于在特定时间量化声音. 这基本上与用图片中的r,g和b量化24bit的颜色相同.

总而言之,我们可以获得用于计算pcm文件容量的公式(此处我们采用采样位数/ 8,因为计算机将位转换为字节):

存储

存储容量=(采样频率×采样位数/ 8)×通道×时间.

记录每个采样数据的幅度,采样精度取决于存储空间的大小.

一个字节(8位)只能记录256个数字,即振幅只能分为256个电平.

可以记录2个字符(16位)

256^2=65536

将振幅分为65536个级别的数字是CD的标准.

pcm a率_pcm编码转换lpcm软件_pcm 采样率转换 算法

4个字节(32位)细分为

256^4

该数字不是必需的,它太好了.

以8k 16bit音频为例,采样率为8k = 8000个采样点/秒.

16位音频是16位. 每8位1个字节,所以16位是2个字节.

上面是单声道(nomo),如果是两个通道,则所有信息均为×2

时间是该音频的秒数

例如,数字激光转盘的标准采样频率(CD-DA,红皮书标准)为44.l kHz,采样数为16位,立体声(2声道)可以广播的频率高达22 kHz几乎没有失真的声音,这也是人类可以听到的最高频率的声音. 激光转盘上一分钟的音乐所需的存储容量为:

(44.1 * 1000 * l6 * 2)* 60/8 = 10,584,000(字节)= 10.584 M字节

此值是硬盘中PCM声音文件占用的磁盘空间量.

数据以二进制顺序存储在文件中

单声道8位(1字节): 声音

双通道8bit(2字节): 左通道右通道

单声道8位(2字节): 声音低字节声音高字节

单声道16位(4字节): 左声道低字节左声道高字节右声道低字节右声道高字节

两声道音频的存储方法是LRLRLRLR. 每个通道16bit音频是16bit(2个字节)吗? PCM以交错方式存储. 在存储过程中存在littleendian和bigendian问题. 通用存储区为little-endian,为2字节,低位在前,高位16位采样点. 当存储0x 1234时,分别为0x34和0x12. 如果是big-endian,则相反.

单声道pcm无头音频1M在转换为两个通道时将变为2M,即使一个通道中没有信息(或微弱的信号噪声),但在转换为两个通道时也将被考虑为静音,数据大小为0x0000,他还需要占用位数,所以无论如何,只要两个通道的大小都将变为原来的两倍.

WAV和PCM之间的关系

如前所述,PCM数据本身只是一个裸码流,它由通道,采样位数,采样频率和持续时间确定,因此我们必须至少知道其中三个来表示PCM数据被提取.

因此,不能播放纯PCM数据,因此需要描述数据. 计算机系统中的一种相对普遍的做法是将pcm代码流和描述信息封装在一起以形成音频文件. 所以您可以直接播放.

一种常见的方法是使用wav格式定义的规范封装pcm代码流和描述信息. 查看与wav文件对应的pcm和hex(十六进制)文件,您会发现wav文件在pcm文件的开头仅多了44个字节,以表征其信息,例如通道数,采样频率和采样位数. 这实际上与bmp非常相似.

WAV,G729,G723,MP3和其他音频格式均为8k 16bitwav音频压缩格式.

因为有许多制造商,并且出现了许多音频格式,例如,Nice生产的nmf实际上是音频,它实际上是多层重新包装的g729; vox格式由华为生产.

vox格式是华为格式,他的后缀之一是V3. 您可以通过将后缀更改为vox来直接收听;还有另一个后缀是vox.

由于没有标题信息,因此无法看到vox格式,因此我不知道采样率不会被转码. 这时,请使用coolitit打开它并收听. 选择8k的采样率. 如果语速很快,则音频实际上为6k;选择6k的采样率打开. 如果语速很快,则音频实际上为8k. 现在您知道了采样率,您可以使用该工具进行代码转换. 下面将提到ffmpeg工具及其轻量级的sox.

G729使用10个字节作为解码单位. 对G729进行转码时,请先删除标头pcm 采样率转换 算法,然后再进行转换.

G729被压缩16倍. 8k 16bit 8kb / s(通常是128kb / s压缩16倍)

压缩是g729的16倍,但是由于压缩算法不同,G729的频谱很平滑,MP3音频的损失也很大. 这是最差的音频格式.

8k 8bitstereo 128kb / s音频格式,应为未压缩格式

pcm a率_pcm编码转换lpcm软件_pcm 采样率转换 算法

首先,音频格式之间的转码,例如从g729到mp3的转换是g729-> 8k,16位wav-> mp3,所有这些都必须首先通过wav.

<1> 8k8bit nist-> 8k16bit pcm

sox -r 8000 -b 8 -c 1 -t nist 1.nist -s -r 8000 -b 16 1.wav抖动

<2> wav-> amr-> wav

ffmpeg -i inFile1.wav -ab 12.2k outFile.amr

ffmpeg -i outFile.amr outFile.wav

ffmpeg -acodec libopencore_amrnb -i outFile.amr outFile.wav

<3> wav-alaw-> wav

ffmpeg -i inFile1.wav -acodec pcm_alaw -ar 8000 outFile1.wav

ffmpeg -i outFile1.wav outFile.wav

<4> mulaw-> wav

ffmpeg -i inFile.wav outFile.wav

<5> mp3-> wav

ffmpeg -i inFile.mp3 outFile.wav

<6> alaw-> wav

sox -e a-law alaw.wav -r 8000 -b 16 out.wav

<7> music.mp3-> wav

ffmpeg -i music.mp3 -ar 8000 -ac 1 outFile.wav

<8> pcm添加标题-> wav

sox -s -t raw -r 8000 -c 1 -2 in.pcm out.wav

ffmpeg -acodec pcm_s16le -f s16le -ar 8000 -i in.pcm -ar 8000 -ac 1 -ab 128k out.wav

<9>球形-> wav(wsj数据)

sph2pipe 1.WV1 -f wav 1.wav

<10> vox-> wav

./ ffmpeg -acodec adpcm_ima_oki -f s16le -ar 6000 -i 1211452.V3 12.wav

<11>两条路径->单声道注意: mono.wav->单声道立体声.wav->双声道(立体声)

ffmpeg -i left.wav -i right.wav -filter_complex amix =输入= 2 mono.wav

ffmpeg -i left.wav -i right.wav -filter_complex“ amovie = left.wav [l]; amovie = right.wav [r]; [l] [r] amerge” stereo.wav

pcm编码转换lpcm软件_pcm a率_pcm 采样率转换 算法

<12>立体声滤波器

ffmpeg -i fa.mp3 -map_channel 0.0.0 -ar 8000 -ab 128k left.wav -map_channel 0.0.1 -ar 8000 -ab 128k right.wav

<13>波形加速#声音加速

ffmpeg -i 16k.wav -filter: 一个“ atempo = 1.75” 16k_fast.wav

<14> g729转移

removeHead xx.V3 58 xx.g729

ffmpeg -acodec g729 -f g729 -i xx.g729 xx.wav

<15> nmf-> g729-> wav

./ nmf2g729 1.nmf 1.nmf.g729ffmpeg -acodec g729 -f g729 -i xx.g729 xx.wav

内置的轻量级ffmpeg工具.

sox 1.wav 2.wav 3.wav 1_2_3.wav

hexdump -Cvin.wav |少

标准音频的第一个字节为44位

检查音频字节信息是: hexdump -C in.wav

看红色部分

可以从第40位到第43位(从第0位开始)查看音频大小,并且音频大小为0x 00 02 53 a0

转换为十进制是152480,标准标头字节44是152524字节

所观看音频的文件大小为152524字节,与计算结果一致

实际上,可以查看4到7位数字. 4-7位数字是152516字节

152516 + 8 = 152524字节. 实际上,这152516是除第一个字节之外的八个字节之后的字节数

看看蓝色部分

位24-25为0x 40 1f = 8k. 此位置标记了音频的采样率. 标准音频标头字节为44位

如果没有领先的信息,也不知道采样率和其他相关信息,播放器将无法播放PCM格式的音频数据. 以下是默认的标头信息格式:

//音频标题格式

struct wave_pcm_hdr

{

pcm 采样率转换 算法_pcm a率_pcm编码转换lpcm软件

char riff [4]; // =“ RIFF”

SR_DWORD size_8; // = FileSize-8

焦炭波[4]; // =“ WAVE”

char fmt [4]; // =“ fmt”

SR_DWORD dwFmtSize; // =下一个结构的大小: 16

SR_WORD format_tag; // = PCM: 1

SR_WORD频道; // =频道数: 1

SR_DWORD samples_per_sec; // =采样率: 8000 | 6000 | 11025 | 16000

SR_DWORD avg_bytes_per_sec; // =每秒字节数: dwSamplesPerSec * wBitsPerSample / 8

SR_WORD block_align; // =每个采样点的字节数: wBitsPerSample / 8

SR_WORD bits_per_sample; // =量化位数: 8 | 16

char数据[4]; // =“数据”;

SR_DWORD data_size; // =纯数据长度: FileSize-44

};

//默认音频标头数据

struct wave_pcm_hdr default_pcmwavhdr =

{

{'R','I','F','F'},

0,

{'W','A','V','E'},

{'f','m','t',''},

16,

1

1

16000,

32000,

2

16,

{'d','a','t','a'},

};


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-218425-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...