示例#1
0
文件: insp.py 项目: ivan111/inspause
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)
示例#2
0
        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
示例#3
0
    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()
示例#4
0
        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
示例#5
0
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
示例#6
0
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)