要使用Python和PyAudio庫實現音頻流處理,首先需要安裝PyAudio庫。你可以通過以下命令安裝:
pip install pyaudio
接下來,你可以使用以下代碼示例來實現音頻流處理:
import pyaudio
import numpy as np
# 音頻參數
CHUNK = 1024 # 每個數據塊的大小
FORMAT = pyaudio.paInt16 # 數據類型
CHANNELS = 1 # 單通道
RATE = 44100 # 采樣率
RECORD_SECONDS = 5 # 錄音時間
# 初始化PyAudio
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()
# 將音頻數據轉換為numpy數組
audio_data = np.frombuffer(b''.join(frames), dtype=np.int16)
# 在這里,你可以對音頻數據進行處理,例如濾波、分析等
# 播放音頻(可選)
def play_audio(audio_data, rate):
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16,
channels=1,
rate=rate,
output=True)
stream.write(audio_data.tobytes())
stream.stop_stream()
stream.close()
p.terminate()
play_audio(audio_data, RATE)
這個示例代碼首先初始化PyAudio,然后打開一個音頻流以接收輸入數據。接著,它在一個循環中讀取音頻數據并將其存儲在列表中。錄音完成后,代碼將音頻數據轉換為numpy數組,以便進行進一步處理。最后,代碼提供了一個可選的播放音頻的功能。
你可以根據需要修改這個示例,以實現自己的音頻流處理功能。例如,你可以使用信號處理技術(如濾波器)來分析音頻數據,或者將處理后的音頻數據保存到文件中。