2013-05-31 85 views
0

我最近開始在Android上使用AudioTrack進行播放,並遇到了一些播放音調的問題。如果我從頻率爲18kHz的正弦曲線切換到頻率爲19kHz頻率的正弦曲線,當頻率發生變化時會發出咔噠聲。整個作品從一個靜態緩衝區播放,從AudioTrack播放。採樣頻率爲44.1kHz,每個正弦波採樣44100次,每個波形約有一秒的時間。Android上的高頻音頻

更進一步,我在Audacity上生成了相同的音色,並且在頻率改變時仍然可以聽到輕微的點擊。噪音本身聽起來像揚聲器打開和關閉,但我不確定。

任何想法可以消除這種咔噠聲?

+0

您很可能會在波形中有瞬間跳躍。你應該確保情況並非如此。 –

+0

有沒有兩個鼻竇,或者你在播放聲音時是否改變了數值? – arynaq

+1

如果要輸出到內置揚聲器/耳機或3.5mm耳機,請記住,大多數移動平臺的硬件編碼解碼器的本機採樣率爲48000 Hz。因此係統中會有一個44.1-> 48 kHz重採樣器(例如在多媒體DSP上)。這在某些情況下可能在18或19 kHz時有相當大的衰減(基於我見過的一些聲學測量值,儘管這是一年前)。 – Michael

回答

1

點擊最有可能發生,因爲您在18kHz波和19kHz波之間有不連續的跳躍。

要糾正這個問題,請等到18kHz正弦波到達零點,切換頻率,然後開始從零點,以與18kHz波形相同的方向繪製19kHz波形。因此,如果18kHz波從積極的一面接近零,你會開始繪製19kHz的波朝向消極的一面。

+0

謝謝,這是有道理的。我會試一試。 – Batman

+0

如果因爲我們正在離散點而正弦從未達到0,那麼接近0的東西沒事嗎?我仍然有這樣的咔嗒聲,但它有點淡化。 – Batman

+1

@Batman您也可以嘗試在短時間內逐漸從18kHz轉換到19kHz,例如使用'sin(18000 * t * 2 * pi)*(1-a)+ sin(19000 * t * 2 * pi)* a'作爲您的波形,其中a'初始爲0並平滑地變爲1. – reima