从 .wav 文件中提取扰动
Extracting perturbation from .wav file
我有 2 个 .wav 文件,一个包含原始音频 (original.wav),而另一个包含从音频对抗样本攻击代码生成的扰动 (attacked.wav)。
我如何通过比较 original.wav 文件和 attacked.wav 最好使用 python3
将扰动提取为单独的 perturbation.wav 文件
这样想......你有一个值 7 然后你用一个未知的力量扰动它,导致你的原始值变成值 9 ...你可以执行什么算术运算使用这两个值来识别扰动 ?
不要想太多……一旦你解决了这个思想实验,同样的原则也适用于解决你的问题……
Hint ... this same approach is how noise cancelling headphones work
现在回到您的挑战……音频是随时间变化的曲线……您的 wav 音频文件可以打开并解析为该音频曲线,它称为 PCM 格式……它只是沿着这条曲线的点。 ..一旦你打开了你的两个文件(假设你的录音都是时间对齐的,所以每个文件的开头代表相同的时间)然后同时遍历两个文件的音频曲线并执行你发现的相同操作上面合成了一个只有扰动音频曲线的输出 wav 文件
before touching any code it would behoove you to be able to grok the trick we are using here
我有 2 个 .wav 文件,一个包含原始音频 (original.wav),而另一个包含从音频对抗样本攻击代码生成的扰动 (attacked.wav)。
我如何通过比较 original.wav 文件和 attacked.wav 最好使用 python3
将扰动提取为单独的 perturbation.wav 文件这样想......你有一个值 7 然后你用一个未知的力量扰动它,导致你的原始值变成值 9 ...你可以执行什么算术运算使用这两个值来识别扰动 ?
不要想太多……一旦你解决了这个思想实验,同样的原则也适用于解决你的问题……
Hint ... this same approach is how noise cancelling headphones work
现在回到您的挑战……音频是随时间变化的曲线……您的 wav 音频文件可以打开并解析为该音频曲线,它称为 PCM 格式……它只是沿着这条曲线的点。 ..一旦你打开了你的两个文件(假设你的录音都是时间对齐的,所以每个文件的开头代表相同的时间)然后同时遍历两个文件的音频曲线并执行你发现的相同操作上面合成了一个只有扰动音频曲线的输出 wav 文件
before touching any code it would behoove you to be able to grok the trick we are using here