【问题标题】:Is there a .NET library to Normalize PCM WAV是否有 .NET 库来规范化 PCM WAV
【发布时间】:2011-04-27 10:18:55
【问题描述】:

我想从客户端(Silverlight)规范化 PCM WAV 文件。我在服务器端使用 ASP.NET MVC。我在这里找到了一个C程序

https://neon1.net/prog/normalizer.html 有谁知道我可以直接使用类似的 C# 库吗?

【问题讨论】:

  • 这里有几个关于 C# 音频库的问题。其中之一肯定可以做到。 NAudio 甚至还有一个压缩器:naudio.codeplex.com
  • 谢谢。我看了看NAudio。但我的意思是如果有一个库我可以立即调用:Lib.Normalize(soundfile, ..),就像我在那里提到的 C 版本一样。
  • @nnn 这不是 NAudio 的工作原理吗?无论哪种方式,另一个图书馆很可能能够做到这一点。如果没有,那么自己动手就不是火箭科学。 :)
  • 我怀疑 naudio 在 SL 上工作。它使用大量原生互操作并包含 WaveBuffer 等恐怖元素。
  • @bzlm,我想我会使用 NAudio 实现标准化。我从来没有用过声音,希望这对我来说不是火箭科学:)

标签: c# silverlight audio normalization


【解决方案1】:

“标准化”音频文件通常不是一个好主意,因为如果只有一个全音量的样本,那么它将没有效果。更好的方法是在音频上运行 dynamic range compressor

Skype Voice Changer 中,我编写了使用NAudio 并通过动态范围压缩器传递音频的示例代码。但是,正如其他人所说,由于互操作性,NAudio 不能直接在 Silverlight 中使用。但是您应该能够将 WaveFileReader、WaveFormat 和 WaveFileWriter 复制出来并编译它们,而无需进行太多代码更改。此外,您将无法使用 WaveBuffer 机制在字节数组和短裤/浮点数之间进行转换,因此您需要以缓慢的方式进行转换(例如使用BitConverter)。

【讨论】:

  • 谢谢。它有助于。我将研究“动态范围压缩器”和“Skype 语音转换器”
【解决方案2】:

一些想法(除了尝试NAudioBass.NET

  1. 调用编译后的c可执行文件
  2. 将其编译为 dll 并使用 P/Invoke
  3. 将 C 代码转换为 c#

【讨论】:

  • 谢谢。我考虑了这些可能性,但只是想看看是否有一个现成的调用来完成标准化工作。我想没有。我将尝试使用 NAudio 来实现它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 2014-07-29
  • 2013-07-12
  • 2015-05-09
  • 1970-01-01
  • 2014-06-10
相关资源
最近更新 更多