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で音響処理シリーズ>
コメント