オーディオをsoxにストリーミングしようとしていますが、「soxフォーマットに失敗しました: '-'の入力フォーマットが正しくありません:サンプリングレートが指定されていません」というエラーが表示されます。
parec -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor --rate=16000 --channels=1 | sox -t raw - output.wav silence 1 0.3 0.1% 1 0.3 0.1% : newfile : restart
これはコマンドの出力です。
sox FAIL formats: bad input format for `-': sampling rate was not specified
Opening a recording stream with sample specification 's16le 1ch 16000Hz' and channel map 'mono'.
Connection established.
Stream successfully created.
Buffer metrics: maxlength=4194304, fragsize=64000
Using sample spec 's16le 1ch 16000Hz', channel map 'mono'.
Connected to device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor (index: 0, suspended: no).
write() failed: Broken pipe
答え1
raw ストリームにはその形式に関するメタ情報は含まれていないため、sox に次のように通知する必要があります。
parec ... | sox -t raw -r 16k -e signed -b 16 -c 1 ...