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원하는 방식으로 블록 폴더의 각 블록 파일에 대해 스크립트를 호출할 수 있습니다.

각 분할 블록에서 외부 프로그램을 호출할 수 있는 프로그램을 사용할 수도 있습니다. AFAIK sox이를 수행할 수 있는 방법은 없지만 이를 수행할 수 있는 다른 오디오 분할 프로그램이 있을 수 있습니다.

관련 정보