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ライブラリを使用します。以下は、numpyscipyを使って音声データの周波数解析を行う例です。

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を使った音声処理の基礎を紹介しました。今後は、これらの知識を応用して、より高度な音声処理を行っていくことができます。