音频帧包含什么?

发布于 2021-01-29 15:09:23

我正在做一些关于如何比较声音文件(波形)的研究。基本上我想将存储的声音文件(wav)与麦克风的声音进行比较。因此,最后我想预存储自己的一些语音命令,然后在我运行我的应用程序时,我想将预存储的文件与麦克风的输入进行比较。

我的想法是在进行比较时要留出一定的余地,因为我猜很难以完全相同的方式连续说两次。

因此,经过一番谷歌搜索后,我发现python具有名为wave和Wave_read对象的模块。该对象具有一个名为readframes(n)的函数:

读取并返回最多n帧音频(以字节字符串形式)。

这些字节包含什么?我想一次将波形文件循环播放一帧,然后逐帧比较它们。

关注者
0
被浏览
80
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    音频帧或样本包含该特定时间点的幅度(响度)信息。为了产生声音,依次播放成千上万帧以产生频率。

    对于CD质量的音频或未压缩的波形音频,每秒大约有44,100帧/样本。这些帧中的每一个都包含16位分辨率,从而可以相当精确地表示声级。另外,由于CD音频是立体声的,所以实际上有两倍多的信息,左声道16位,右声道16位。

    当您在python中使用声音模块获取框架时,它将作为一系列十六进制字符返回:

    • 8位单声道信号的一个字符。
    • 8位立体声的两个字符。
    • 16位单声道的两个字符。
    • 16位立体声的四个字符。

    为了转换和比较这些值,您必须首先使用python wave模块的功能来检查位深度和通道数。否则,您将比较不匹配的质量设置。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看