Linux命令延长音频文件的持续时间

Posted

技术标签:

【中文标题】Linux命令延长音频文件的持续时间【英文标题】:Linux command to extend the duration of audio files 【发布时间】:2010-11-06 19:06:18 【问题描述】:

我有一个网络应用程序,可以让人们制作音效。有时声音效果的长度小于 0.55 秒。在这种情况下,它们可能无法在 Chrome 浏览器中正常播放。我想知道一个命令行音频处理实用程序,它可以让我用空虚填充短于 0.55 秒的声音,以将声音持续时间增加到至少 0.55 秒。

我研究过 Audacity 批处理,但不知道如何在命令行上使用它。我也研究过使用 sox,但找不到将声音延长到最短持续时间的选项。

【问题讨论】:

【参考方案1】:

使用

sox -n silence.wav trim 0.55

生成一个 0.55 秒长的静音文件。

然后

sox -m -v 1 yourfile.wav silence.wav -t wav outfile

【讨论】:

【参考方案2】:

发出 0.55 秒的无声 wav。然后将其与您的文件连接起来。它将有超过 0.55 秒......所以你可能想剪掉它。

sox yourfile.wav silence.wav outfile.wav trim 0 0.55

编辑:它似乎可以使用 -n 作为文件名来产生静音。所以它看起来像:

sox yourfile.wav -n outfile.wav trim 0 0.55

如果 yourfile.wav 的采样率与 48000 不同,则您也需要以该速率生成静音才能使串联工作:

sox yourfile_at_44100.wav -r 44100 -n outfile.wav trim 0 0.55

如果您只想对实际小于 0.55 的文件执行此操作,您可能需要通过使用 soxi 检查它们的持续时间来过滤它们。

【讨论】:

我怎么知道要剪多少?我不想剪切音频的任何非静音部分。 @Daniel X Moore:这就是我写关于 soxi 的原因:您只需要对短于 0.55 秒的文件执行此操作。应该使用带有一些 grep/awk 来检查条件的 shell 循环。 请举例?我认为混合技术是更简单的方法,因为它适用于任何文件长度。 @Daniel X Moore:是的,现在我也这么认为。【参考方案3】:

检查SoX 你应该能够做到这一点。它是一个音频工具包(多平台)。首先在声音的末尾添加足够的静音,然后剪掉适当的部分。

【讨论】:

以上是关于Linux命令延长音频文件的持续时间的主要内容,如果未能解决你的问题,请参考以下文章

linux如何消耗网络流量?

Linux常用命令行指令(持续更新~)

linux常用命令(持续更新)

Linux-命令-总结-持续更新

linux常用命令整理(持续更新)

Linux常用命令(持续补充更新)