OpenFST、WFST 小记

news2024/11/27 17:43:39

文章目录

    • 关于 OpenFST
      • 安装 openfst
    • 关于 WFST
      • 编译 WFST


关于 OpenFST

  • 官网:https://www.openfst.org/twiki/bin/view/FST/WebHome
  • 快速入门文档:https://www.openfst.org/twiki/bin/view/FST/FstQuickTour
  • 下载:https://www.openfst.org/twiki/bin/view/FST/FstDownload

FST : Finite State Transducer,有限状态机
OpenFST 就是 FST 的一个实现,遵循 Apache 协议的开源软件。


安装 openfst

cd openfst-1.7.9/
./configure --enable-python --enable-far

make 
sudo make install

关于 WFST

WFST : Weighted Finite-State Transducer,加权有限状态转录机。
Kaldi 中 WFST 的实现,基于OpenFST。

  • WFST 由一组状态(State) 和状态间的有向跳转(Transition)构成
  • 每个跳转上保存了三种信息:输入标签(input label)、输出标签(ouput label)和权重(weight),以 input_label:output_label/weigt 格式记录
  • WFST 具备一个起始状态(initial state,用粗圈表示) 和至少一个终止状态(final state,用双圈表示);
  • 每个终止状态可以有一个终止权重(final weight)
  • WFST 还需定义两个二元操作 + 和 x,这两个操作与其权重集合应构成一个半环。
  • ϵ \epsilon ϵ 表示空标签,也常被写作 <eps>
  • WFST 把一个序列转录为另一个序列
    在这里插入图片描述

  • fst.txt 状态文件
    除了最后一行,每行由5个元素构成:
    跳转的源状态,目标状态,输入标签,输出标签,权重
    最后一行表示 终止状态,终止权重为 1
  • symbols.txt 标签文本到数字的映射表
    映射表中的 0 是为空标签(即: ϵ \epsilon ϵ<spe>)保留的。其他标签从1开始分配数字作为 ID。

编译 WFST

可以使用 openfst 的编译工具将 WFST 编译成二进制文件:

fstcompile --isymbols=symbols.txt --osymbols=symbols.txt fst.txt  output.fst
  • 可以使用 fstinfo 查看信息
  • 使用 fsprint 打印成文本形式
  • 使用 fstdraw 输出成 graphviz 定义的图格式

参考:

  • 李理:《WFST介绍》
    http://fancyerii.github.io/wfst/wfst/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/331734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux系统安装jdk+tomcat+mysql

连接linux Windows安装FinalShell免费版,连接linux服务器 Mac OS连接步骤如下&#xff1a; 打开终端&#xff0c;输入ssh 服务器用户名ip -p 端口号&#xff08;如&#xff1a;ssh root000.000.000.00 -p 22&#xff09;到这会让你输入yes或者no来确认是否连接&#xff0c;输…

APISpace 的 ChatGPT 它来了 一分钟快速接入没烦恼

如此火爆的 ChatGPT 大家肯定都已经知道了&#xff0c;我就不多说了。但是呢&#xff0c; OpenAI 的 ChatGPT 官网注册麻烦&#xff0c;接入繁琐&#xff0c;且需要海外信用卡才能支付&#xff0c;这就让广大的国内开发者头疼了。 于是&#xff0c;为了方便广大国内开发者体验…

加入bing体验chatGPT大军中来吧

1 第一步&#xff1a;加入候选名单 1、首先需要加入候选名单 https://www.microsoft.com/zh-cn/edge?formMA13FJ 2、下载最新的Edge浏览器、androd、iOS都有试用版本&#xff08;可以看到iOS加护当前已满&#xff09; 这里我下载的是dev版本&#xff0c;Canary版本由于是…

王道操作系统笔记(七)——— 内存管理的基本原理和要求

文章目录一、内存的概念和作用二、内存管理的概念三、进程运行的基本原理和要求3.1 程序执行过程3.2 逻辑地址和物理地址3.3 程序的链接3.4 程序的装入3.5 内存保护四、覆盖与交换4.1 覆盖技术4.2 交换技术一、内存的概念和作用 主存储器&#xff0c;简称主存&#xff0c;又称内…

【Spark分布式内存计算框架——Spark Core】4. RDD函数(中)Transformation函数、Action函数

3.2 Transformation函数 在Spark中Transformation操作表示将一个RDD通过一系列操作变为另一个RDD的过程&#xff0c;这个操作可能是简单的加减操作&#xff0c;也可能是某个函数或某一系列函数。值得注意的是Transformation操作并不会触发真正的计算&#xff0c;只会建立RDD间…

int、uint类型的比较与加减

uint与int的比较 int与uint比较时会把int转换成uint&#xff0c;一个负的int转换成uint会溢出。所以uint与int比较大小时容易得到错误的结果&#xff0c;如&#xff1a; #include <iostream> using namespace std;int main(int, char**) {cout << "compare …

IC真题 —— 刷题记录(1)

引言 记录一些 我自己刷的 IC行业招聘真题&#xff0c;不是每题记录&#xff0c;只记录一些值得记录的&#xff0c;写下自己的看法。主要是一些数字IC行业题目&#xff0c;偏前端。 1、有一个逐次逼近型 8位A/D 转换器&#xff0c;若时钟频率为250KHz&#xff0c;完成一次转换…

2023备战金三银四,自动化软件测试面试宝典合集

