0

我有一个 7 秒的音频 wav 文件:full.wav。

我从中提取了一小部分样本。我使用大胆选择时间范围并标记它。我导出标签(包含样本的开始和结束时间)。

1/ 我使用 audacity 菜单导出样本并将其保存为 sample_audacity.wav

2/ 我使用 scipy.io.wavfile.read 在 python 脚本中加载 full.wav 我保存示例 full[start:end]。它给了我 sample_python.wav

当我听 sample_audacity.wav 和 sample_python.wav 我听到同样的声音。

但是,如果我使用 scipy.io.wavfile.read 加载它们,我会得到两个文件的非常不同的值。sample_python.wav 的值是 full.wav 值的子集 - 这是正常的。

但是 sample_audacity.wav 的值不是。

有人知道为什么/如何在保存原始数据(full.wav)的摘录时大胆地修改它吗?

如果可能的话,如何大胆地给我作为样本,使初始数据具有相同的值(子集)?

例如,sample_audacity.wav 的前 100 个值

[128 122 124 123 134 138 143 142 139 135 144 149 155 156 148 144 143 144 151 152 159 152 160 150 157 151 155 153 155 156 154 151 145 139 128 132 124 131 130 129 123 115 104 100 94 94 88 85 78 74 65 59 52 48 43 45 46 45 40 30 19 10 6 7 14 15 12 0 -8 1 23 51 72 63 55 26 23 20 31 36 40 35 27 22 15 15 7 9 1 -2 -4 0 -3 -4 -18 -25 -25 -12 -1 -9]

sample_audacity.wav 的形状:(36296,)

sample_python.wav 的前 100 个值

[128 127 124 122 125 132 139 143 142 138 137 142 150 155 155 149 144 142 145 150 154 156 156 155 155 154 153 153 154 155 156 154 151 145 138 131 128 127 129 131 129 123 114 105 99 95 93 89 84 79 73 66 59 52 47 44 45 46 45 39 31 19 10 5 8 13 16 11 0 -7 0 23 52 69 68 50 30 20 22 30 37 39 35 28 21 16 13 10 7 2 -3 -3 -1 -1 -6 -17 -26 -24 -12 -2]

sample_python.wav 的形状:(36297,)

大胆 2.1.2 Ubuntu

首选项导入/导出: 在此处输入图像描述

导出设置: 在此处输入图像描述

两个文件的媒体信息: 在此处输入图像描述

4

1 回答 1

2

将文件导入 Audacity 后,它会转换为 32 位格式。当您将文件重新导出回 16 位时,Audacity 将根据首选项抖动音频。此页面上有更多详细信息:https ://wiki.audacityteam.org/wiki/Dither

此导出设置不在明显位置。转到首选项/质量,然后在“高质量转换”标题下抖动。如果你把它设置为 None 你应该得到与 python 相同的结果。

于 2018-02-22T22:43:14.440 回答