Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用c语言改变波形文件中的频率(节距)和振幅#_C#_Audio_Frequency_Naudio_Amplitude - Fatal编程技术网

C# 如何使用c语言改变波形文件中的频率(节距)和振幅#

C# 如何使用c语言改变波形文件中的频率(节距)和振幅#,c#,audio,frequency,naudio,amplitude,C#,Audio,Frequency,Naudio,Amplitude,如何使用c#像这样改变波形文件中的频率(音调)和振幅,但在波形文件中不是音调 这提供了将wave(.wav)音频文件读入c#数组所需的一切。它将值从-1.0标准化为1.0 所以你需要做的就是 使用上述代码将文件读入c#double数组。它实际上返回两个数组,一个用于左声道和右声道。如果它是单声道的,就用一个 对内存中的c#数组进行修改: 改变螺距意味着以更低或更高的采样率对阵列重新采样,实际上是拉伸或收缩波形以调整频率。此时可能需要使用某种形式的插值 振幅调整可在下一步进行 将数组写入新的

如何使用c#像这样改变波形文件中的频率(音调)和振幅,但在波形文件中不是音调

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

所以你需要做的就是

  • 使用上述代码将文件读入c#double数组。它实际上返回两个数组,一个用于左声道和右声道。如果它是单声道的,就用一个
  • 对内存中的c#数组进行修改:
    • 改变螺距意味着以更低或更高的采样率对阵列重新采样,实际上是拉伸或收缩波形以调整频率。此时可能需要使用某种形式的插值
    • 振幅调整可在下一步进行
  • 将数组写入新的Wave文件;有关完整波形格式规范,请参阅。。。没那么复杂

声音是一个非常复杂的主题,您的问题非常广泛。您可能需要首先尝试将一个wave文件读入内存,并将其分解为定义wave文件的不同块。要更改振幅,只需将每个采样乘以一个比例值。音高是一个非常先进的东西,在不改变其他因素的情况下进行改变,所以祝你好运,在这方面找到任何东西,而不必申请专利。不,我想做和这家伙在视频中做的一样的事情,但在波形文件中不是音高振幅?这毫无意义。