我寫了一小段Python代碼(其中大部分是我從SO本身複製而來的),如果我的持續時間是0.1,但如果我的持續時間是0.05,我聽到一些點擊聲音。不知道爲什麼會這樣。在python中生成正弦音頻時產生噪音
我需要播放持續時間較短的頻率更高的數字,但是這種情況下的聲音完全混亂了。附上以下代碼:
import numpy as np
import sounddevice as sd
def playArray(pts, time):
samplerate = 44100.0
sd.default.samplerate = samplerate
volume = 10000
count = len(pts)
samples = np.arange(samplerate * time)/samplerate
wave = []
for freq in pts:
wavelet = volume * np.sin(2 * np.pi * freq * samples)
wave = np.concatenate([wave, wavelet])
wav_wave = np.array(wave, dtype=np.int16)
sd.play(wav_wave, blocking=True)
pts = np.arange(300, 1500, 10)
playArray(pts, 0.1)
你應該繪製你的波形圖,然後你會很快看到什麼是錯的。你串聯正弦音調,完全忽略它們的相位。這肯定會出錯。即使您要調整階段,如果頻率發生快速變化,仍然可能會聽到瑕疵。如果你需要正弦掃描,你可以試試[scipy.signal.chirp()](https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.chirp.html)。還有一些其他庫提供類似的信號。 – Matthias
您的音頻持續時間是0.1分鐘還是0.1秒? –
@Anil_M它的秒 –