O comando arecord
tem o argumento -d para expirar com esta modificação. O comando arecord
expirará, mas não o FLAC.
arecord -q -t wav -d 4 -f S16_LE -r 16000 | flac - -f --best --sample-rate 16000 -s -o "$TEMP_FILE"
Estou jogando com scripts que usam a API google speech-to-text. A API requer arquivos codificados flac para que a parte de gravação do script seja assim:
arecord -q -t wav -d 0 -f S16_LE -r 16000 | flac - -f --best --sample-rate 16000 -s -o "$TEMP_FILE"
Este comando irá gravar até o usuário sair com ctrl-c e o formato wav gravado ser canalizado para o programa flac para outut no formato flac, então o script deve continuar.
O problema que estou tendo é que pressionar ctrl-c termina o script completamente e está cortando parte do áudio (o arquivo flac ainda é exibido). Se eu executar o script sem o pipe:
arecord -q -t wav -d 0 -f S16_LE -r 16000 some.wav
Em seguida, pressionar ctrl-c somente encerrará a gravação e continuará com o script como deveria.
Como faço para corrigir isso para que ctrl-c pare apenas o comando arecord e permita que o restante do script (incluindo a codificação flac canalizada) termine?
O comando arecord
tem o argumento -d para expirar com esta modificação. O comando arecord
expirará, mas não o FLAC.
arecord -q -t wav -d 4 -f S16_LE -r 16000 | flac - -f --best --sample-rate 16000 -s -o "$TEMP_FILE"