1

Когда я передаю операции с использованием SoX, я заметил, что файлы становятся короче, чем должны:

Работает отлично:

sox -n -r 44100 silence.wav trim 0 1
sox --combine sequence silence.wav combined.wav
soxi -D combined.wav
> 1.000000

Полученный файл становится короче:

sox -n -r 44100 silence.wav trim 0 1
sox --combine sequence "|sox silence.wav -p" combined.wav
soxi -D combined.wav
> 0.998549 seconds

Протестировано с версией SoX 14.4.1 на Windows 7 64 Family Edition. (В Windows создайте копию sox.exe с именем soxi.exe для работы soxi.)

Я избавлю вас от остальных деталей, но в основном КАЖДАЯ труба работает с потерей 0,001451 сек. (Чуть меньше при более высокой частоте дискретизации.) Для всего, где важна точность, эти миллисекунды суммируются и становятся значительными, создавая лаги между тем, где вы ожидаете, что аудио будет, и тем, где оно есть на самом деле.

Перед тем, как отправить отчет об ошибке в команду SoX, я бы хотел выяснить, действительно ли это ошибка или она не связана с командной строкой. Будет ли кто-нибудь достаточно любезен, чтобы запустить оба набора команд в своей системе и опубликовать результаты?

Заранее спасибо -

1 ответ1

0

На windows 7 64 бит:

sox "|sox source -p trim 0 10" "|sox source -p trim 0 10" destination

Действительно дает мне тот же вид глючных результатов (19,997).

НО

sox -t sox "|sox source -p trim 0 10" -t sox "|sox source -p trim 0 10" destination

Дает мне правильные результаты (20,0 с).

Из того, что я прочитал на некоторых сайтах, вы должны указать тип канала, который вы используете. А поскольку «-p» эквивалентно «-t sox -», вы должны добавить «-t sox» в "pipe с помощью" вызова sox.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .