【Python】WAVファイルを等間隔に分割するプログラムpart2【サウンドプログラミング】
どうも、たっきーです。
今回は前回の続き。
なにする?
前回のヤァツの強化版作りたい。
前回のヤァツはファイル一個に対してしか分割できなかったけど、今回は複数ファイルを一括で等間隔で分割したい。
前回
環境
- Python 3.6.3
- numpy 1.13.3
- scipy 0.19-.1
下準備
とりあえず等間隔に分割したいWAVファイルを0〜n.wavというファイル名で用意する。(nはファイル数-1)
データ数が100ぐらいならいいけど、それより多くなると面倒くさいので自動で0〜nで名前をふれる方法があれば教えて欲しいでござる…。
コード
前回書いたコードをちょっと手入れした。(ちょっと汚いコードなのは性格。)
cut_wav()をちょっと変更して、
- returnでカット済のファイル名の次の値を返す
- 始まりのファイル名を引数に追加
あとは、for文でcut_wav()を回してるだけ。
分割したい時間と最後のファイル名(ファイル数-1)を指定できるようにしてある。
あとはターミナルで以下コマンド叩くだけ。
$ cd データセットとこのコードが入ってるディレクトリへのPath
$ python コード名(この場合cut_wav).py
ってやると、分割したい時間と最後のファイル名(ファイル数-1)の入力を求められるので入力する。今回は1秒毎に分割したくて最後のファイル名が87.wavなので、cut_timeには1、Number of fileには87を入力する。
こんな感じ。
↓ 終点 ↓
最後のreturn(今回は1900)が分割後のファイル数になる。
同じディレクトリ内にoutputってディレクトリが生成され、その中に分割後のWAVファイルが格納されるようになっている。
※returnが1900なのに生成された最後のWAVファイルが1899なのは0〜1899で1900個であるため。(return に+1している為でもある。)
上手く分割出来た✌
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
- 作者: Al Sweigart,相川愛三
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/06/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
サウンドプログラミング入門――音響合成の基本とC言語による実装 (Software Design plus)
- 作者: 青木直史
- 出版社/メーカー: 技術評論社
- 発売日: 2013/02/01
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 18回
- この商品を含むブログ (6件) を見る
おわりに・感想
88個のWAVファイルを分割することで1900個のWAVファイルに増やすこと(いや、増えてはいないが)が出来た。
考えられる問題点は、1秒で分割したので1秒間が全部無音とかが存在しそうってことかな。(検証してないのでわからん)
そういうのがあったら機械学習やる上で不都合なのでどうにかして除去したい。
今日はこんなくらいで、さよならー。
さっさと機械学習をやれ
— たっきー@ダサテプラP (@tacky0612) 2017年11月24日