以下のように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
これを行う方法はありませんが、それを実行できる他のオーディオ分割プログラムがあるかもしれません。