【Python】複数のWAVファイルの波形を表示するプログラム【サウンドプログラミング】
どうもこんにちは。たっきーです。
最近カフェインをよく摂取している。
参考
なにする?
WAVファイルの波形をmatplotlibで複数表示する。
ただし、読み込まれるデータはバイナリなので数値を変換する必要がある。
割りとここのパクってfor文で回してるだけな感じある。(ありがとうございます。)
環境
- Python 3.6.3
- numpy 1.13.3
- matplotlib 2.1.0
下準備
ここで作ったWAVデータを用意する。
まぁ、実は複数の連番WAVファイルを用意するだけでいいが。
コード
とりあえず関数の定義。WAVファイルの数値変換と振幅正規化してる。
time = ○○で表示する時間を指定できる。
わかりやすいようにx軸y軸にラベルとグラフタイトルと付け加えている。
一応、y軸を固定しないと勝手に最適化(?)されてしまうのでy軸を-1~1で固定してある。
あとは 以下のように関数を呼び出すとグラフが表示出来る。
OUTPUT
多分、青色が左の音の波形で、橙色が右の音の波形(だと思う)
あとはfor文で回すだけ。
OUTPUT(略)
こんな感じで表示される。
2列〜3列で表示したいんだがどうしたらいいんだ…って感じ。
詳解 ディープラーニング ~TensorFlow・Kerasによる時系列データ処理~
- 作者: 巣籠悠輔
- 出版社/メーカー: マイナビ出版
- 発売日: 2017/05/30
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
おわりに・感想
ささっと書いたのですごい雑なコードになってしまった。。。
今回は波形を1秒毎に表示してみたけど、案外1秒間ずっと無音の部分とかあった。
なので、今度時間がある時に無音部分を判別してはじくプログラムとか組んでみたいなぁ(どうせやらない。)
楽器(今回はpiano,guitar,bass,drams)の音色を機械学習で分類したいんだが、流石に波形みるだけじゃあまり規則性みたいなものは目視ではあまり感じられなかった。(timeを短くしてみてもあまりわからなかった。)
もっとmatplotlibを上手く使いこなせるようになりてぇ。。。
おっすオラ、マックブック・プロ
— たっきー@ダサテプラP (@tacky0612) 2017年11月27日