我使用 sox 转换为 .dat 格式的值似乎没有被标准化 - 希望有人能看到我做错了什么。
我正在尝试做一些类似于这篇关于 sox 和 gnuplot 的很棒的 SO 帖子中描述的事情(我正在将值发送到 Java 中的处理,所以上下文有点不同)。问题是在我的 .dat 文件中我得到“只有小的值”,而手册页说它们将在 -1 和 1 之间进行标准化。
安装 sox 和 mp3 处理包后,我执行以下测试:
sox elevator.mp3 -c 1 -r 11000 elevator_mediumres.dat
cat elevator_mediumres.dat |cut -c21-33 > elevator_mediumres_values_only.dat
sort -n elevator_mediumres_values_only.dat > elevator_mediumres_values_only_sorted.dat
# echo min $(head -1 elevator_mediumres_values_only_sorted.dat) max $(tail -1 elevator_mediumres_values_only_sorted.dat)
这给出了输出“min -0.48370361 max 9.1552734e-05”。如果我执行第一个命令是 wav 而不是 dat,那么 wav 文件听起来不错(就像 Aerosmith 的“电梯中的爱情”的 11kHz 单声道一样)。之后我当然可以手动规范化数据,但我希望有一种更好、更直接的方法。
谢谢,
-S-