如何以特定采样率采样音频波,然后从音频波中获取值?我正在我的项目中使用accord.net平台,naudio.net和alvas.audio。如何对音频文件进行采样?我项目的后期阶段包括检测歌曲,演讲,沉默等等。
答案 0 :(得分:1)
如果您使用的是Accord.NET,则可以查看audio recorder sample application。它打开一个音频文件或捕获设备,并以给定的采样率从中读取。如果已安装框架,则应在开始菜单中提供示例应用程序文件夹的快捷方式。否则,它是source code is also available online。
您很可能会对示例应用程序中的以下部分感兴趣,第一部分打开计算机的麦克风:
// Create capture device
var source = new AudioCaptureDevice();
source.DesiredFrameSize = 4096;
source.SampleRate = 22050;
source.NewFrame += source_NewFrame;
source.AudioSourceError += source_AudioSourceError;
// Start
source.Start();
或本节,从内存中读取音频流:
var output = new AudioOutputDevice(this.Handle, decoder.SampleRate, decoder.Channels);
output.NewFrameRequested += output_NewFrameRequested;
output.Stopped += output_PlayingFinished;
output.FramePlayingStarted += output_FramePlayingStarted;
output.Play();