soxを使用してオーディオストリームを分割し、スクリプトを使用してチャンクを処理します。

soxを使用してオーディオストリームを分割し、スクリプトを使用してチャンクを処理します。

以下のようにsoxを使用してオーディオストリームを分割します。

stream | sox -t raw -r 16k -e signed -b 16 -c 1 - ./chunks/output.wav  silence 1 0.3 0.1% 1 0.3 0.1% trim 0 55 : newfile : restart

soxはチャンクフォルダにチャンクを書き込みます。ディスクに書き込まずに処理するためにスクリプトにパイプできますか?

このような

stream | sox | node script.js

答え1

Unixパイプは常にバイトストリームを渡します。しかし、分割のポイントは、複数のバイトストリームを取得し、単一のパイプを介して複数のバイトストリームを渡すことができないことです(単一バイトストリームに再接続して分割目的を無効にしない限り)。

bash一般的なforループを使用するか、parallelブロックフォルダ内の各ブロックファイルに対してスクリプトを呼び出すことができます。

各分割ブロックで外部プログラムを呼び出すことができるプログラムを使用することもできます。 AFAIKsoxこれを行う方法はありませんが、それを実行できる他のオーディオ分割プログラムがあるかもしれません。

関連情報