- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 SoX 连接多个(最多 25 个)音频文件与
sox first.mp3 second.mp3 third.mp3 result.mp3
它做了它应该做的事情;将给定文件连接到一个文件中。但不幸的是,result.mp3 中的这些文件之间存在很小的时间间隔。有没有办法消除这个差距?
我正在创建first.mp3、second.mp3等,然后通过合并多个音频(相同的长度/格式/速率)来连接它们:
sox -m drums.mp3 bass.mp3 guitar.mp3 first.mp3
如何检查并确保所有这些文件都没有添加时间间隙? (合并并连接)
我需要实现所有串联文件的无缝播放(在浏览器中依次播放它们时可以正常工作)。
感谢您的帮助。
编辑:
我现在运行的命令的确切示例(没有真实的文件名)是:
sox "|sox -m file1.mp3 file2.mp3 file3.mp3 file4.mp3 -p" "|sox -m file1.mp3 file6.mp3 file7.mp3 -p" "|sox -m file5.mp3 file6.mp3 file4.mp3 -p" "|sox -m file0.mp3 file2.mp3 file9.mp3 -p" "|sox -m file1.mp3 file15.mp3 file4.mp3 -p" result.mp3
这会合并文件并将它们直接通过管道传输到串联命令中。生成的 mp3 (result.mp3) 在连接的文件之间有非常轻微的延迟。任何想法都非常感激。
最佳答案
最好的(尽管最无用的)方法是不要使用 MP3 文件作为源文件。 WAV、FLAC 或 M4A 文件不存在此问题。
MP3 并非由固定速率样本组成,因此裁剪出任意长度的部分将无法按您的预期工作。除非编码器很智能(如跛脚),否则 MP3 文件音频的开头或结尾处通常会出现间隙。我用 0.98 秒长的样本进行了测试(恰好是 73½ CDDA 帧,许多 MP3 编码器使用帧作为最小样本长度)。然后,我使用三种不同的 MP3 编码器(lame、sox 和古老的 shine)对样本进行编码,然后使用三种解码器(lame、sox 和 madplay)对这些文件进行解码。以下是样本长度与原始长度的比较:
Enc.→Dec. Length Samples CDDA Frames
----------------- --------- ------- -----------
shine→lame 0.95" 42095 71.5901
shine→madplay 0.97" 42624 72.4898
shine→sox 0.97" 42624 72.4898
lame→lame 0.98" 43218 73.5000
*Original 0.98" 43218 73.5000
sox→sox 0.99" 43776 74.4490
sox→lame 1.01" 44399 75.5085
lame→madplay 1.02" 44928 76.4082
lame→sox 1.02" 44928 76.4082
sox→madplay 1.02" 44928 76.4082
只有由lame编码和解码的文件最终具有相同的长度(主要是因为lame插入了一个长度标签来纠正这些太短的样本,并且知道如何解码它)。无论我使用什么解码器,sox 编码的所有内容最终都会有一个微小的间隙。因此,加入文件将导致微小的点击。
您的浏览器可能会非常轻微地混合和重叠源文件,因此您听不到喀哒声。 Gapless playback很难正确地做到这一点。
关于audio - Sox:连接多个音频文件,中间没有间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25280958/
我正在尝试使用 SoX 生成频谱图程序。根据documentation ,我应该尝试以下方法来创建频谱图: sox output.wav -n spectrogram 我收到以下错误,而不是频谱图:
对于我正在进行的项目,我需要使用 SoX 工具来生成音频。如果有一种方法可以使用 SoX 生成特定持续时间的特定音符/音调,请告诉我!我对此做了很多研究,但无济于事。 此外,有什么方法可以使其直接输出
我正在尝试剪掉一个 30 分钟以上的文件的前 .010 毫秒。修剪命令修剪它,但我得到的输出是 0.010 毫秒。我想要的是保留音频文件的结尾部分并去掉文件开头的 .010 毫秒。 我尝试使用下面的命
我如何调用 sox 将 2 秒的音频文件转换为加速,以便文件的最终长度为 1.5 秒(75%)?我是否必须通过参数来进行音高校正? 我必须通过什么参数才能使文件大小保持小? 最佳答案 试试这个(用 i
我想在 Linux 中使用 SOX 混合音频。这是我的脚本。我是这件事的初学者。 time sox --buffer 128000 --combine mix audio1.mp3 audio
在静音时拆分音频文件,例如 sox input.wav output.wav silence 1 0.5 1% 1 3.0 1% : newfile : restart 多个输出文件的文件名类似于 o
当我混合四首轨道时,声音降低了很多,我尝试了混合音量和混合。 我如何做到让音量不改变? 我试过 -M after "sox --combine mix-power" ,但最终文件的长度为 0 秒。 最
我想从上传到服务器的音频文件中删除某个频率范围。我了解到SoX命令具有这种功能。 我找不到实现此目的的确切方法。任何帮助都是最欢迎的。 最佳答案 您要查找的命令可能是sinc。 例如:要从wave文件
我正在尝试为几个我不知道以秒为单位的总持续时间的波形文件创建淡入和淡出。我阅读了手册,但我看到的示例看起来都像我需要知道文件的全长。 有人可以在不知道 wav 文件的全长的情况下发布一个在 5 秒内淡
根据联机帮助页(其中已作为示例列出),以下命令应将输入文件拆分为多个音频文件,并在有 2 秒静音的位置进行分割。取而代之的是,它只创建了一个据报道大约 0.2 秒长的文件。 $ sox -V3 inf
我正在使用 SOX 混合音频。 命令 SOX -m voice.wav audio.wav final.wav 是我正在使用的。 我的目标是将 voice.wav 延迟 10 秒,如果我尝试使用延迟
我想将音频文件的音量减少10%(这样新的音量将是原始音量的90%)。如何使用SOX做到这一点?根据SOX手册,它支持音量选项: -v,--volume FACTOR 将调整系数调整为FACTOR。这是
这是来自:wac-to-wav-conversion 的后续问题 我已将文件扩展名从 .wac 更改为 .raw 并使用以下命令: sox -r 44100 -e unsigned -b 8 -c 1
我正在尝试使用链接 here 中给出的脚本将 728 个 .raw 文件转换为 16khz .wav 文件但我收到一个错误 sox FAIL formats: can't open input fil
当前使用的命令是 `sox input.wav -G -t mp3 -r 16k test.mp3` 但这正在创建一个比特率为24.0 kbps的文件。 如何使输出文件的比特率达到16.0 k
我想为音频文件添加噪音。有没有办法在 SoX(或其他工具)中实现这一点? 我正在进行机器学习研究,需要在存在噪声的情况下测试我的算法。理想情况下,我想指定一个信噪比并添加噪声以达到该目标 SNR。 我
我在用 socks 挣扎。我试图简单地切断文件结尾的1.2秒。我知道sox中有一个trim函数,但是我不确定如何使用它,因此它会切断最后的确切时间?我知道它大致像这样工作: sox input out
我尝试了这个: sox -u -r 11.025k -b 8 -c 1 infile.wav outfile.wav 但是当我播放声音时,声音混乱且无法识别。我怎样才能解决这个问题? 最佳答案 试试这
所以,我有一个音频文件,我想在不改变音调的情况下将它的速度降低到 0.5 倍,问题是当我这样做时,我会得到一种奇怪的口吃效果。有什么办法可以让 sox “平稳地”减慢音频速度,这样就不会出现明显的卡顿
audacity有一个噪声门插件,效果很好。我正在寻找等效的命令行-但无法找出SoX compand命令来执行此操作。谁能告诉我与胆大的噪声门相当的sox吗?例如,我在大胆使用 “门频率高于:0.0”
我是一名优秀的程序员,十分优秀!