要使用SciPy庫進行聲音信號處理,首先需要導入相應的模塊:
from scipy.io import wavfile
from scipy import signal
import numpy as np
import matplotlib.pyplot as plt
然后可以使用wavfile.read()
函數讀取音頻文件:
sample_rate, audio_data = wavfile.read('audio_file.wav')
接下來可以對音頻數據進行處理,比如進行時域分析或頻域分析:
# 時域分析
time = np.arange(0, len(audio_data)) / sample_rate
plt.plot(time, audio_data)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.title('Audio Signal in Time Domain')
plt.show()
# 頻域分析
frequencies, times, spectrogram = signal.spectrogram(audio_data, sample_rate)
plt.pcolormesh(times, frequencies, 10 * np.log10(spectrogram))
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.title('Spectrogram')
plt.show()
除了時域分析和頻域分析外,還可以使用SciPy庫進行一些其他的聲音信號處理操作,比如濾波、降噪等。SciPy提供了豐富的信號處理工具,可以根據具體需求進行調用。