我一直在用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.我已經知道如何讀取包含大量有用信息的音頻文件的標題,但我也想分析整個音頻文件,並通過示例進行分析。