HTK学习笔记 (2)

本文介绍了如何使用轻量级开发工具跨平台调试HTK工具的过程。推荐使用CodeLite或CDT作为IDE,并选用MinGW作为编译器。此外,还详细记录了解决在Windows和OSX环境下遇到的具体问题。

2014-01-21


如果我们要修改或者说调试HTK工具,那就要自己建工程文件了。

偷懒的话可以用Microsoft Visual Studio或者Xcode,但我想找一个跨平台的,轻量级的开发工具,尝试了几个:

Code::Blocks 功能很多,但在OSX下界面比较凌乱,菜单文字大小都不一。优点是配置比较齐全,默认就有Cygwin和MinGW的设置。

CodeLite 界面算整齐,不过默认就只有MinGW的设置,Cygwin的设置还要自己添加。Windows下compiler问题较多,不知道为何会执行一个makedir的命令,而这个命令是找不到的。OSX下用自带的GNU GCC Compiler就很好。

NetBeans 居然一定要用Java7,OSX下只能有一个版本的Java,装了Java7后,Chrome不支持了,因为Java7是64位的...果断放弃。


最后还是用CDT,因为eclipse用得比较熟了,快捷键也不用重新记了,而且ADT也是eclipse,过渡比较好。


对于编译器的选择,个人建议用MinGW,Windows下的CodeBlocks和CodeLite都直接把MinGW叫GNU GCC Compiler。


选好IDE和compiler后,就建一个GNU GCC的C项目,然后从HTK里面copy以下文件到项目里:

esig_asc.c

esig_edr.c

esig_nat.c

esignal.c

esignal.h

HAdapt.c

HAdapt.h

HArc.c

HArc.h

HAudio.c

HAudio.h

HCopy.c

HDict.c

HDict.h

HExactMPE.c

HExactMPE.h

HFB.c

HFB.h

HFBLat.c

HFBLat.h

HLabel.c

HLabel.h

HLat.c

HLat.h

HLM.c

HLM.h

HMap.c

HMap.h

HMath.c

HMath.h

HMem.c

HMem.h

HModel.c

HModel.h

HNet.c

HNet.h

HParm.c

HParm.h

HRec.c

HRec.h

HShell.c

HShell.h

HSigP.c

HSigP.h

HTrain.c

HTrain.h

HUtil.c

HUtil.h

HVQ.c

HVQ.h

HWave.c

HWave.h


在Windows下找不到一些头文件,可以在opensource.apple.com里面找到,你没看错,是苹果的开源项目!下载了放在compiler的include文件夹下面。

include\i386\_types.h

include\machine

include\machine\_types.h

include\ppc

include\ppc\_types.h

include\sys

include\sys\_types.h

include\sys\cdefs.h

include\sys\filio.h

include\sys\ioccom.h


最后还有一个编译错误,就是esignal.c里一个变量ARCH没有定义,我就自己加了一个。

Windows:

char *ARCH="win32";

OSX:

char *ARCH="linux";


这样就能成功编译了,编译出来的HCopy可执行文件(Windows7和OSX Mavericks下都成功编译),和之前用nmake编译的用法是一样的,用同样的文件测试,结果基本一致,只是有几个数字的小数点后2位不同,像是4舍5入的误差。


不过当要debug的时候,OSX Mavericks就悲剧了,gdb被apple去掉了,lldb取而代之。但eclipse对lldb支持不太好,只能求助网络,硬是把gdb装上了,最后OSX下也能debug了。Windows下问题就少很多,只要装compiler的时候包括gdb就没问题了。


下载前可以先看下教程 https://pan.quark.cn/s/a426667488ae 标题“仿淘宝jquery图片左右切换带数字”揭示了这是一个关于运用jQuery技术完成的图片轮播机制,其特色在于具备淘宝在线平台普遍存在的图片切换表现,并且在整个切换环节中会展示当前图片的序列号。 此类功能一般应用于电子商务平台的产品呈现环节,使用户可以便捷地查看多张商品的照片。 说明中的“NULL”表示未提供进一步的信息,但我们可以借助标题来揣摩若干核心的技术要点。 在构建此类功能时,开发者通常会借助以下技术手段:1. **jQuery库**:jQuery是一个应用广泛的JavaScript框架,它简化了HTML文档的遍历、事件管理、动画效果以及Ajax通信。 在此项目中,jQuery将负责处理用户的点击动作(实现左右切换),并且制造流畅的过渡效果。 2. **图片轮播扩展工具**:开发者或许会采用现成的jQuery扩展,例如Slick、Bootstrap Carousel或个性化的轮播函数,以达成图片切换的功能。 这些扩展能够辅助迅速构建功能完善的轮播模块。 3. **即时数字呈现**:展示当前图片的序列号,这需要通过JavaScript或jQuery来追踪并调整。 每当图片切换时,相应的数字也会同步更新。 4. **CSS美化**:为了达成淘宝图片切换的视觉效果,可能需要设计特定的CSS样式,涵盖图片的排列方式、过渡效果、点状指示器等。 CSS3的动画和过渡特性(如`transition`和`animation`)在此过程中扮演关键角色。 5. **事件监测**:运用jQuery的`.on()`方法来监测用户的操作,比如点击左右控制按钮或自动按时间间隔切换。 根据用户的交互,触发相应的函数来执行...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值