예제 #1
0
def _sfs2label(txtlines, output_path):
    logger = logging.getLogger('mtts')
    sfs_path = os.path.join(output_path, 'sfs')
    label_path = os.path.join(output_path, 'labels')
    os.system('mkdir -p %s/labels' % output_path)

    sfs_list = [x.replace('.sfs', '') for x in os.listdir(sfs_path)]

    process_num = 0

    for line in txtlines:
        numstr, txt = line.split()
        if numstr in sfs_list:
            process_num += 1
            logger.info('processing %s, file %s' % (process_num, numstr))
            sfs_file = os.path.join(sfs_path, numstr + '.sfs')
            label_file = os.path.join(label_path, numstr + '.lab')

            try:
                label_line = txt2label(txt, sfsfile=sfs_file)
            except Exception:
                logger.error(
                    'Error at %s, please check your txt %s' % (numstr, txt))
            else:
                with open(label_file, 'w') as oid:
                    for item in label_line:
                        oid.write(item + '\n')
예제 #2
0
def _sfs2label(txtlines, wav_dir_path, output_path):
    sfs_path = os.path.join(output_path, 'sfs')
    label_path = os.path.join(output_path, 'labels')
    os.system('mkdir -p %s/labels' % output_path)

    sfs_list = [x.replace('.sfs', '') for x in os.listdir(sfs_path)]

    process_num = 0

    for line in txtlines:
        numstr, txt = line.split()
        if numstr in sfs_list:
            process_num += 1
            print('processing %s, file %s' % (process_num, numstr))
            sfs_file = os.path.join(sfs_path, numstr + '.sfs')
            label_file = os.path.join(label_path, numstr + '.lab')

            try:
                label_line = txt2label(txt, sfsfile=sfs_file)
            except AssertionError:
                print('AssertionError at %s' % numstr)
                with open(os.path.join(output_path, 'error.log'), 'a+') as fid:
                    fid.write('AssertionError at %s \n' % numstr)
            else:
                with open(label_file, 'w') as oid:
                    for item in label_line:
                        oid.write(item + '\n')