arecord flac format

1

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?

    
por RBI 02.07.2014 / 17:22

1 resposta

2

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"
    
por micah 27.02.2015 / 23:15