def insert_pause(src_file, dst_file, labels_file, factor, add_s): in_snd = pausewave.open(src_file, 'rb') labels = Labels(labels_file) rate = in_snd.getframerate() nframes = in_snd.getnframes() tbl = Conv_table(labels, rate, nframes, factor, add_s) in_snd.settable(tbl) out_snd = pausewave.open(dst_file, 'wb') data = in_snd.readframes(CHUNK_F) while len(data) > 0: out_snd.writeframes(data) data = in_snd.readframes(CHUNK_F)
def __init__(self): wx.Frame.__init__(self, None) wav = pausewave.open("in.mp3") vol = Volume(wav) win = VolumeWindow(parent=self, id=-1) self.statusbar = self.CreateStatusBar() self.Bind(EVT_VW_POS_CHANGE, self.OnVwPosChange) self.Bind(EVT_REQ_PLAY, self.OnReqPlay) self.Bind(EVT_REQ_PAUSE, self.OnReqPause) win.SetVolume(vol) self.win = win
def SetSound(self, snd_path, labels_path): ''' 波形画面に音声を設定する ''' if self.wp.is_playing: self.Pause() msg = u'音声ファイルを読み込み中' dlg = wx.ProgressDialog(u'読込', msg, parent=self.frame) try: self.snd = pausewave.open(snd_path, 'rb', dlg.Update) if self.snd.getnframes() == 0: raise Exception('num of frames == 0') except Exception as e: print str(e) msg = u'音声ファイルの読み込みに失敗しました。\n\n' \ u'音声ファイル=%s\nラベルファイル=%s' % (snd_path, labels_path) wx.MessageBox(msg) self.view.SetVolume(None) self.view.SetLabels(Labels(), labels_path) self.EnableUI() return finally: dlg.Destroy() vol = Volume(self.snd) self.view.SetVolume(vol) labels = self.LoadLabels(labels_path, self.snd) self.view.SetLabels(labels, labels_path) item = self.flist.GetFirstSelected() if item != -1: self.flist.SetItemImage(item, IMG_HAS_LABELS, IMG_HAS_LABELS) self.SetTitleBar(snd_path) nframes = self.snd.getnframes() rate = self.snd.getframerate() self.dur_str = sec_to_str(float(nframes) / rate) self.SetStatusPosText(self.view.pos_f) self.EnableUI()
def __init__(self): wx.Frame.__init__(self, None, size=(500, 400)) wav = pausewave.open('in.mp3') vol = Volume(wav) labels = find_sound(vol) win = LabelsWindow(parent=self, id=-1) self.statusbar = self.CreateStatusBar() win.Bind(EVT_VW_POS_CHANGE, self.OnVwPosChange) win.Bind(EVT_REQ_PLAY, self.OnPlay) win.Bind(EVT_REQ_PAUSE, self.OnPause) win.Bind(EVT_REQ_IFCUT_PLAY, self.OnIfCutPlay) win.Bind(EVT_REQ_PAUSE_PLAY, self.OnPausePlay) win.SetVolume(vol) win.SetLabels(labels, None) self.win = win
def main(): argc = len(sys.argv) if argc < 2 or argc > 3: usage(sys.argv[0]) sys.exit(1) src_file = sys.argv[1] if argc == 2: labels_file = None else: labels_file = sys.argv[2] snd = pausewave.open(src_file, 'r') vol = Volume(snd, FIND_RATE) labels = find_sound(vol) if labels_file: labels.write(labels_file) else: print labels
def auto_shift(snd_path, labels_path): ''' 自動ずれ補正 ''' snd = pausewave.open(snd_path, 'rb') labels = Labels(labels_path) if labels.dist_s == NO_DISTINCTION: return d = find_dist_s(snd) auto_shift_s = auto_shift_diff_s(d, labels.dist_s) if auto_shift_s != 0: labels.dist_s = d labels.shift(auto_shift_s) labels.write(labels_path) base_name = os.path.basename(snd_path) print 'auto shift: %.6fs %s' % (auto_shift_s, base_name)