gpt4 book ai didi

c# - 检测麦克风静音

转载 作者:可可西里 更新时间:2023-11-01 11:46:44 26 4
gpt4 key购买 nike

使用mcisendstring,我想在达到静默期(麦克风无输入)时停止录音。我知道会涉及一个计时器,所以在 x 秒后需要进行检查,但究竟要检查什么?

目前,我使用:

i = mciSendString("record capture", Nothing, 0, 0)

谢谢。

最佳答案

您将需要一个音频库,允许您在录制过程中访问录制缓冲区。我不认为 MCI 会让你那样做。因此,听起来您正在市场上寻找更细致入微的音频库。

这里是一个链接 StackOverflow question that lists several digital audio libraries .

您也可以考虑使用开源 .NET 框架,例如 NAudio ,他们已经为您做了很多工作。

要进行录音,您很可能需要分配一个主缓冲区,以及一个根据需要分配辅助/永久缓冲区的回调(例如,当录音变得越来越长时)。要检测静音,您需要在向主缓冲区添加字节时对其执行某种信号处理。

这种情况下的“信号处理”可能非常简单,例如您可以采用移动平均值(本质上是低通滤波器)并确定平均幅度是否低于某个阈值水平,这可以在录音开始时的静音期间进行校准(这可能会给您一个不错的基线)。

更高级的过程会尝试滤除环境噪音或线路噪音(例如,一个 60 赫兹的滤波器可消除家用交流电引起的嗡嗡声)。如果你愿意,你可以对此进行深入研究。

关于c# - 检测麦克风静音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43058522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com