从DirectShow中的麦克风接收的原始数据中获得响度级别 [英] get loudness level from raw data recieved from microphone in DirectShow
问题描述
如何从DirectShow中从麦克风接收的原始数据中获得响度级别?
How I can get loudness level from raw data received from microphone in DirectShow?
IMediaSample以字节为单位保留数据.以及我如何读取这些字节并得到一些东西?
IMediaSample keep data in bytes. And how I can read this bytes and get something?
推荐答案
响度是一种听觉品质,而不是物理公式.有很多定义.
Loudness is an aural quality, not a physic formula. There are many many definitions for it.
这也是一个时间值.结果,该值会随时间变化.
It's a also a temporal value. As a consequence, this value changes during the time.
我记得几年前见过的最简单的实现,就是简单地将振幅的最大值超时.但是振幅的对数肯定更好地接近耳朵的灵敏度.
The simplest implementation I remember I had seen some years ago, was simply putting a time out on the maximum value of the amplitude. But the log of the amplitude is surely better to approximate the ear sensitivity much closer.
您还可以考虑信号的功率(signal * signal ...,但也有更多定义考虑了频谱分量...).
You can also consider the power of the signal ( signal * signal ... but there are also more definitions that takes into account the frequency spectrum components...).
这是厨房食谱.选择最简单的.
It's kitchen recipes. Choose the simplest.
编辑:看来我的回答太快太模糊了,我可能误认为音量和响度. 此Wikipedia文章指出了用于测量响度的单位. Sone 和 Phon .
Edit: it seems my answer was too fast and fuzzy, I probably mistake Volume and Loudness. this wikipedia article states there are units for measuring loudness. Sone and Phon.
这篇关于从DirectShow中的麦克风接收的原始数据中获得响度级别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!