【问题标题】:Prevent SoX from doing the clipping?防止 SoX 进行剪辑?
【发布时间】:2020-06-04 12:01:26
【问题描述】:

我有一个严重“溢出”的 WAV 文件(以浮点 32 位格式编写的样本):样本范围不是 [-1.0,+1.0],而是 [-5.0,+5.0]。

使用SoX从WAV文件中获取原始PCM音频样本:

sox --bits 32 --channels 1 --encoding floating-point --rate 48000 input.wav output.raw

我收到警告:

sox WARN sox: `input.wav' input clipped 1163400 samples
sox WARN sox: `output.raw' output clipped 605664 samples; decrease volume?

当我查看输出时,我看到样本被剪裁了,现在范围是 [-1.0,+1.0]。然而,这不是我想要的。

我希望输出与输入完全相同,只是格式不同(RAW 而不是 WAV)。我需要使用命令行工具来完成这项任务。有没有办法阻止 SoX 进行剪辑?

【问题讨论】:

  • 看起来 sox parm gain -6 会将振幅降低 6 dB

标签: audio vlc sox libsox


【解决方案1】:

我从SoX mailing list得到了答案。

所需的行为是不可能的,但是,在这种特定情况下,有一种解决方法。将输入样本编码覆盖为 32 位 有符号整数 而不是浮点数,这些值将被原封不动地复制;由于输出是无标题的,所以 SoX 认为样本是什么并不重要。

所以,这行得通:
sox --bits 32 --channels 1 --encoding signed-integer --rate 48000 input.wav output.raw

【讨论】:

    猜你喜欢
    • 2017-10-24
    • 2019-09-16
    • 2016-11-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    相关资源
    最近更新 更多