音频帧率计算方法(为防止以后忘了)

采样率   sampling = 44100 

格式(编码字节数、采样一位所占的字节数) format = s16(格式)=16(bit)

声道数 channels = 2

一次采样(一秒中所占的位数)TotalBit = sampling * channels * format = 1411200

一次采样(一秒中所占的字节数)TotalByte = TotalBit/8 = 176400


1) AAC:
nb_samples和frame_size = 1024

一帧数据量:1024*2*s16/8 = 4096个字节。

ACC帧率 (一秒播放帧数)= TotalByte/4096 = 43.06640625帧


2) MP3:
nb_samples和frame_size = 1152

一帧数据量:1152*2*s16/8 = 4608个字节。

MP3帧率 (一秒播放帧数)= TotalByte/4608 = 38.28125帧


上面带了一些数据

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,针对您的问题,我可以给出一些解释和示例代码。 首先,MATLAB中的音频帧长是指对音频信号进行分帧处理时,每个帧的采样点数。通常情况下,帧长的选择与所需分析的频范围有关,较短的帧长适合分析高频部分,而较长的帧长适合分析低频部分。一般而言,帧长的选择应该是一个经验性的过程,需要根据具体应用场景进行选择。 下面给出一个示例代码,用于计算并显示指定语音文件的语音帧的AMDF(自相关差分函数): ```matlab % 读取语音文件 [x,Fs] = audioread('speech.wav'); % 设置帧长和帧移 frameLen = 256; frameShift = 128; % 计算帧数 nFrames = floor((length(x)-frameLen)/frameShift)+1; % 初始化AMDF矩阵 amdf = zeros(nFrames,frameLen); % 计算AMDF for i = 1:nFrames % 取出当前帧 frame = x((i-1)*frameShift+1:(i-1)*frameShift+frameLen); % 计算当前帧的AMDF for j = 1:frameLen amdf(i,j) = sum(abs(frame(j+1:frameLen)-frame(1:frameLen-j))); end end % 显示AMDF图像 imagesc(amdf'); xlabel('Frame'); ylabel('Lag'); ``` 上述代码中,`audioread`函数用于读取指定的语音文件,`frameLen`和`frameShift`参数分别设置帧长和帧移,`nFrames`变量计算语音信号的帧数,`amdf`矩阵用于存储计算的AMDF值。然后,使用两层循环计算每个帧的AMDF值,并将结果存储在`amdf`矩阵中。最后,使用`imagesc`函数将AMDF图像显示出来,横轴表示帧序号,纵轴表示自相关差分函数的滞后值。 希望这个示例代码可以帮助您理解MATLAB中音频处理的相关操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值