我想從原始音頻文件中繪製波形。我使用FFmpeg對音頻文件進行了解複用/解碼,並且我有這些信息:採樣緩衝區,採樣緩衝區的大小,音頻文件的持續時間(以秒爲單位),採樣率(44100,4800等),採樣大小,採樣格式(uint8,int16,int32,float,double)和原始音頻數據本身。從音頻中繪製波形的算法
挖掘在互聯網上,我發現這個算法(更多here):
白噪聲:
算法
所有你需要做的是隨機每個樣本從幅度到 幅度。我們並不關心大多數情況下的頻道數量,因此我們只需用新的隨機數填充每個樣本。
Random rnd = new Random();
short randomValue = 0;
for (int i = 0; i < numSamples; i++)
{
randomValue = Convert.ToInt16(rnd.Next(-amplitude, amplitude));
data.shortArray[i] = randomValue;
}
這真的很不錯,但我並不想得出這種方式,但這種方式:
有如何我可以使用來繪製任何算法或想法我有什麼信息?
你似乎是試圖利用波形** **生成算法時,你已經有你的波形。所以這聽起來像你需要什麼都不做。 – Galik 2014-10-30 21:23:44
@Galik - 你的意思是「你已經有了你的波形」?我唯一擁有的是關於上面列出的原始文件的信息,現在我正在尋找一種使用這些信息繪製波形的算法。 – yayuj 2014-10-30 21:26:30
那麼你鏈接的算法與繪製波無關。他們產生了浪潮。你使用ffmpeg生成你的wave來轉換原始聲音數據。所以你不需要發電機。我想也許你需要的是某種GUI框架,它允許你在屏幕上繪製東西。 – Galik 2014-10-30 21:28:11