音声オーディオをリサンプリングするには、2つのパイプ間にソックスを挿入します。

音声オーディオをリサンプリングするには、2つのパイプ間にソックスを挿入します。

モノラル44kHzオーディオファイルを16kHzオーディオファイルにリサンプリングするために、「sox」ユーティリティを2つのパイプコマンドに入れようとします。

単一のパイプでうまく機能します。

$ speexdec toto.oga - | sox -V -t raw -b 16 -e signed -c 1 -r 44.1k - -r 16k toto.wav

しかし、別のパイプを追加すると、soxユーティリティは次のように文句を言います。

$ speexdec toto.oga - | sox -V -t raw -b 16 -e signed -c 1 -r 44.1k - -r 16k - | cat - > toto.wav
sox FAIL formats: can't determine type of `-'

どんなアイデアがありますか?

ベストアンサー1

-t wav2番目の出力の前に追加してsox出力タイプを宣言する必要があります-

ファイル名の場合、soxは名前を見てそこから型を推論しますが、stdoutの場合は型を宣言する必要があります。

最後に、指定された-b 16 -e signed -c 1出力の前に入力から送信されたと仮定する代わりに、他のすべての設定()を宣言することもできます。-

おすすめ記事