我正在编写需要检测声级的小程序,如果级别高于设置中的设置,我将其写入,我通过 portaudio 进行了声音捕获,通过 libvorbis 进行了压缩,但是程序的一部分未完成并且我坚持使用它,我需要检测声音原始 pcm 数据的级别,我对 pcm 数据是什么不太了解并且不知道任何音频分析/处理算法,我们是否有现有的 c/c++ 库可以做到这一点?或者是一些可以实现的简单算法c/c++ 存在吗?

最佳答案

查看 Speex 和 WebRTC 库……它们中都有语音事件检测器。如果您正在寻找测量声级的方法,则需要决定使用线性还是对数级指示器。 PCM 的常见格式是 -32768 到 32767 范围(16 位短)...您可以做的一件简单的事情就是简单地将一段时间内样本的绝对值相加并除以样本数以获得平均值期间的水平。

关于c++ - 检测原始 pcm 数据中的声级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15002688/

10-16 11:49