嗨我試圖在本機C中爲Android實現一個環形調製器。我需要爲語音轉換器應用程序操縱wav文件。我想獲得像dalek聲音一樣的效果。 這是我迄今所做的: 閱讀wav文件 - 通過WAV的每一個樣本工程 迭代 - 工程 保存新樣本 - 工程適用於Android的語音效果環調製器
對於環形調製器的音頻文件的聯合竇,所以我想這:
//Position through the sine wave as a percentage (i.e. 0 to 1 is 0 to 2*PI)
double cyclePosition = 0;
double fFreq = 1; // Frequency of sine wave in hz
double cycleInc = fFreq/16000; // Fraction of cycle between samples
for(i=0; i<csize; i++)
{
currentSample = //read it;
currentSample = currentSample* sin(2*M_PI*cyclePosition));
currentSample = //write it;
cyclePosition += cycleInc;
if (cyclePosition > 1)
cyclePosition -= 1;
}
所以問題是,如果我輸入的1Hz的頻率,每1秒有音頻一個非常響亮的嘶嘶聲。如果我改變頻率爲30Hz,例如我無法理解最初的音頻。 有沒有人有一個想法如何改善這一點?
我假設採樣率固定在16kHz? –
這顯然不是您的實際代碼,因爲循環的第二行有一個雜散/額外的右括號。你可以仔細檢查一下嗎?另外,currentSample的數據類型是什麼?另一件要檢查的事情是記錄cyclePosition和罪的輸出,看它們是否輸出你期望的結果。 –
採樣率已修復。 currentSample的數據類型很短。我不知道我應該期待什麼。我所知道的唯一一件事就是環形調製是通過將音頻與正弦波相結合來實現的。 – Gingerbread123321