【Pythonで音響信号処理】wavの入力と波形の表示

エンジニアのメモ帳
この記事は約4分で読めます。

Pythonで音響信号処理シリーズ第2弾です

 

今回はwav ファイルの入力と波形の表示についてです

 

前回の内容

前回はライブラリをインストールしました

 

まだLibROSAを入れていない方は上記をご参照ください

 

wavとは

wavとは音響ファイルの拡張子の1つです

 

無圧縮のため情報量が多いので、基本的に音響信号処理ではこの拡張子を使います

 

逆に普段音楽を聴くときはmp3やm4aとかが一般的ですかね

 

独自の圧縮がされているため、音質をあまり下げずに容量を節約できます

 

wavの読み込み

プログラムに音響データを読み込ませることで様々な処理を行うことができます

 

LibROSAではload関数を使うことでwavファイルの読み込みを行います

 

使い方

まずは適当なwavファイルを用意しましょう

 

今回の例だと”hoge.wav”というファイルを用意してます

 

そのファイルを下の”wav_load.py”というプログラムと同じフォルダに入れます

 

そしてこのプログラムを実行します

# wav_load.py
import librosa

# 読み込むファイルのパス
filename = "hoge.wav"

# wavには波形データ、srにはサンプリング周波数が返ってくる
wav, sr = librosa.load(filename, sr=44100)

 

load関数でwavファイルを読み込むと、波形データとサンプリング周波数が戻り値として返ってきます

 

音響信号処理の分野ではこの波形データをベースにしてを分析や加工を行います

 

注意点

一見便利なload関数ですが1つ注意点があります

 

それはサンプリング周波数の初期値が22,050Hzだということです

 

なので引数のsrの値を指定しないと、44,100Hzなどのサンプリング周波数で録音された音響データは勝手にリサンプリングされてしまいます

 

引数の付け忘れにご注意ください

(そして引数で指定した値が戻り値で返ってくるって何の意味があるんだろうか…笑)

 

wavの波形表示

続いてwavデータを実際にグラフ表示する方法です

 

LibROSAのdisplayクラスのwaveplot関数を使用します

 

使い方

まずは波形を表示させたいwavファイルを用意します

 

先程と同様にそれを下の”wav_plot.py”というプログラムと同じ場所に置きます

 

そしてこのプログラムを実行します

# wav_plot.py
import librosa
from librosa import display
import matplotlib.pyplot as plt
filename = "hoge.wav"
wav, sr = librosa.load(filename, sr=44100)
plt.figure(figsize=(16, 9))
librosa.display.waveplot(wav, sr)
plt.show()

 

するとこのように出力されます

出力波形の画像

 

これで波形の形を目で確認することができます

 

注意点

波形を表示させるためにはLibROSAとは別にmatplotlibというライブラリが必要です

 

まだインストールしていない方は下記コマンドでインストールできます

 

pip -m install -U matplotlib

 

上記コマンドで上手くインストールできなかった場合はこちらをご参照ください

 

まとめ

今回はLibROSAでwavファイルを読み込み、波形を表示する方法をまとめました

 

また、それぞれを実行する際の注意点も一緒に明記しました

 

次はwavの周波数分析の方法について書く予定です

 

最後までご閲覧ありがとうございました!

 

<Pythonで音響処理シリーズ>

 

コメント

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