录音时自动麦克风音量(增益)控制

时间:2017-01-16 05:41:13

标签: python audio-recording volume

我希望有一个程序可以从PC音频卡的麦克风进行记录。 主要思想是防止削波(削减幅度):

  • 设置最佳增益(e.x. -6db)
  • 当增益超过最佳时,将麦克风音量设置为最佳或稍低音量。

我试图寻找一些免费的已经解决方案,但我没有找到任何解决方案。 (也许我只是在搜索错误的单词)。

如果什么都没有,我想自己编程,但如果有人愿意给我第一个冲动,我会感到高兴。

为此,我需要:

  • 获得实际的投入收益
  • 控制输入音量(基本上我可以使用一些命令行实用程序amixer,pactl,...)
  • 将数据保存到文件

我想知道我是否可以使用gstreamer(它可能是其他东西)。最好的语言应该是python(3.x)。

如果还有其他更好的解决方案,我会很高兴: - )

谢谢大家:D

1 个答案:

答案 0 :(得分:0)

Sox是一个有用的实用程序。记录一个样本文件,请求sox告知在没有剪辑的情况下可以提升多少级别,然后进行主要录制。

> sox mytest.wav -n stat
Samples read:            532480
Length (seconds):      5.546667
Scaled by:         2147483647.0
Maximum amplitude:     0.375702
Minimum amplitude:    -0.277344
Midline amplitude:     0.049179
...
Rough   frequency:          845
Volume adjustment:        2.662

建议小心,因为Pulseaudio可能会尝试为您调节音量?