为了在iOS下创建自己的语言模型,需要编译SRILM的iOS静态库。
第一步:下载SRILM压缩包
- 下载链接为http://www.speech.sri.com/projects/srilm/download.html ,当前版本为1.7.2;
第二步:解压SRILM压缩包
- 假设安装目录为:/Users/Shared/srilm-1.7.2,将下载的压缩包解压至/Users/Shared/srilm-1.7.2目录下;
第三步:修改Makefile文件
-
打开srilm-1.7.2目录下的Makefile文件;
-
找到此行:
# SRILM = /home/speech/stolcke/project/srilm/devel
另起一行输入S
RILM = /Users/Shared/srilm-1.7.2
-
找到此行:
MACHINE_TYPE := $(shell $(SRILM)/sbin/machine-type),在其前加#注释掉
另起一行输入MACHINE_TYPE := 你电脑上安装的XCODE版本,比如iPhoneOS-11.0-arm64
注:此行告诉Makefile之后要使用/Users/Shared/srilm-1.7.2/common /Makefile.machine.iPhoneOS-11.0-arm64文件中的配置。
第四步:运行 xcrun --sdk iphoneos --show-sdk-path 获取iOS的sdk路径。然后进入/Users/Shared/srilm-1.7.2/common目录。里面只有Makefile.machine.iPhoneOS-9.1-arm64,Makefile.machine.iPhoneOS-9.1-armv7,复制这两个文件,重新命名为Makefile.machine.iPhoneOS-11.0-arm64, Makefile.machine.iPhoneOS-11.0-armv7. 然后打开文件,修改里面的版本号。
第五步:打开Makefile.core.iOS文件,在XCODE_DEVELOPER ?= /Applicaiton/Xcode.app/Contents/Developer这行前面加#,另起一行,输入XCODE_DEVELOPER = 前面已经获得的SDK路径的前一部分。
第六步:回到srilm根目录下,运行make World开始编译。编译结束后,在lib目录下就会有一个iPhoneOS-11.0-arm64的子目录,里面就有编译好的静态库文件。然后回到第三步,将MACHINE_TYPE修改为iPhoneOS-11.0-armv7,再重新编译,再lib目录下会生成新的iPhoneOS-11.0-armv7子目录。
第七步:利用lipo命令合并arm64和armv7的库文件,最后获得iOS下的SRILM静态库文件。