Thchs30数据处理

  经过两周的努力,终于将kaldi中thchs语料(train、dev、test)处理成txt格式,其中语料是已经经过分帧的数据,采用mfcc经过一阶、二阶差分所得,下面详细讲解数据的处理过程。

  第一步我们得知道数据的内容,由一张表来展示:

下面附上处理数据的脚本:

(1)得到训练标签的脚本程序,即是将训练集的标签提取的程序:

#-*- coding:utf-8 -*-
#author : zhangwei

import numpy as np
if __name__ == '__main__':
    filename = '/home/zhangwei/mfcc/all_ali.txt'
    res = np.zeros([0])
    with open(filename, 'r') as file_to_read:
        while True:
            lines = file_to_read.readline()
            if not lines:
                break
                pass
            tmp = lines.split(';')
            for i in tmp:
                #np.append(res, np.ones(i[2]) * i[1])
                if len(l) > 2:
                    res = np.append(res)
                    # print res
                    pass
                else:
                    res = np.append(res)
                    print res
                    pass
        np.savetxt('/home/zhangwei/mfcc/res',res)

  亲测有效,提取出标签如下所示,只提取前20行:


  由于分帧的前几十帧大多是sil,故都为1号音素的序号,与之前的特征对应;

扫描二维码关注公众号,回复: 1832135 查看本文章

  第二步便是把特征里面的说话人id、句子的id以及 [] 删除,采用脚本如下所示:

  sed -i ‘/[ABCD]/d’name

  sed -i  's/]//' name

  主要就是采用这两行脚本进行操作,亲测有效。

  目前,在train_label中有一个问题,由于没有太大的人力,只能是采用kaldi中训练的hmm模型将标签与特征进行对齐,但是经过仔细观察发现,在对齐之后的数据少了一句话,问吴本谷师兄,他说在进行对齐的时候,由于语料等原因,一两句不对齐是很正常的事情,但是要找出那一句话没有对齐,这是一个很大的问题。

  提取出前面的数据花费了将近1个星期,感谢各位好友的指导,继续努力搬砖




猜你喜欢

转载自blog.csdn.net/xwei1226/article/details/80633365