在linux安装p2fa

    可以在官方的文档中看到,安装这个p2fa需要两个工具包,一个是htk,一个是sox,而p2fa的安装只需要在将这两个工具包装好之后,将官方的安装包下载并解压,就可以直接使用

    这其中比较复杂的就是htk的安装,需要注意的是,htk目前官方只提供3.4.1和3.5两个版本,但是p2fa只能在3.4版本的基础上运行,所以需要获取3.4版本的资源,这个资源可以在这里找到。下载HTK-3.4.tar.gzHTK-samples-3.4.zip就可以了。

接下来是htk3.4的安装,具体步骤可以参照这两个博客:linux下HTK安装说明以及HTK在Ubuntu下的安装步骤。需要注意,在安装X11包的时候要安装32位版本的,所以只安装第一个链接的三个库。./configure中设置的是最后要安装的bin文件夹的位置,最终模型会使用的HCopy,HList等工具都会安装在这里,比如设置为./configure --prefix=/home/user/p2fa/htk,然后执行make all

    但是在这些博客中没有提到的是在安装过程中,执行完make all之后可能会出现一个报错

Makefile.in:77: *** missing separator (did you mean TAB instead of 8 spaces?).  Stop.

    这是因为在./htk/HLMTools/Makefile中的第77行,他将tab键错输为了8个空格,使用vim应该会看到这个错误提示,修改之后再次运行make all。然后执行make install,然后就会在bin在configure设置的路径下生成一个bin文件夹,在这个文件夹下可以看到前面提到的HCopy,HList等工具。

    还需要注意的是环境变量的配置那一步,直接export仅在本次登录中有效,如果需要永久修改该环境变量,需要修改/etc/profile这个文件,在末尾加上

export PATH=$PATH:/home/user/p2fa/htk/bin一行,然后执行source Makefile,但是在我的后续的测试中,仍然存在报错

Calling HInit for HMM S
sh: HInit: not found


Calling HInit for HMM C
sh: HInit: not found


Calling HInit for HMM V
sh: HInit: not found


Calling HInit for HMM N
sh: HInit: not found


Calling HInit for HMM L
sh: HInit: not found
Source Directory Empty hmms/hmm.0

在一个外网论坛上看到了这个问题的解决方案:环境变量还需要将刚刚那个HTKTools加进去

export PATH=$PATH:/home/user/p2fa/htk/HTKTools 这样就没问题了。

    在测试的时候,如果使用zip格式的压缩测试文件,即使已经正确安装了HTK,似乎仍然不能正确显示测试结果,所以最好用tar.gz压缩的测试文件,同时3.4版本的HTK也能正确运行3.4.1版本的测试用例。

    当然如果你使用的是3.4.1版本的htk,后续在测试的wav音频如果有语音间隔(就是单词和单词之间的间隔),仍然不能正确执行,所以一定要安装3.4版本的htk

    sox的安装十分方便,直接pip install sox即可使用

    最后是p2fa的安装,在他们的官网可以找到这个工具的安装包,这个软件在他们官方的说明中可以看到仅测试了python2.5与python2.6,但是经过我测试,python2.7下也能正常运行,当然如果你需要安装python3版本下的p2fa,可以在这里找到源代码,同样的,这个版本的p2fa也需要3.4版本的htk。下载解压之后就可以运行这个软件了(需要将默认的文件夹名字Penn Phonetics forced aligner改为Penn,因为好像他的代码里面使用的文件夹名是Penn,没有后面那一长串),然后直接运行python align.py ./test/BREY00538.wav ./test/BREY00538.txt ./test/My.TextGrid即可运行,txt文件是这段语音的文字内容,TextGrid是划分的输出结果,运行结果既有将每个音位进行分割后的时间节点,也有将每个单词进行分割后的时间节点,从dict文件中可以看到,他其实是将每个单词的音位进行了标注(总共有12w个单词)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值