No final, acabei usando a solução "encode to flac". Aqui está a cadeia de comando que usei:
arecord -t raw -f S16_LE -r16000 -d 604800 -D sysdefault:CARD=1 | flac - -f --endian little --sign signed --channels 1 --bps 16 --sample-rate 16000 -s -c | gzip > test.flac.gz
(Personalize os comandos arecord e flac de acordo com suas necessidades)
Note que estou passando a stdout e gzipping a coisa toda agora - isso é devido a um requisito especial que você pode não ter. Se você quiser pular essa etapa, substitua o -c
por um -o filename.flac
. Isso também eliminará alguns problemas que a versão stdout pode causar .