【问题标题】:How do I sample audio in c#? [closed]如何在 C# 中对音频进行采样? [关闭]
【发布时间】:2012-03-03 11:22:25
【问题描述】:

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

【问题讨论】:

  • 这个问题没什么意义,当你从文件中读取音频时,它已经被采样了。无论应用程序编写文件,都会处理它。

标签: c# audio signal-processing multimedia naudio


【解决方案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();

【讨论】:

  • 如何选择DesiredFrameSize 和SampleRate 的值?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-29
  • 2016-09-07
  • 1970-01-01
相关资源
最近更新 更多