私はオーディオファイルで初めてcでプログラミングしています。私はおそらくオーディオファイルを読んで、オーディオ波を分析するためにいくつかの情報を含むcsvファイルを書き込むべきであるというこのコードを見つけました。その場合は単純な声になります:私は波の振幅に興味があります声の高さとその高さと拡張。符号化されたオーディオファイルを信号値のテキストに変換する
main() {
// Create a 20 ms audio buffer (assuming Fs = 44.1 kHz)
int16_t buf[N] = {0}; // buffer
int n; // buffer index
// Open WAV file with FFmpeg and read raw samples via the pipe.
FILE *pipein;
pipein = popen("ffmpeg -i whistle.wav -f s16le -ac 1 -", "r");
fread(buf, 2, N, pipein);
pclose(pipein);
// Print the sample values in the buffer to a CSV file
FILE *csvfile;
csvfile = fopen("samples.csv", "w");
for (n=0 ; n<N ; ++n) fprintf(csvfile, "%d\n", buf[n]);
fclose(csvfile);
}
誰かが私に詳細を説明することができますか?オーディオファイルを読み込んで、必要な情報をどのように抽出することができますか?このコードを参照すると、誰かが私にライン8のパイプの意味を説明することができます
pipein = popen("ffmpeg -i whistle.wav -f s16le -ac 1 -", "r");
p.s.私はすでに多くの有用な情報を含んでいるオーディオファイルのヘッダーを読む方法を知っていますが、サンプルごとにオーディオファイル全体を分析したいと思っています。