如何使用c#更改wav文件中的频率(音高)和幅度

时间:2013-06-20 19:45:40

标签: c# audio frequency naudio amplitude

如何使用c#改变频率(音高)和wav文件中的幅度,但是波形文件不是音调 http://www.youtube.com/watch?v=Tumpkl-xJuA

1 个答案:

答案 0 :(得分:1)

这个answer here提供了将wave(.wav)音频文件读入c#数组所需的一切。它将值从-1.0标准化为1.0。

所以你需要做的就是

  • 使用上面的代码将文件读入c#double数组。它实际上返回两个数组,一个用于左右立体声通道。如果它的单声道,只需使用一个。
  • 在内存中对c#数组进行修改:
    • 改变音高意味着以更低或更高的采样率重新采样阵列,实际上是拉伸或收缩波形以调整频率。此时您可能需要使用某种形式的插值。
    • 可以在下一步完成幅度调整。
  • 将数组写入新的Wave文件;请参阅https://web.archive.org/web/20141213140451/https://ccrma.stanford.edu/courses/422/projects/WaveFormat/了解完整的Wave格式规范......它并不复杂。