MyException - 我的异常网
当前位置:我的异常网» 研发管理 » HTK数据预备工具-HCopy

HTK数据预备工具-HCopy

www.MyException.Cn  网友分享于:2013-02-20  浏览:40次
HTK数据准备工具-HCopy

HTK的数据准备工具主要是针对语言文件和语音标签数据文件的处理,前面介绍了处理语音标签数据文件的处理工具,如下:

  1. HLEd。根据发音词典,自动对标签文件进行标记。该工具还可以对标签文件进行编辑处理,其实主要是对标签文件进行编辑,按照发音词典进行扩展也是编辑的一种,另外可以对发音词典进行替换、删除、写入等编辑操作。参见:数据准备工具-HLEd
  2. HLStats。这个工具主要是对标签文件根据发音词典展开之后的标记文件和HMM模型列表进行统计。参见:数据准备工具-HLStats
上面的两个工具都是对标签文件进行处理,包括自动标记及统计等功能,当然,需要发音词典作为输入,其实也是根据发音词典而统计的单音列表。

本文讨论对音频数据文件的处理工具:HCopy。这个工具是将原始的音频数据文件(如WAV)转换成HTK格式的参数文件。

一,使用语法
HCopy [options] sa1 [+sa2+...] ta [sb1 + [+sb2+...] tb ...]
命令行解释:将输入的源文件sa1,sa2等合并起来,然后输出至目标文件ta中。sb1及sb2等源文件连接起来,然后输出至目标文件tb中,后面还可以再有这样的输入和输出格式。如
HCopy srcA.wav + srcB.wav targetAB.wav srcC.wav targetC.wav
这个命令会创建两个新的文件,如果有很文件需要处理,这肯定很麻烦,可以把所有需要转换的文件写入一个文本文件,然后把这个文本文件作为-S的参数。
不是所有的文件都可以自由转换的,这个工具支持的输入和输出转换格式如下图所示:

一般用的比较多的是从WAVEFORM转换至MFCC。

二,命令选项
命令的一些常用选项如下:
  1. -C configfile。指定工具命令的配置文件,这个文件可以指定源文件类型以及目标文件的类型,还可以源文件和目标文件的一些基本头属性。
  2. -s f 。从源文件开始复制至目标文件的时间,默认是0.0。这个的意思是说,从源文件的什么时间开始复制至目标文件,如源文件的前3秒钟,我们不需要。就可以用到这个选项了。如我们需要指定从0.1秒开始,就需要指定-s 1E6,因为是以100ns为单位的。
  3. -e f。和上面的选项对应,表示从源文件复制的结束时间,就是从开始复制到多少时间之后,就结束复制。
  4. -i mlf。输出标签标记文件,如果输入文件是HTK的标记文件的话。
  5. -l s。指定标签标记文件的输出目录,默认是当前目录。
  6. -F fmt,指定源文件数据格式。
  7. -G fmt,指定标签标记文件格式。
  8. -I mlf。加载标签标记文件。

三,实际例子
假如现在有sample01.wav sample02.wav等10个音频文件,我需要把这些文件全部转换成Mel倒谱系数MFCC特征文件,操作如下:
 完成脚本文本,如下。script.scp
./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
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系数的个数。
然后执行命令,结果如下
[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格式文件,完成数据源的复制,也是数据训练的准备。

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有