формат арекорд флак

Я играю со сценариями, использующими API Google для преобразования речи в текст. API требует файлов в кодировке flac, поэтому записывающая часть скрипта выглядит следующим образом:

arecord -q -t wav -d 0 -f S16_LE -r 16000 | flac - -f --best --sample-rate 16000 -s -o "$TEMP_FILE"

Эта команда будет записывать, пока пользователь не завершит работу с помощью ctrl-c, и записанный формат wav не должен быть передан в программу flac для outut в формате flac сценарий должен продолжаться.

Проблема, с которой я столкнулся, состоит в том, что нажатие ctrl-c полностью завершает сценарий и отключает часть звука (файл flac все еще выводится). Если я запускаю сценарий без конвейера:

arecord -q -t wav -d 0 -f S16_LE -r 16000 some.wav

Тогда нажатие ctrl-c только завершит запись и продолжит выполнение сценария, как и должно быть.

Как я могу это исправить, чтобы ctrl-c только останавливал команду arecord и позволял завершить работу остальной части скрипта (включая кодировку конвейерного флака)

1
задан 2 July 2014 в 19:22

1 ответ

Эти arecord команда имеет-d аргумент для таймаута его с этой модификацией эти arecord, команда испытает таймаут, но не FLAC.

arecord -q -t wav -d 4 -f S16_LE -r 16000 | flac - -f --best --sample-rate 16000 -s -o "$TEMP_FILE"
2
ответ дан 2 July 2014 в 19:22

Другие вопросы по тегам:

Похожие вопросы: