色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 測聲音頻率

吉茹定1年前8瀏覽0評論

Python是一種高級編程語言,用于快速開發應用程序。它具有簡單易用、開源免費、面向對象等優點。Python 的第三方庫也非常豐富,包括測量音頻頻率的庫。

要測量聲音頻率,我們需要一些前置知識。聲波是一種機械波,是由固體、液體或氣體中分子或原子振動產生的。頻率是指單位時間內波形重復的次數。聲波的頻率我們稱之為聲音。聲音的頻率越高,我們就感覺它越尖銳。

以下是如何使用Python測量音頻頻率的例子:

import pyaudio
import numpy as np
# 定義常量
CHUNK = 1024  # 每次讀取的數據塊大小
FORMAT = pyaudio.paInt16  # 采樣格式
CHANNELS = 1  # 聲道數
RATE = 44100  # 采樣頻率
# 創建 PyAudio 對象
p = pyaudio.PyAudio()
# 打開數據流
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
# 開始錄音
while True:
# 讀取音頻數據
data = stream.read(CHUNK)
# 將數據轉為數組
data = np.frombuffer(data, dtype=np.int16)
# 計算頻率
fft = np.fft.fft(data)
freq = np.fft.fftfreq(CHUNK, 1 / RATE)
freq = freq[:int(CHUNK / 2)]
fft = np.abs(fft[:int(CHUNK / 2)])
f = freq[np.argmax(fft)]
print('頻率:%.2f Hz' % f)
# 停止數據流
stream.stop_stream()
stream.close()
# 關閉 PyAudio 對象
p.terminate()

以上代碼使用了PyAudio庫來獲取音頻數據,使用NumPy庫來計算頻率。我們首先定義了一些常量,如每次讀取的數據塊大小、采樣格式、聲道數和采樣頻率。然后我們創建了一個PyAudio對象,并打開了一個數據流。接著,我們使用一個無限循環來不斷地讀取音頻數據,并將其轉為數組。最后,我們使用FFT函數和argmax函數來計算聲音的頻率,然后輸出頻率值。

通過這個例子,我們可以看到使用Python測量音頻頻率非常簡單。Python的一些優點使得它成為進行音頻分析的強大工具。