1.软件测试的定义是什么&#xff1f; 参考答案&#xff1a; 用手工或者自动化的方式执行测试用例的一个过程 2.软件测试的对象包括哪些&#xff1f; 参考答案&#xff1a; 源程序、目标程序、数据和相关文档 3.试结合软件开发流程模型&#xff0c;描述对应不同的阶段测试需要…

Linux系统

Linux系统 Linux操作系统&#xff1a;Windows、Mac Linux一切皆文件&#xff1a;文件就 读、写、&#xff08;权限&#xff09; Linux——》Redis——》Docker 学习方式&#xff1a; 认识Linux 基本的命令&#xff08;重点&#xff1a; git 讲了一些基本的命令&#xff0…

Windows上实现 IOS 自动化测试

本文介绍如何使用tideviceWDAairtest/facebook-wda实现在Windows上进行IOS APP自动化测试 环境准备 Windows Python环境 Python 3.6 WebDriverAgent安装 下载最新的项目到Mac&#xff1a;https://github.com/appium/WebDriverAgent $ git clone https://github.com/appiu…

求你了,不要再在对外接口中使用枚举类型了!

最近&#xff0c;我们的线上环境出现了一个问题&#xff0c;线上代码在执行过程中抛出了一个IllegalArgumentException&#xff0c;分析堆栈后&#xff0c;发现最根本的的异常是以下内容&#xff1a; java.lang.IllegalArgumentException: No enum constant com.a.b.f.m.a.c.A…

GEE遥感云大数据在林业中的应用

近年来遥感技术得到了突飞猛进的发展&#xff0c;航天、航空、临近空间等多遥感平台不断增加&#xff0c;数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量猛增&#xff0c;遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇&#xf…

STM32开发(8)----CubeMX配置串口通讯(中断方式和DMA方式)

CubeMX配置串口通讯&#xff08;中断方式和DMA方式&#xff09;前言一、中断方式1.CubeMX配置2.代码实现3.实验结果二、DMA方式1.CubeMX配置2.代码实现3.实验结果总结前言 本章继续介绍使用STM32CubeMX对串口进行配置的方法&#xff0c;串口通讯有三种方式&#xff1a;轮询&am…

看完这篇 教你玩转渗透测试靶机vulnhub——Source:1

Vulnhub靶机Source:1渗透测试详解Vulnhub靶机介绍&#xff1a;Vulnhub靶机下载&#xff1a;Vulnhub靶机安装&#xff1a;Vulnhub靶机漏洞详解&#xff1a;①&#xff1a;信息收集&#xff1a;②&#xff1a;远程命令执行漏洞 CVE-2019-15017&#xff1a;③&#xff1a;获取FLAG…

MySQL篇02-三大范式,多表查询

数据入库时,由于数据设计不合理&#xff0c;会存在数据重复、更新插入异常等情况, 故数据库中表的设计遵循的设计规范&#xff1a;三大范式1.第一范式(1NF)要求数据库的每一列都是不可分割的原子数据项&#xff0c;即原子性。强调的是列的原子性&#xff0c;即数据库中每一列的…

TOUGH系列软件建模实践方法及在地下水、CO2地质封存、水文地球化学、地热等多相多组分系统多过程耦合

查看原文>>> https://mp.weixin.qq.com/s?__bizMzAxNzcxMzc5MQ&mid2247578057&idx7&sn75f8d2c1c6edb28af76a8db4bb773de3&chksm9be2aed9ac9527cf0081082cdcf781e6c37f9f3ba383332ed1116abcbee0f05c0593187e964d&token2070450548&langzh_CN#r…

PostgreSQL查询引擎——General Expressions Grammar之restricted expression

General expressions语法规则定义在src/backend/parser/gram.y文件中&#xff0c;其是表达式语法的核心。有两种表达式类型&#xff1a;a_expr是不受限制的类型&#xff0c;b_expr是必须在某些地方使用的子集&#xff0c;以避免移位/减少冲突。例如&#xff0c;我们不能将BETWE…

TOOM舆情监测方案关键词设置,网络舆情监测方案有哪些举措?

网络舆情监测是通过在线社交媒体平台和其他网络渠道收集、分析和评估公众对某一话题的看法和反应的过程。目的是了解舆论趋势&#xff0c;提高社会影响力&#xff0c;帮助公司或组织了解公众对其产品或服务的评价&#xff0c;TOOM舆情监测方案关键词设置&#xff0c;网络舆情监…

docker快速部署xxjob2.3.0-SpringBoot快速集成示例

xxjob 2.3.0 部署 参考资料 docker安装xxl-job-admin步骤_JEECG低代码平台的技术博客_51CTO博客 run前准备 1 新建数据库 xxl_job 2 建表sql(可以直接使) https://github.com/xuxueli/xxl-job/blob/master/doc/db/tables_xxl_job.sql建库sql # # XXL-JOB v2.4.0-SNAPSHOT…

编译原理—栈式存储分配、有参函数的活动记录、参数传递与x86汇编

编译原理—参数传递与x86汇编-1.栈式存储分配0.有参函数的活动记录1. swap1(int p , int q)2. swap2(int *p,int *q)3. swap3(int *p, int *q)4. swap4(int &p, int &q)-1.栈式存储分配 0.有参函数的活动记录 参数分别是整型、指针、引用时的参数传递及其汇编代码 1. …