OpenFST 示例 & Mac 编译安装 - 需要 Python >= 2.1.0 的错误消息处理

OpenFST 示例 & Mac 编译安装 - 需要 Python >= 2.1.0 的错误消息处理,第1张

OpenFST 示例 & Mac 编译安装 - 需要 Python >= 2.1.0 的错误消息处理

Openfst 是一个有限状态机转换器类库。

Openfst 广泛应用于语音识别,语音合成,机器翻译,手写文字识别,模式识别,字符串处理,机器学习,信息提取和检索等等领域。 在语音识别中, 语言模型文法、发音词典、上下文相关声学单元、HMM都可以用FST来表示。

下载 openfst, 编译出错

wget http://www.openfst.org/twiki/pub/FST/FstDownload/openfst-1.6.7.tar.gz
tar xzvf openfst-1.6.7.tar.gz
cd openfst-1.6.7/
./configure --enable-python --enable-far

直接报错, 提示如下:

openfst This version of the AC_PYTHON_DEVEL macro doesn't work properly with versions of Python before 2.1.0. You may need to re-run configure.

改用 openfts 1.8.1 的版本, 编译通过, 我的 Python 环境是 3.9.7。

wget https://www.openfst.org/twiki/pub/FST/FstDownload/openfst-1.8.1.tar.gz
tar zxvf openfst-1.8.1.tar.gz
cd openfst-1.8.1
./configure --enable-python --enable-far
make
sudo make install

# copy package to my virtual python environment:
cp /usr/local/lib/python3.9/site-packages/pywrapfst.* ~/miniforge3/envs/mlp/lib/python3.9/site-packages/

Python 示例,验证 openfst 以及 python 扩展是否安装成功:

import pywrapfst as fst

s = t.add_state()
t.add_arc(s, fst.Arc(97, 97, 1, 2))

f = fst.VectorFst()
one = fst.Weight.one(f.weight_type())
f.reserve_states(3)  # Optional.

s = f.add_state()
f.set_start(s)

n = f.add_state()
f.reserve_arcs(s, 1)  # Optional.

f.add_arc(s, fst.Arc(98, 98, one, n))

s = n
n = f.add_state()
f.add_arc(s, fst.Arc(97, 97, one, n))

s = n
n = f.add_state()
f.add_arc(s, fst.Arc(97, 97, one, n))

f.set_final(n, one)

f.verify()  # Checks FST's sanity
print(f)

# FSTs can also be written to a GraphViz file using the draw instance method.
f.draw("f.gv")

# FSTs can be written to disk using the write instance method.
f.write("f.fst")

参考:

https://gist.github.com/0xnurl/6f97eb39409ea48db31fe315fd1e208f

https://www.openfst.org/twiki/bin/view/FST/PythonExtension

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5595378.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存