是的,Python 的 PyAudio 庫可以用于音頻合成。雖然它本身并不直接提供音頻合成功能,但您可以使用它來播放由其他庫(如 pygame
或 winsound
)生成的音頻數據。
例如,以下是一個使用 PyAudio 和 pygame 庫實現簡單音頻合成的示例:
import pyaudio
import pygame
import numpy as np
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
pygame.mixer.init()
def play_sound(data):
pygame.mixer.music.load_data(data)
pygame.mixer.music.play()
while True:
data = stream.read(CHUNK)
sound_data = np.frombuffer(data, dtype=np.int16)
play_sound(sound_data.tobytes())
在這個示例中,我們從麥克風輸入音頻數據,然后使用 numpy 將其轉換為音頻樣本。接下來,我們使用 pygame 庫播放這些音頻樣本。請注意,這個示例僅適用于簡單的音頻合成,如播放單個音頻文件。對于更復雜的音頻合成任務,您可能需要使用其他專門用于音頻處理的庫,如 librosa
或 sox
。