是的,Python 的 PyAudio 庫可以實現音頻實時處理。PyAudio 是一個用于訪問音頻設備的 Python 庫,它提供了對音頻流的讀取、寫入和處理的功能。要實現音頻實時處理,你可以使用 PyAudio 結合其他庫,如 NumPy 和 SciPy,來進行音頻信號的分析和處理。
以下是一個簡單的 PyAudio 示例,用于實時讀取和處理音頻數據:
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)
# 在這里進行音頻處理,例如濾波、頻譜分析等
# 播放處理后的音頻
def play_audio(audio_data):
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
output=True)
stream.write(audio_data.tobytes())
stream.stop_stream()
stream.close()
p.terminate()
play_audio(audio_data)
在這個示例中,我們首先使用 PyAudio 打開一個音頻流,然后在一個循環中讀取音頻數據并將其存儲在列表中。在循環結束后,我們可以對音頻數據進行實時處理,例如濾波、頻譜分析等。最后,我們使用另一個循環將處理后的音頻數據播放出來。
請注意,這只是一個簡單的示例,實際應用中你可能需要對音頻數據進行更復雜的處理。你可以根據需要使用 NumPy 和 SciPy 等庫來實現各種音頻處理算法。