是的,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 = https://www.yisu.com/ask/stream.read(CHUNK)"录音完成。") stream.stop_stream() stream.close() p.terminate() audio_data = https://www.yisu.com/ask/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 将其转换为频谱图。你可以根据需要修改代码以满足你的实时音频分析需求。