使用C#的音量计

时间:2012-07-19 22:05:03

标签: c# volume microphone naudio

我想问一下如何为STREAMING AUDIO编写VOLUME LEVEL METER。仅使用笔记本电脑的麦克风我想知道它的声级。分贝(dB)。我们的项目是制作一个音量水平仪,它可以为我们的真实程序提供输入,这将获得分贝并将它们变成值。

注意:

编程知识:本科学生 使用的编译器:Microsoft Visual Studio 2010 操作系统:Windows 7 Professional x64bit / Ultimate x64Bit

1 个答案:

答案 0 :(得分:3)

我会看一下可用于DirectSoundcapture waveforms。这将为您提供(通常至少)16位resolution(96Db 动态)的样本。在一定时期内(例如,1/60秒),这些值的最大值/最小值的最大差异将是该帧的体积。 “比例”从-32768(最低振幅)到32767(最高振幅)。

如果您在每个帧的“条形图”中“绘制”这些值,您将获得正在寻找的“弹跳音量条”。

您正在寻找的实际分贝只有在您校准最大值时才能确定。音量到已知的#Debibels。这是因为输入增益,麦克风的质量和许多其他变量,最终只能告诉(“形式”)“波形”。测量的最大/最小振幅不对应于(例如)50或120的特定分贝值。