pythonでwavファイルを読んで波形を表示する

タイトルの通り、音響信号処理プログラムの第一歩です。
pythonでwavを読むならPySoundFileが一番簡単だと思います。
mp3ファイルを読みたい場合、Audacity等のフリーソフトを使ってwavファイルに変換しておきましょう。
wavファイルで何をしたいかによりますが、モノラル(単チャンネル)で良いならAudacityを使ってステレオ→モノラルに変換しておきましょう。
Audaciy、音をちょこっと確認するときとかに重宝するので入れておいて損はないと思いますよ。
当方の環境は

  • windows 10
  • Python 3.7.4

です。
PySoundFileのインストールはpipを使って

pip install PySoundFile

です。
それでは実際に読み込んでいきます。
読み込む関数を作ります。
PySoundFileはsfと略してimportされることが多いみたいです。

import soundfile as sf
def wav_read(path):
    wave, fs = sf.read(path) #音データと周波数を読み込む
    return wave, fs

これで読み込めます。
マルチチャンネルのwavファイルを使う場合は配列の向きに注意してください。
グラフをプロットするところは以下。
matplotlibを使います。

import matplotlib.pyplot as plt
import numpy as np
if __name__ == "__main__":
    wave, fs = wav_read(path_to_wavefile)
    time = np.arange(0,len(wave))/fs
    plt.plot(time, wave)
    plt.show()
    plt.close()

モノラルの音源を読むと以下のように表示されるはずです。

私の鼻歌です( ˘ω˘ )
これで音を配列としてpythonに読み込むことができました。
次回以降色々な処理をしていきたいと思います。

コメント

タイトルとURLをコピーしました