mirror of
https://github.com/babysor/MockingBird.git
synced 2024-03-22 13:11:31 +08:00
b617a87ee4
* Init ppg extractor and ppg2mel * add preprocess and training * FIx known issues * Update __init__.py Allow to gen audio * Fix length issue * Fix bug of preparing fid * Fix sample issues * Add UI usage of PPG-vc
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
import matplotlib
|
|
matplotlib.use('Agg')
|
|
import time
|
|
|
|
class Timer():
|
|
''' Timer for recording training time distribution. '''
|
|
def __init__(self):
|
|
self.prev_t = time.time()
|
|
self.clear()
|
|
|
|
def set(self):
|
|
self.prev_t = time.time()
|
|
|
|
def cnt(self, mode):
|
|
self.time_table[mode] += time.time()-self.prev_t
|
|
self.set()
|
|
if mode == 'bw':
|
|
self.click += 1
|
|
|
|
def show(self):
|
|
total_time = sum(self.time_table.values())
|
|
self.time_table['avg'] = total_time/self.click
|
|
self.time_table['rd'] = 100*self.time_table['rd']/total_time
|
|
self.time_table['fw'] = 100*self.time_table['fw']/total_time
|
|
self.time_table['bw'] = 100*self.time_table['bw']/total_time
|
|
msg = '{avg:.3f} sec/step (rd {rd:.1f}% | fw {fw:.1f}% | bw {bw:.1f}%)'.format(
|
|
**self.time_table)
|
|
self.clear()
|
|
return msg
|
|
|
|
def clear(self):
|
|
self.time_table = {'rd': 0, 'fw': 0, 'bw': 0}
|
|
self.click = 0
|
|
|
|
# Reference : https://github.com/espnet/espnet/blob/master/espnet/nets/pytorch_backend/e2e_asr.py#L168
|
|
|
|
def human_format(num):
|
|
magnitude = 0
|
|
while num >= 1000:
|
|
magnitude += 1
|
|
num /= 1000.0
|
|
# add more suffixes if you need them
|
|
return '{:3.1f}{}'.format(num, [' ', 'K', 'M', 'G', 'T', 'P'][magnitude])
|
|
|