当前位置:编程学习 > 网站相关 >>

HTK数据准备工具-HCopy

HTK的数据准备工具主要是针对语言文件和语音标签数据文件的处理,前面介绍了处理语音标签数据文件的处理工具,如下:
HLEd。根据发音词典,自动对标签文件进行标记。该工具还可以对标签文件进行编辑处理,其实主要是对标签文件进行编辑,按照发音词典进行扩展也是编辑的一种,另外可以对发音词典进行替换、删除、写入等编辑操作。参见:数据准备工具-HLEd
HLStats。这个工具主要是对标签文件根据发音词典展开之后的标记文件和HMM模型列表进行统计。参见:数据准备工具-HLStats
上面的两个工具都是对标签文件进行处理,包括自动标记及统计等功能,当然,需要发音词典作为输入,其实也是根据发音词典而统计的单音列表。
 
本文讨论对音频数据文件的处理工具:HCopy。这个工具是将原始的音频数据文件(如WAV)转换成HTK格式的参数文件。
 
一,使用语法
[html]
HCopy [options] sa1 [+sa2+...] ta [sb1 + [+sb2+...] tb ...]  
命令行解释:将输入的源文件sa1,sa2等合并起来,然后输出至目标文件ta中。sb1及sb2等源文件连接起来,然后输出至目标文件tb中,后面还可以再有这样的输入和输出格式。如
[html]    www.zzzyk.com
HCopy srcA.wav + srcB.wav targetAB.wav srcC.wav targetC.wav  
这个命令会创建两个新的文件,如果有很文件需要处理,这肯定很麻烦,可以把所有需要转换的文件写入一个文本文件,然后把这个文本文件作为-S的参数。
不是所有的文件都可以自由转换的,这个工具支持的输入和输出转换格式如下图所示:
一般用的比较多的是从WAVEFORM转换至MFCC。
 
二,命令选项
命令的一些常用选项如下:
-C configfile。指定工具命令的配置文件,这个文件可以指定源文件类型以及目标文件的类型,还可以源文件和目标文件的一些基本头属性。
-s f 。从源文件开始复制至目标文件的时间,默认是0.0。这个的意思是说,从源文件的什么时间开始复制至目标文件,如源文件的前3秒钟,我们不需要。就可以用到这个选项了。如我们需要指定从0.1秒开始,就需要指定-s 1E6,因为是以100ns为单位的。
-e f。和上面的选项对应,表示从源文件复制的结束时间,就是从开始复制到多少时间之后,就结束复制。
-i mlf。输出标签标记文件,如果输入文件是HTK的标记文件的话。
-l s。指定标签标记文件的输出目录,默认是当前目录。
-F fmt,指定源文件数据格式。
-G fmt,指定标签标记文件格式。
-I mlf。加载标签标记文件。
 
三,实际例子
假如现在有sample01.wav sample02.wav等10个音频文件,我需要把这些文件全部转换成Mel倒谱系数MFCC特征文件,操作如下:
 完成脚本文本,如下。script.scp
[html]
./wav/sample01.wav ./mfcc/sample01.mfcc  
./wav/sample02.wav ./mfcc/sample02.mfcc  
./wav/sample03.wav ./mfcc/sample03.mfcc  
./wav/sample04.wav ./mfcc/sample04.mfcc  
./wav/sample05.wav ./mfcc/sample05.mfcc  
./wav/sample06.wav ./mfcc/sample06.mfcc  
./wav/sample07.wav ./mfcc/sample07.mfcc  
./wav/sample08.wav ./mfcc/sample08.mfcc  
./wav/sample09.wav ./mfcc/sample09.mfcc  
./wav/sample10.wav ./mfcc/sample10.mfcc  
然后配置文件config
[html] 
SOURCEKIND     = WAVEFORM  
SOURCEFORMAT   = WAV  
SOURCERATE     = 1250  
TARGETKIND     = MFCC_E_D_A_Z  
TARGETRATE     = 160000.0  
WINDOWSIZE     = 320000.0  
NUMCHANS       = 24  
NUMCEPS        = 12  
这个配置文件表示输入类型是WAVEFORM,源文件格式是WAV,1250表示采样频率是8KHZ。输出类型为MFCC。160000表示Frame period是16ms,320000表示一个时间帧的长度是32ms。12表示MFCC系数的个数。
然后执行命令,结果如下
[html] 
[root@localhost data]# HCopy -A -D -T 1 -C ./config -S ./script.scp  
HCopy -A -D -T 1 -C ./config -S ./script.scp   
  
HTK Configuration Parameters[8]  
  Module/Tool     Parameter                  Value  
#                 NUMCEPS                       12  
#                 NUMCHANS                      24  
#                 WINDOWSIZE         320000.000000  
#                 TARGETRATE         160000.000000  
#                 TARGETKIND          MFCC_E_D_A_Z  
#                 SOURCERATE                  1250  
#                 SOURCEFORMAT                 WAV  
#                 SOURCEKIND              WAVEFORM  
  
./wav/sample01.wav -> ./mfcc/sample01.mfcc   
./wav/sample02.wav -> ./mfcc/sample02.mfcc   
./wav/sample03.wav -> ./mfcc/sample03.mfcc   
./wav/sample04.wav -> ./mfcc/sample04.mfcc   
./wav/sample05.wav -> ./mfcc/sample05.mfcc   
./wav/sample06.wav -> ./mfcc/sample06.mfcc   
./wav/sample07.wav -> ./mfcc/sample07.mfcc   
./wav/sample08.wav -> ./mfcc/sample08.mfcc   
./wav/sample09.wav -> ./mfcc/sample09.mfcc   
./wav/sample10.wav -> ./mfcc/sample10.mfcc    
  
HTK Configuration Parameters[8]  
  Module/Tool     Parameter                  Value  
                  NUMCEPS                       12  
                  NUMCHANS                      24  
                  WINDOWSIZE         320000.000000  
                  TARGETRATE         160000.000000  
                  TARGETKIND          MFCC_E_D_A_Z  
                  SOURCERATE                  1250  
                  SOURCEFORMAT                 WAV  
                  SOURCEKIND              WAVEFORM  
 
命令执行完成后,就会生成10个mfcc格式文件,完成数据源的复制,也是数据训练的准备。
补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,