Pythonは、音声処理の分野でもよく使われるプログラミング言語です。この記事では、Pythonを使った音声処理の基礎について紹介します。
音声データの読み込み
Pythonを使って音声データを読み込むには、waveモジュールを使用します。以下は、waveモジュールを使って音声ファイルを読み込む例です。
import wave
with wave.open('sound.wav', 'rb') as f:
frames = f.readframes(-1)
framerate = f.getframerate()
wave.open()メソッドで音声ファイルを開き、readframes()メソッドで音声データを読み込みます。getframerate()メソッドでサンプリング周波数を取得できます。
音声データの可視化
Pythonを使って音声データを可視化するには、matplotlibライブラリを使用します。以下は、matplotlibを使って音声データを可視化する例です。
import wave
import matplotlib.pyplot as plt
with wave.open('sound.wav', 'rb') as f:
frames = f.readframes(-1)
framerate = f.getframerate()
plt.plot(frames)
plt.show()
plt.plot()メソッドで音声データをプロットし、plt.show()メソッドでグラフを表示します。
音声データの周波数解析
Pythonを使って音声データの周波数解析を行うには、numpyライブラリとscipyライブラリを使用します。以下は、numpyとscipyを使って音声データの周波数解析を行う例です。
import wave
import numpy as np
from scipy import fft
with wave.open('sound.wav', 'rb') as f:
frames = f.readframes(-1)
framerate = f.getframerate()
frames = np.frombuffer(frames, dtype="int16")
spectrum = np.abs(fft(frames))
plt.plot(spectrum[:len(spectrum)//2])
plt.show()
numpy.frombuffer()メソッドで音声データを配列に変換し、scipy.fft()メソッドで周波数解析を行います。plt.plot()メソッドで周波数スペクトルをプロットし、plt.show()メソッドでグラフを表示します。
これで、Pythonを使った音声処理の基礎を紹介しました。今後は、これらの知識を応用して、より高度な音声処理を行っていくことができます。