В конце концов, я использовал решение «закодировать в flac». Вот цепочка команд, которую я использовал:
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
(Настройте команды arecord и flac под свои нужды)
Обратите внимание, что я сейчас направляюсь на стандартный вывод и делаю это целиком - это связано с особым требованием, которого у вас может не быть. Если вы хотите пропустить этот шаг, замените его -c
на -o filename.flac
. Это также избавит от некоторых проблем, которые может вызвать версия stdout .