ラジオ音源を深層学習のデータにしたい
- deeolearningにおいて重要なことはなんですか?
- 「データでしょ!」(古い!!)
- よって超A&Gのラジオデータをぶっこ抜いてデータとして使おうと考えました.
-
注意
著作権とか色々ありますので使用は各個人の自己責任で - いろんなデータの変換にも使えるので公開しておきまshowということ
プログラム手順
- 変換したいデータがあるディレクトリがある
- コマンドラインでインプットディレクトリとアウトディレクトリを指定
- あとはsubprocessを噛ましてffmpegで変換
ポイント
- ffmpegのコマンドについて
- 今回のプログラムではflvファイルをwavファイルに変換することと16000HZに変換を同時に行ってます。
- ffmpegの簡単なまとめは以下の通り
#まずは拡張子の変換
$ffmpeg input.hoge output.hoge #hogeは拡張子
#サンプリングレートの変換
$ffmpeg input.hoge -ar 16000 output.hoge #-ar newsamplingrate
aandg.py
# -*- coding: utf-8 -*-
import sys
import glob
import os
import subprocess
#ディレクトリの指定
if len(sys.argv) != 3:
print("python3 aandg.py [inputfile_dir] [outputfile_dir]")
sys.exit()
else:
print(sys.argv[1])
inputpath=path = os.path.abspath(sys.argv[1])
#今回は入力されたディレクトリの中の.flvのみをリスト化
file_list=glob.glob(inputpath+"/*.flv")
#アウトプットディレクトリなかったらっ作成
if not os.path.exists(sys.argv[2]):
os.mkdir(sys.argv[2])
print("make dir",sys.argv[2])
output_path = os.path.abspath(sys.argv[2])
for item in file_list:
#subprocessで変換拡張子なしのファイル名も取得しておく
basename_without_ext = os.path.splitext(os.path.basename(item))[0]
#今回はflvを16,000HZのwavに変換
cmd = "ffmpeg -i "+item+" -ar 16000 "+output_path+"/"+basename_without_ext+".wav"
runcmd = subprocess.call(cmd.split())
- サンプルコードとかはgithubに載せときます.あとはいい感じでよろしく