2009-10-25 31 views
0

我正在將兩個文件的原始音頻字節寫入一個新的wav文件中以合併這兩個文件。創建的結果文件具有兩個音頻剪輯的內容,但文件中也有很多噪音。iPhone - 音頻文件中有很多噪音

有人能指點我一個很好的例子,它展示瞭如何將原始音頻字節寫入文件?這裏是我所遵循的基本邏輯

SInt32 leftSample1 = ReadSampleFromFile1(music_iter1); 
leftSample1 = (SInt32)((float) leftSample1 * 0.7071); //to avoid clipping 

SInt32 leftStereoSample2 = ReadLeftSample(music_iter2); 
leftStereoSample2 += leftSample1; 
if (leftStereoSample2 > 32767) 
leftStereoSample2 = 32767; 
else if (leftStereoSample2 < -32768 
leftStereoSample2 = -32768; 
// write leftStereoSample2 to the file 
//do the same as left sample to right sample also 

++music_iter2; 
++music_iter1; 

謝謝。

+0

我記錄了一個.wav文件,我想從該.wav文件中刪除背景噪音。我該怎麼做?請幫助我..掙扎一個星期。 – Warrior 2010-11-12 11:18:08

+0

我不想去除背景噪音。我可以在iPhone中禁用噪音消除功能嗎? – 2014-08-20 05:49:36

回答

1

這些回覆多少次?

if (leftStereoSample2 > 32767) 
leftStereoSample2 = 32767; 
else if (leftStereoSample2 < -32768 
leftStereoSample2 = -32768; 

只是因爲你沒有限,(因爲你強迫它不)並不意味着你不會得到神器(失真)等,當你截斷波這樣。我會看到這種情況發生的頻率。

核心音頻有混音器。聰明的人已經編寫了代碼來處理這種東西,所以我們不必:) MultiChannelMixer是一個可以進行立體聲混音的程序。一探究竟。

0

您對65535和-65536的測試不正確(需要17位)。 嘗試32767和-32768。

+0

這樣做。仍然得到相同的結果。任何其他想法?謝謝 – lostInTransit 2009-10-25 11:21:38

+0

編輯問題。我仍然聽到噪音 – lostInTransit 2009-10-26 06:07:14

0

我不確定「防止裁剪」的代碼行實際上是在做它的工作;在加入它們之前,你不需要有效地拒絕兩個流嗎?

嘗試結合兩個更安靜的文件。在兩個文件上,而不是0.7071,嘗試0.5。或者按照Aran的建議使用MultiChannelMixer。