如何在c#中采样音频?

时间:2012-03-03 11:22:26

标签: c# audio signal-processing multimedia naudio

如何以特定采样率采样音频波,然后从音频波中获取值?我正在我的项目中使用accord.net平台,naudio.net和alvas.audio。如何对音频文件进行采样?我项目的后期阶段包括检测歌曲,演讲,沉默等等。

1 个答案:

答案 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();