import os
import datetime
import sys
import shutil
import glob
import argparse
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument('--path', type=str)
parser.add_argument('--imgsize', type=int, default=100)
parser.add_argument('--num', type=int, default=10000)
args = parser.parse_args()
return args
# -------------------------------------- joint ----------------------------------- #
def create_audio_visual_sec(args, f, name):
dir_list = [name for name in os.listdir(
args.path) if os.path.isdir(os.path.join(args.path, name))]
dir_list.sort()
f.write('''
''')
joint_sec = """
{}
Index #
""".format(name)
for name in dir_list:
joint_sec += '''\n{} '''.format(name)
joint_sec += '''\n \n'''
f.write(joint_sec)
item_list = []
count = []
for i in range(len(dir_list)):
file_list = os.listdir(os.path.join(args.path, dir_list[i]))
file_list.sort()
count.append(len(file_list))
item_list.append(file_list)
file_count = min(count)
for j in range(min(file_count, args.num)):
f.write('''\n''')
for i in range(-1, len(dir_list)):
if i == -1:
f.write(''' sample #{} '''.format(str(j)))
f.write('\n')
else:
sample = os.path.join(dir_list[i], item_list[i][j])
if sample.split('.')[-1] in ['wav', 'mp3']:
f.write(''' '''.format(
sample, sample.split('.')[-1]))
elif sample.split('.')[-1] in ['jpg', 'png', 'gif']:
f.write(
''' '''.format(sample, args.imgsize))
elif sample.split('.')[-1] in ['mp4', 'avi', 'webm']:
f.write(''' '''.format(
sample, sample, sample.split('.')[-1], sample))
f.write('\n')
#
f.write(''' \n''')
f.write('''
\n''')
f.write('''
\n''')
# -------------------------------------- Audio ----------------------------------- #
def create_audio_sec(args, f, name):
f.write('''''')
audio_sec = """
{}
Index #
Mixture
Original audio #1
Original audio #2
Separated audio #1
Separated audio #2
regenerated audio mix
regenerated audio #1
regenerated audio #2
\n
""".format(name)
f.write(audio_sec)
folder_path = os.path.join(args.path, 'audio')
dir_list = os.listdir(folder_path)
dir_list.sort()
audio_list = []
for i in range(len(dir_list)):
l = os.listdir(os.path.join(folder_path, dir_list[i]))
l.sort()
audio_list.append(l)
for j in range(len(audio_list[0])):
f.write('''\n''')
for i in range(-1, len(dir_list)):
if i == -1:
f.write(''' audio #{} '''.format(str(j)))
f.write('\n')
else:
audio_path = os.path.join(
folder_path, dir_list[i], audio_list[i][j])
f.write(''' '''.format(
audio_path, audio_path.split('.')[-1]))
f.write('\n')
f.write(''' \n''')
f.write('''
\n''')
f.write('''
\n''')
# -------------------------------------- Image ----------------------------------- #
def create_image_sec(args, f, name):
f.write('''''')
image_sec = """
{}
Index #
Mixture Spec
Original Spec #1
Original Spec #2
Separated Spec #1
Separated Spec #2
\n
""".format(name)
f.write(image_sec)
folder_path = os.path.join(args.path, 'spec_img')
dir_list = os.listdir(folder_path)
dir_list.sort()
image_list = []
for i in range(len(dir_list)):
l = os.listdir(os.path.join(folder_path, dir_list[i]))
l.sort()
image_list.append(l)
for j in range(len(image_list[0])):
f.write('''\n''')
for i in range(-1, len(dir_list)):
if i == -1:
f.write(''' audio #{} '''.format(str(j)))
f.write('\n')
else:
img_path = os.path.join(
folder_path, dir_list[i], image_list[i][j])
f.write(''' '''.format(
img_path, 175))
f.write('\n')
f.write(''' \n''')
f.write('''
\n''')
f.write('''
\n''')
# -------------------------------------- Video ----------------------------------- #
def create_video_sec(args, f, name):
f.write('''''')
video_sec = """
{}
\n
""".format(name)
f.write(video_sec)
# folder_path = os.path.join(args.path, 'videos')
video_list = glob.glob('%s/*.mp4' % args.path)
video_list.sort()
columns = 3
rows = len(video_list) // columns + 1
for i in range(rows):
f.write('''\n''')
for j in range(columns):
index = i * columns + j
if index < len(video_list):
video_path = video_list[i * columns + j]
f.write('''
{} '''.format(
video_path.split('/')[-1], video_path, video_path.split('.')[-1]))
f.write('\n')
f.write(''' \n''')
f.write('''
\n''')
f.write('''
\n''')
def webify(args):
html_file = os.path.join(args.path, 'index.html')
f = open(html_file, 'wt')
# head
#
head = """
Listening and Looking - UM Owens Lab
"""
f.write(head)
intro_sec = '''
Listening and Looking - UM Owens Lab
Creator: Ziyang Chen
University of Michigan
This page contains the results of experiment.
'''
f.write(intro_sec)
# create_audio_sec(args, f, "Audio Separation")
# create_image_sec(args, f, 'Spectorgram Visualization')
# create_video_sec(args, f, 'CAM Visualization')
create_audio_visual_sec(args, f, 'Stereo CRW')
f.write('''\n''')
f.write('''\n''')
f.close()
if __name__ == "__main__":
args = parse_args()
webify(args)
print('Webify Succeed!')