有没有可能只在有人说话时记录音频?我想监听麦克风,只有当“音量”大于某个噪声水平(意味着有人在说话)时才开始录音。我还需要改变录制的音频音调。
我尝试了C#中的MediaCapture类,但是示例中的StartRecordToStorageFileAsync在我的情况下不可用。在Windows Phone中,我使用XNA,但我无法在Windows 8中找到类似的API。
有没有可能只在有人说话时记录音频?我想监听麦克风,只有当“音量”大于某个噪声水平(意味着有人在说话)时才开始录音。我还需要改变录制的音频音调。
我尝试了C#中的MediaCapture类,但是示例中的StartRecordToStorageFileAsync在我的情况下不可用。在Windows Phone中,我使用XNA,但我无法在Windows 8中找到类似的API。
请查看MSDN论坛上的这个帖子:如何使用C#获取分贝值?
似乎在C#,Visual Basic或JavaScript中没有API可以做到这一点,也不会有。您需要在本机组件中完成。
该线程中提到的文章中的Core Audio / WASAPI API应该具有您所需的内容:Win32和COM用于Metro样式应用程序(多媒体)。
我认为此文档描述了从Kinect传感器捕获音频的示例,其中可能包含相关的代码示例,显示如何使用GetBuffer()调用来获取原始音频样本的缓冲区,以便您可以处理以获取所需的信息。