是的,Python 的 PyAudio 庫可以用于實時音頻處理和分析。PyAudio 是一個跨平臺的庫,它允許你訪問音頻設備的輸入和輸出功能。要實現實時音頻分析,你可以結合其他庫,如 NumPy、Librosa 或 SciPy,來進行音頻信號處理和分析。
以下是一個使用 PyAudio 和 NumPy 進行實時音頻捕獲和簡單分析的示例:
import pyaudio
import numpy as np
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
print("開始錄音...")
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print("錄音完成。")
stream.stop_stream()
stream.close()
p.terminate()
audio_data = np.frombuffer(b''.join(frames), dtype=np.int16)
# 在這里進行音頻分析,例如計算頻譜
import matplotlib.pyplot as plt
from scipy.fftpack import fft, fftshift
def plot_spectrum(data):
spectrum = np.abs(fft(data))
plt.plot(spectrum)
plt.xlabel("Frequency")
plt.ylabel("Amplitude")
plt.show()
plot_spectrum(audio_data)
這個示例展示了如何使用 PyAudio 捕獲 5 秒的音頻數據,并使用 NumPy 將其轉換為頻譜圖。你可以根據需要修改代碼以滿足你的實時音頻分析需求。