精华内容
下载资源
问答
  • 主要是看系统传递函数的积分项1s\frac{1}{s}s1​的次数, 若为0, 则为0型系统, 若为I, 则为I型系统, 若为II, 则为II型系统. 0型系统阶跃信号响应, 并加入单位反馈后的稳态误差为阶跃信号参考值的11+K\frac{1}{1+K}1...

    判断0型系统, I型系统, II型系统

    可参考百度百科, 或百度知道

    主要是看系统传递函数的积分项 1 s \frac{1}{s} s1的次数, 若为0, 则为0型系统, 若为I, 则为I型系统, 若为II, 则为II型系统.

    • 0型系统阶跃信号响应, 并加入单位反馈后的稳态误差为阶跃信号参考值的 1 1 + K \frac{1}{1+K} 1+K1

      其中: K为开环增益, 模型的增益也应该考虑进来, 应该将 ( a s + b ) (as+b) (as+b)中的常数项化为1. 如果模型的传递函数为 1 m s + μ \frac{1}{ms+\mu} ms+μ1, 则该模型的开环增益为 1 μ \frac{1}{\mu} μ1

      • 典型例子:

        汽车的定速巡航控制. 假设汽车要加速到某一定值, 汽车的正向牵引力为 F ( t ) F(t) F(t), 行驶过程中受到的阻力随车速的增大而增大, 阻力为 f ( t ) = μ v ( t ) f(t) = \mu v(t) f(t)=μv(t) , 假设控制器选用PID控制, 且仅用比例环节, 比例环节增益为1, 先不加入积分环节和微分环节. 由牛顿第二定律可得:

        F ( t ) = m v ( t ) ˙ + μ v ( t ) F(t) = m \dot{v(t)} + \mu v(t) F(t)=mv(t)˙+μv(t)

        等式两边同时拉氏变换可得

        F s = m s V s + μ V s F_s = msV_s + \mu V_s Fs=msVs+μVs

        得到模型传递函数为

        G ( s ) = V s F s = 1 m s + μ G(s) = \frac{V_s}{F_s} = \frac{1}{ms + \mu} G(s)=FsVs=ms+μ1

        判断该系统为0型系统, 若设定定速巡航值为100km/h, 并引入单位负反馈, 则最终由于稳态误差的原因, 车速只能达到.

        v = 100 − 100 ∗ 1 1 + 1 μ ( k m / h ) v = 100-100*\frac{1}{1+\frac{1}{\mu}}(km/h) v=1001001+μ11(km/h)

        若要消除稳态误差, 可以加入积分环节, 即PID调节的I项, 定速巡航用PID控制的话必须加积分环节, 否则肯定会出现稳态误差导致不能达到设定速度, 微分环节并不必要. 物理直觉: 达到设定速度的匀速行驶的时候, 必须通过事先的积分量的增益来克服风阻以及其他阻力, 否则就会逐渐减速.

    • I型系统与II型系统的阶跃信号响应的稳态误差为0

      若用阶跃信号作为参考值进行控制的话, 并不建议用PID的积分环节, 因为该系统对阶跃信号天生就不存在稳态误差, 若加入积分环节, 最后的积分量一定为0, 系统必定超调. 故该系统只需比例环节即可, 也可加入微分环节.

    展开全文
  • 典型分布式文件系统

    千次阅读 2011-06-10 23:35:00
    5.2 典型分布式文件系统分布式文件系统是一个比较活跃的研究方向,现国内外很多大学及研究机构还有公司等都已经或正着手开发自己的分布式文件系统以支持那些I/O密集应用,以此来发挥集群系统的优势。近年来,美国...

    5.2 典型分布式文件系统 分布式文件系统是一个比较活跃的研究方向,现国内外很多大学及研究机构还有公司等都已经或正着手开发自己的分布式文件系统以支持那些I/O密集型应用,以此来发挥集群系统的优势。近年来,美国、澳大利亚、日本等多个国家的大学已经研究出一些各具特色的分布式文件系统。一些计算机厂家也开发了自己的分布式文件系统,这些系统一般为专用文件系统,多为运行在特定的UNIX操作系统之上的工作站或并行计算机。而开源社区中也开发出了一批可运行于Linux操作系统之上的分布式文件系统,正是这些开源项目大大促进了分布式文件系统的发展与应用。现有的各种分布式文件系统各具特色,各有各的优势,各有各的侧重点。现已涌现出一批著名的分布式文件系统,如PVFS、GPFS、zFS、Google文件系统、Lustre等等,下面将着重介绍PVFS和Lustre这两种分布式文件系统。 5.2.1 并行虚拟文件系统(PVFS) PVFS [2](Parallel Virtual File System)项目是Clemson大学为了运行Linux集群而创建的一个开源项目,因此,PVFS也无需特别的硬件设备。普通的能运行Linux系统的PC机即可。PVFS现已被广泛地使用,很多分布式文件系统都是以PVFS为基础架构而设计实现的[3],比如国内的浪潮并行文件系统。目前的版本是第二版[4]。 正如一般的分布式文件系统一样,PVFS将数据存储到多个集群节点中,数据保存在这些节点的本地文件系统之中,然后多个客户端可以并行同时访问这些数据。PVFS有以下4个重要功能: 1)命名空间的一致性:为了易于安装和使用,PVFS提供了统一的文件命名空间。 2)文件的数据分散分布到不同的集群节点的本地磁盘之上:为高速访问集群系统中的文件数据,PVFS将文件数据进行条块化划分,分散存储到不同集群节点(称作I/O节点,如图5.4所示)的多个磁盘上,从而消除了单个I/O路径带来的瓶颈问题,且增加了客户端的并发带宽。 3)兼容现有系统上的文件访问方式:对已安装PVFS文件和目录能够继续使用现有Linux系统上的命令和工具,比如ls、cat、dd和rm等等,方便用户的使用。该功能由Linux核心的一个模块提供支持。 4)为应用程序提供高性能的数据访问方式:PVFS还提供了libpvfs库,以专有接口来访问PVFS文件系统。而libpvfs库直接和PVFS服务器相连接,不需要把消息传递给内核,这样提高了访问效率。 (点击查看大图)图 5.4 PVFS系统结构图 PVFS系统是一个3方架构:计算节点、管理节点和I/O节点,如图 5.4所示。其中,计算节点的功能运行应用程序,发起PVFS的I/O请求;管理节点的功能是管理元数据,接受并调度计算节点的I/O请求;I/O节点的功能是存放PVFS文件系统中的文件数据,所有文件数据的读写都要与I/O节点打交道。 PVFS系统中有且只有一个管理节点,一个或者多个计算节点和I/O节点。PVFS集群中任意一个集群节点既可以只提供3方架构中的其中一种功能,也可以提供同时提供2种或者3种功能。计算节点也同时用来做管理节点,也可以充当I/O节点的角色,反之亦然。对于小规模的集群系统,这种功能重叠的方法可以节省开支,充分利用资源;对于大规模集群系统,则一般不推荐使用这种功能重叠的方法,因为功能重叠会使机器过于繁忙,从而导致性能下降,一般是一个节点只充当一个角色。 PVFS还存在以下不足: 1)单一管理节点。上面说到过PVFS中只有一个管理节点来管理元数据,当集群系统达到一定的规模之后,管理节点将可能出现过度繁忙的情况,这时管理节点将成为系统瓶颈。 2)对数据的存储缺乏容错机制。当某一I/O节点无法工作时,上面的数据将出现不可用的情况。 3)静态配置。对PVFS的配置只能在启动前进行,一旦系统运行则不可再更改原先的配置

     

    5.2.2  Lustre

    Lustre[5]文件系统是一个基于对象存储的分布式文件系统,并且与PVFS一样,Lustre也是一个开源项目。Lustre项目与1999年在Carnegie Mellon University启动,现在已经发展成为应用最广泛的分布式文件系统。Lustre已经运行在当今世界上最快的集群系统里面,比如Bule Gene,Red Storm等计算机系统,用来进行核武器相关的模拟,以及分子动力学模拟等等非常关键的领域。

    Lustre的组织结构在其官方文档中有详细的介绍,如图 5.5所示,Lustre集群组件包含了MDS(元数据服务器)、MDT(元数据存储节点)、OSS(对象存储服务器)、OST(对象存储节点)、Client(客户端),以及连接这些组件的高速网络。

    1)元数据存储与管理。MDS负责管理元数据,提供一个全局的命名空间,Client可以通过MDS读取到保存于MDT之上的元数据。在Lustre中MDS可以有2个,采用了Active-Standby的容错机制,当其中一个MDS不能正常工作时,另外一个后备MDS可以启动服务。MDT只能有1个,不同MDS之间共享访问同一个MDT。

     
    (点击查看大图)图 5.5  Lustre集群架构

    2)文件数据存储与管理。OSS负载提供I/O服务,接受并服务来自网络的请求。通过OSS,可以访问到保存在OST上的文件数据。一个OSS对应2到8个OST,其存储空间可以高达8TB。OST上的文件数据是以分条的形式保存的,文件的分条可以在一个OSS之中,也可以保存在多个OSS中。Lustre的特色之一是其数据是基于对象的职能存储的,跟传统的基于块的存储方式有所不同。

    3)Lustre系统访问入口。Lustre通过Client端来访问系统,Client为挂载了Lustre文件系统的任意节点。Client提供了Linux下VFS(虚拟文件系统)与Lustre系统之间的接口,通过Client,用户可访问操作Lustre系统中的文件。

    Lustre集群中的各个节点通过高速的以太网或Quadrics Elan、Myrinet等多种网络连接起来。

     
    (点击查看大图)图 5.6  Lustre文件系统架构

    在Lustre官方手册中给出了Lustre文件系统的架构,如图 5.6所示。Lustre文件系统也是一个3方架构,包括了MDS、OSS和Client这3个模块。文件的打开(open)和关闭(close)、元数据以及并发访问控制都在Client和MDS之间进行;文件I/O操作以及文件锁在OSS和Client之间进行;文件备份,文件状态获取以及文件创建等在MDS和OSS之间进行。目前Lustre文件系统最多可以支持100000个Client,1000个OSS 和2个MDS节点。

    同PVFS类似,Lustre系统中既可以运行一个功能模块,也可以同时运行2个或3个功能模块,这取决于系统的规模。不过Lustre一般运行于高性能计算机系统之上,为了提高Lustre文件系统的性能,通常MDS、OSS和Client是分开运行在Lustre不同的节点之上的。

    实验与应用已经证明,Lustre文件系统的性能和可扩展性都不错。不仅如此,Lustre文件系统还拥有基于对象的智能化存储、安全的认证机制、比较完善的容错机制等优点,值得注意的是,Lustre还实现了部分文件锁。Lustre确保从不同Client端挂载的Lustre文件系统看到的都是一个单一的、同步的、一致的命名空间。由于Lustre部分锁机制的存在,多个Client端在同一时间点可以写同一文件的不同区域,其它Client则可以读取文件的其它区域。由于部分文件锁的存在,极大的提高了多用户对同一文件进行并发访问时系统的性能,对同一文件并发访问这在像数据库这种应用里是极为常见的。

    相对于PVFS,Lustre的可用性和扩展性以及性能上都有较大的提高。然而,Lustre需要特殊设备的支持,并且Lustre目前还没实现MDS的集群管理,虽然相比PVFS的单MDS,Lustre的双MDS在可用性上还是提高不少,但是当系统达到一定的规模之后,MDS还是很有可能成为Lustre系统中的瓶颈

     

    5.2.3  Panasas文件系统

    PanFS[6](Panasas File System)是Panasas公司用于管理自己的集群存储系统的分布式文件系统。Panasas公司于1999年由卡内基梅隆大学的Garth Gibson等人创建。PanFS使用并行和冗余的方式存取对象存储设备,使用基于文件的RAID冗余模式,分布式元数据管理、一致的客户cache管理、文件锁服务和内部的集群管理提供一个可扩展、容错和高性能的分布式文件系统。

    在Panasas系统中存储集群被分为存储结点和管理结点,它们之间的比例是10比1,并且这个比例也是允许改变的。存储结点采用对象存储的方式,客户端的I/O可以直接存取存储结点;管理结点管理整个存储集群,使用分布式文件系统语义,处理存储结点失效时的恢复,并通过NFS和CIFS输出Panasas文件系统视图。图 5.7给出了整体的结构。

     
    图 5.7  Panasas文件系统整体结构

    Panasas使用本地的OSDFS文件系统管理存储对象,每个对象使用两级的命名空间(partition ID/object ID)并通过iSCSI传输层传递OSD命令,它类似于SNIA的OSDv2标准。PanFS在存储对象之上,每个文件被分到一个或者多个对象上提供冗余和并发存取。文件系统的语义通过元数据服务器表达以方便客户端对于OSD的存取。客户读取对象存储使用iSCSI/OSD协议。I/O操作以直接和并行的方式访问存储结点,而不需要经过元数据服务器。

    对象属性被用于存储文件属性,文件目录映射到对象的ID。因此,文件系统的信息被保存在对象自身,无需元数据服务以其他形式单独保存。

    在Panasas系统中包括的主要软件部件是:OSDFS对象存储系统、元数据管理器、客户端模块、NFS/CIFS网关和全局集群管理系统。

    Panasas客户端是可安装的核心模块,运行在Linux的核心态,它使用标准的VFS接口,客户可以使用标准POSIX接口存取OSD中的数据。并且在2.4和2.6的Linux内核下无需安装补丁。

    每个存储结点运行FreeBSD系统,开发并实现了硬件监控、配置管理和全局控制服务。并且每个使用定制的本地文件系统OSDFS,它们实现iSCSI目标器和OSD命令集。集群管理维护一个全局配置,并控制其他节点上的服务。它提供命令行和图像控制界面进行配置和管理。同时集群管理对集群成员进行失效检测,配置管理和全局操作(软件升级和系统重启)。

    Panasas元数据管理器实现文件系统的语义和管理数据在多个OSD上的分条。它是一个用户级应用,可以运行在每个节点上。元数据管理器负责多用户的安全存取,维护文件和对象级的元数据一致性,客户端cache的一致性和系统崩溃后的恢复。容错是基于本地事务日志,并在不同的管理节点有副本。在实际安装中,存储集群使用刀片技术,能够提供很好的扩展性。11个刀片被集成到1个4U的机架里,并安装大容量的电池和一个或2个16端口的千兆交换机。交换机可以聚合4个千兆端口形成一个trunk。第二个交换机提供冗余,并连接到每个刀片的第二个千兆端口上。OSD和元数据服务器使用几乎同样的刀片硬件配置。存储刀片包括一个商用处理器、2个磁盘、ECC内存和双端口千兆网络适配器。目录刀片包括更快的处理器,更多内存和一个较小磁盘。目录刀片处理元数据管理之外,还提供NFS和CIFS服务。更大的内存用于数据cache提高协议的运行效率。

    Panasas使用POSIX语义能够隐藏更多的管理复杂性,管理员可以在线地增加存储设备,新的资源被自动发现。为了管理可用的存储资源,使用两个最基本的概念,一个是物理的存储池称为刀片集,而逻辑引用树则称为卷。刀片集是一个卷的物理边界,刀片集可以在任何时候扩容,包括引入新的刀片或者两个刀片集合并。逻辑卷是一个目录树结构,并分配到一个特定的刀片集,有一个容量定额的限制。在卷中的文件分布在刀片集中的所有刀片上。卷在文件系统命名空间中就是一个目录,包括一个mount点。每个卷被一个元数据管理器维护。为了实现简单,在卷边界上划分元数据管理责任。

    Panasas可以进行自动的容量管理,这可以分为被动平衡和主动平衡,被动平衡是指改变在一个存储结点上创建文件和增长文件的概率;主动平衡是把存储对象从一个存储结点移动到另外一个存储结点并更新该对象的元数据映射。容量管理对于文件系统的用户是透明的,能够在存储池内平衡I/O负载。

    为了保证数据对象的可用性,把文件分成多个对象并分散到不同的存储结点上面,这多个对象之间使用容错的分条算法(RAID-1或者RAID-5),小文件镜像称两个存储对象,大文件可以广泛地分布其数据对象。基于文件的RAID结构使得不同文件的校验信息分散存放,由客户端负责文件数据的校验,减少元数据服务器的负担。

    在Panasas中,有几种元数据,包括对象ID到块地址映射、文件到一组对象的映射、文件的属性(包括存取控制表和其他信息)、文件系统命名空间信息和集群的配置和管理信息。这些元数据的管理被对象存储设备和元数据管理器所承担。其中块级元数据由存储结点的OSDFS在修改过的B树结构中存储文件系统的数据结构,例如分区和对象的分配表等。对于每个对象的块映射使用传统的直接、间接和多次间接结构。自由空间用位图数据结构维护。文件本身元数据(用户可以看到的,例如所有者等)和前两个数据对象存放在一起。文件名类似于传统的文件系统,而目录存放在特殊文件,用户可以读、缓冲和解析目录,或者通过查询RPC从元数据服务器上解析位置信息。系统级的元数据存在一组系统管理服务器上面,每个系统管理器维护一个基于Berkeley DB的本地数据库,系统管理服务器组通常设置奇数个服务器,使用PTP协议(Lamport' part-time parliament)去做出配置决定或升级配置。系统状态包括静态状态(刀片的身份等)和动态状态(各种服务的在线离线状态等)。集群管理在两个层面上应用,一个是底层PTP层管理系统管理器的增加,另一个是应用层去做出系统的配置决策

     

    5.2.4  全局并行文件系统(GPFS)

    GPFS[7]是IBM公司并行共享磁盘的集群文件系统,已经被应用于世界上很多大的超级计算中心。GPFS的扩展性来源于共享磁盘的系统结构,如图 5.8所示。

     
    图 5.8  GPFS文件系统整体结构

    集群中所有结点都可以平等地存取所有的磁盘,所有的文件以分条方式存放在所有磁盘上面,这能够充分发挥存储系统的吞吐率。

    在GPFS中最有特殊的是分布式锁管理机制。由于在物理上所有磁盘可以在所有客户端之间共享,而文件系统的一致性以及POSIX语义的要求,物理上的并行性受到很大的限制。GPFS使用一个中央的全局锁管理器和文件系统结点上的本地锁管理器合作来处理锁令牌。重复的存取同一个磁盘对象只需要确认所有权的一个简单信息。当一个结点从全局锁管理器获取一个令牌,这个节点对于同一个对象的后续存取就不需要额外的通信。仅当其他结点对于同一个对象操作需要一个冲突锁,对于传递令牌到其他节点再需要额外的信息。锁在维护cache一致性方面也是重要的。GPFS使用字节粒度的锁去同步多个客户对于一个文件的读写操作。这导致多个客户可以同时写数据到一个文件不同的位置。考虑到字节锁会产生很大的维护开销,GPFS把维护文件字节锁的任务交给第一个存取该文件的节点负责,它和同时写该文件的后续客户协商和分配字节锁。对于多个客户同步存取文件的元数据,GPFS采用共享的写锁保证并行的写操作,客户对于大多数操作对于元数据的更新信息放到metanode结构,只有相应的inode从磁盘中读取或者写到磁盘时,metanode才合并多个更新。只有进行更新文件大小和修改文件更新时间时才需排他锁。

    GPFS把恢复日志保存在共享磁盘上,由结点失效导致的元数据的不一致能够由其他节点运行失效结点的恢复日志很快修复。而GPFS使用组服务层来通过组成员协议和周期性的心跳测试检测结点失效,当一个结点失效时,组服务层通知组内剩余的结点,并启动恢复过程。而GPFS通过在多个磁盘或者磁盘阵列上分布数据以保证单个磁盘失效不会导致数据丢失。另外,GPFS能够在线地增加,减小或者重新分布磁盘

     

    5.2.5 Google文件系统(GoogleFS)

    谷歌文件系统(Google File System,GoogleFS)是为了满足快速增长的数据处理需要而设计的。在开发实现GoogleFS之前,设计人员首先对Google应用程序负载和应用环境进行了深入探讨和分析,它能运行在不可靠硬件设备上进行海量的数据处理,处理来自多个用户的并发访问。文件系统中存放的数据绝大部分采用追加新数据而非覆盖现有数据的方式进行写操作。除了考虑到这些需要和技术特点后,GoogleFS也考虑了分布式文件系统的共性设计目标:性能、可扩展性、可靠性和可用性。

     
    (点击查看大图)图4.20 Google文件系统的架构示意图

    GoogleFS包括一个主服务器和多个大数据块服务器,这些块服务器响应多个客户端的访问请求,如图所示。文件被分割成64MB固定大小的数据块(Chunk),它分布在各个块服务器上,每个块在多个服务器上都存有副本,为了可靠性,一般存放3个副本。块服务器使用下层物理文件系统(如Ext3)来存放数据块。

    主服务器负责维护所有文件系统的元数据,包括命名空间、文件至数据块的映射信息,访问控制信息,以及主存中数据块的当前位置。之所以将数据块读入主存是为了提高主服务器的操作性能。为了获得数据块的位置信息,主服务器只在块服务器启动时轮询一下数据块信息,直到新的数据块产生并在心跳信息的提示下主服务器才更新这些位置信息。

    客户端直接使用文件系统API来访问主服务器和块服务器。为了减少发给主服务器的请求数量,客户端只对元数据进行缓存,需要注意的是,客户端和块服务器对文件数据不进行高速缓存。GoogleFS采用的副本技术来提高数据可用性,数据块和元数据都存在副本,比如每个数据块在3台块服务器上都存在副本;当管理元数据的主服务器宕机时,备用的"影子"服务器则切换过来,但它只能提供读取操作,不支持修改、写入操作。为了增加数据可恢复性,GoogleFs采用了操作日志和快照技术

     

    5.2.6  Hadoop分布式文件系统(HDFS)

    Hadoop[8]是一个基于JAVA的支持数据密集型分布式应用的分布式文件系统。它能够保证应用可以在上千个低成本商用硬件存储结点上处理PB级的数据。Hadoop是Apache开源项目,Yahoo支持这个项目并在自己的web搜索和商业广告业务上使用它。Hadoop开发类似于Google的MapReduce和Google文件系统的技术。图 5.9为Hadoop的整体结构。

    Hadoop作为一个开源项目,受到GoogleFS很大启发。Hadoop包括两个部分:Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)和MapReduce编程模型,其中HDFS运行在商用硬件上,它和现有分布式文件系统很相似,但也具备了明显的差异性,比如HDFS是高度容错的,可运行在廉价硬件上;HDFS能为应用程序提供高吞吐率的数据访问,适用于大数据集的应用中;HDFS在POSIX规范进行了修改,使之能对文件系统数据进行流式访问,从而适用于批量数据的处理。HDFS为文件采用一种"一次写多次读"的访问模型,从而简化了数据一致性问题,使高吞吐率数据访问成为可能,一些Map/Reduce应用和网页抓取程序在这种访问模型下表现完美。

    如果距离数据越近,计算就越为有效,特别是在大数据集情况下,它能最小化网络冲突并提高系统的总吞吐率。因此HDFS提出了"移动计算能力比移动数据更廉价" 的设计理念,它将计算迁移到距离数据更近的位置,而不是将数据移动到应用程序运行的位置,HDFS提供了这种迁移应用程序的API接口。

    HDFS是一种主/从模式的系统结构,如错误!未找到引用源。5.9所示,主服务器,即上图中的命名节点,它管理文件系统命名空间和客户端访问,具体文件系统命名空间操作包括'打开'、'关闭'、'重命名'等,并负责数据块到数据节点之间的映射;此外,存在一组数据节点,它除了负责管理挂载在节点上的存储设备,还负责响应客户端的读写请求。HDFS将文件系统命名空间呈现给客户端,并运行用户数据存放到数据节点上。从内部构造看,每个文件被分成一个或多个数据块,从而这些数据块被存放到一组数据节点上;数据节点会根据命名节点的指示执行数据块创建、删除和复制操作。

    大量的低成本商用计算机具有较高的失效率,因此失效检测,快速高效的恢复是Hadoop文件系统的主要设计目标。同时Hadoop也更加适用于批量流水数据存取应用而不是交互较多的小I/O应用,事实上它更加关注提高系统的整体吞吐率而不是响应时间。同时HDFS更优化存储大文件(最好是64MB的倍数)。并且系统使用简单的一致性协议,因此主要针对面向写一次读很多次的应用。Hadoop同时给应用程序提供接口以保证处理过程尽量靠近数据的位置,减少中间数据传输的开销。Hadoop很容易从一个平台移植到另一个平台。

     
    (点击查看大图)图 5.9  Hadoop文件系统的整体结构

    HDFS有一个主从结构。一个HDFS集群包含一个NameNode和多个DataNode。NameNode是主服务器,维护文件系统命名空间、规范客户对于文件的存取和提供对于文件目录的操作。DataNode负责管理存储结点上的存储空间和来自客户的读写请求。DataNode也执行块创建、删除和来自NameNode的复制命令。

    HDFS被设计用来可靠性地保存大文件,它使用一组顺序块保存文件,除文件最后一个块外,其他的块大小相等。块大小和文件的副本数依赖于每个文件自己的配置。NameNode周期性的收到每个DataNode的心跳和块报告,前者表示相应的DataNode是正常的,而后者包括DataNode上所有block的列表。机架可知的副本放置策略是HDFS性能和可靠性的关键。它通过在多个节点上复制数据以保证可靠性。缺省的冗余度是3,两个数据副本在同一个机架,另一个在其他的机架。当用户访问文件时,HDFS把离用户最近的副本数据传递给用户使用。

    HDFS的命名空间存放在NameNode上,NameNode使用事务log(EditLog)去记录文件系统元数据的任何改变。而文件系统命名空间包括文件和块的映射关系和文件系统属性等它们存放在FsImage文件中,Editlog和FsImage都保存在NameNode的本地文件系统中。同时它还在内存中保存整个文件系统的命名空间和文件的块映射图。

    所有HDFS的通讯协议是建立在TCP/IP协议之上的,在客户和NameNode之间建立ClientProtocol协议,文件系统客户端通过一个端口连接到命名节点上,通过客户端协议与命名节点交换;而在DataNode和NameNode之间建立DataNode协议。上面两种协议都封装在远程过程调用协议(Remote Procedure Call,RPC)之中。一般地,命名节点不会主动发起RPC,只响应来自客户端和数据节点的RPC请求。

    HDFS提出了数据均衡方案,即,如果某个数据节点上的空闲空间低于特定的临界点,那么就会启动一个计划自动地将数据从一个数据节点迁移到空闲的数据节点上。当对某个文件的请求突然增加时,那么也可能启动一个计划创建该文件新的副本,并分布到集群中以满足应用的要求。副本技术在增强均衡性的同时,也增加系统可用性。

    当一个文件创建时,HDFS并不马上分配空间,而是在开始时,HDFS客户端在自己本地文件系统使用临时文件中缓冲的数据,只有当数据量大于一个块大小时,客户端才通知NameNode分配存储空间,在得到确认后,客户端把数据写到相应的DataNode上的块中。当一个客户端写数据到HDFS文件中时,本地缓冲数据直到一个满块形成,DataNode从NameNode获取副本列表,客户端把数据写到第一个DataNode后,当这个DataNode收到小部分数据时(4KB)再把数据传递给第二个DataNode,而第二个DataNode也会以同样方式把数据写到下一个副本中。这就构成了一个流水线式的更新操作。

    在删除文件时,文件并不立刻被HDFS删除,而是重命名后放到/trash目录下面,直到一个配置的过期时间到才删除文件。

    文件系统是建立在数据结点集群上面,每个数据结点提供基于块的数据传输。浏览器客户端也可以使用HTTP存取所有的数据内容。数据结点之间可以相互通信以平衡数据、移动副本,以保持数据较高的冗余度。

     

    5.2.7 分布式文件系统评价

    在Panasas,Lustre,GPFS和PVFS2这几种被应用的主流高性能文件系统集群中,Lustre需要使用相对比较健壮的对象存储服务器,使用简单的分条策略,但并没有在单个结点失效后主动重分布数据的能力。PVFS2在存储结点间结点进行数据分条,但没有使用校验和冗余机制以保证系统的可用性。并且GPFS和Lustre依赖于存储结点的磁盘阵列来容忍磁盘失效, PVFS2虽然使用普通的商用机器,但不能保证磁盘失效后系统运行的正常。

    集群的NFS系统包括ISilon,NetApp的GX和PolyServe。这些系统受限于单一NFS入口点,使得扩展性受到限制,事实上发展中的并行NFS(NFS4.1)可能解决这个问题。

    SAN文件系统包括CXFS、EMC的MPSFi、Oracle的OCFS2和GFS2等。它们是面向块接口的,元数据服务器需要管理十亿以上的数据块,并且使用非标准的客户端和元数据服务器。GPFS也是一种SAN文件系统,但使用分布锁管理和大数据块策略(256K到4MB)支持更大规模的集群系统。GPFS使用一个中央令牌管理器为块、inode、属性和目录项建立细粒度的锁,第一个获得锁的客户将负责维护相应共享对象的一致性管理,这减少了元数据服务器的负担。

    还有几个正在开发中的对象存储系统,包括Ceph和Usra Minor。Usra Minor提供对象的基本属性改变的版本追踪。而Ceph使用基于Hash的分布策略,它的对象服务器相互传播副本,但没有采用分条策略。Lustre把分布式锁管理协议应用到所有部件(OSS,元数据服务器和客户端)中。Panasas对象模型是基于iSCSI/OSD命令集。

    在多个数据存储服务器上分条是为了提高传输过程的整体带宽。在Zebra文件系统中,客户端产生写多个文件到不同服务器的日志,每个文件更新通道构成了一个数据流,一个校验数据被生产用于失效后的恢复。在NASD基础之上的Cheops并行文件系统使用了针对每个文件的分条机制。Isilon也把文件分条存放在多个存储结点上面,使用RAID和Reed Soloman编码区进行冗余保证数据不丢失。RAIF系统映射一个文件到多个文件系统,也允许分条。Lustre使用简单RAID0的分条机制。

    Google文件系统是一个用户级的文件系统,它实现基于特定应用的函数库。GoogleFS使用副本来进行容错。客户端负责把数据写到副本中,再通知元数据服务器更新。GoogleFS使用应用层语义支持并发操作。

    在所有系统中,仅Panasas、Isilon、Google和Ceph使用存储结点间冗余机制防止磁盘失效。其他系统依赖于存储结点的硬件RAID或者软件阵列保证磁盘失效时的数据可用性。目前大部分系统使用单个元数据服务器,而Panasas和GPFS有多个元数据服务器,而Ceph则使用细粒度的Hash策略分布元数据

    展开全文
  • 一个典型的语音识别系统

    万次阅读 2017-05-15 15:46:42
    一个典型的语音识别系统 标签: 语音识别 2015-01-05 16:56 3966人阅读 评论(0) 收藏 举报  分类: 自然语言识别研究(9)  版权声明:本文为博主原创文章,未经博主允许不得转载。 ...
     

    一个典型的语音识别系统

    标签: 语音识别
      3966人阅读  评论(0)  收藏  举报
      分类:
    一、语音识别技术
    转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空)
        语音识别技术,广泛来说是指语意识别和声纹识别;从狭义上来说指语音语义的理解识别,也称为自动语音识别(ASR)。其关键技术包括选择识别单元、语音端点检测、特征参数提取、声学模型及语音模型的建立。语音识别技术目前在桌面系统、智能手机、导航设备等嵌入式领域均有一定程度的应用。其主要技术难题是识别系统的适应性较差、受背景噪声影响较大,未来的发展方向应是无限词汇量连续语音非特定人语音识别系统。
    (1)信号处理及特征提取模块
        该模块的主要任务是从输入信号中提取特征,供声学模型处理。同时,它一般也包括了一些信号处理技术,以尽可能降低环境噪声、信道、说话人等因素对特征造成的影响。
    (2)统计声学模型
        典型系统多采用基于一阶隐马尔科夫模型进行建模。
    (3)发音词典
        发音词典包含系统所能处理的词汇集及其发音。发音词典实际提供了声学模型建模单元与语言模型建模单元间的映射。
    (4)语言模型
        语言模型对系统所针对的语言进行建模。理论上,包括正则语言,上下文无关文法在内的各种语言模型都可以作为语言模型,但目前各种系统普遍采用的还是基于统计的N元文法及其变体。
    (5)解码器
        解码器是语音识别系统的核心之一,其任务是对输入的信号,根据声学、语言模型及词典,寻找能够以最大概率输出该信号的词串,从数学角度可以更加清楚的了解上述模块之间的关系。
        当今语音识别技术的主流算法,主要有基于动态时间规整(DTW)算法、基于非参数模型的矢量量化(VQ)方法、基于参数模型的隐马尔可夫模型(HMM)的方法、基于人工神经网络(ANN)和支持向量机等语音识别方法.

    二、非特定人、大词汇量、连续语音识别系统
           连续数字语音识别系统经过训练和识别两个部分。此训练可以看作是对 HMM 建立模型的过程。通过对参数重新评估,调整模型的各种参数,得到具有较好鲁棒性的模型。对基本模型进行改进和优化,可以有效提高精确度,获得更好的识别率。识别过程则可以认为是使用现有的 HMM 模型库、数据字典和语法控制组成识别网络,运用搜索算法寻找最佳匹配过程。 首先对等待识别的语音信号进行采样,然后通过转换变成电信号。预处理这 些电信号,也就是对信号进行增加预重、帧数分离、检测端点等操作。处理过后,对语音信号提炼生成特征的矢量数据。按识别模块中的 HMM 模型和词典要求组合,形成合词模型后完成识别,将结果和语言模型进行匹配,淘汰那些不符合语法限制的句子和词组,最后输出符合规范的识别的过程,就是语音识别的全过程。特征值、HMM 模 型、语法和数据字典都是影响识别率高低的重要因素。
        语音识别过程通常包括"前段"和"后端"两部分:“前端”模块 主要的作用是进行端点检测(去除多余的静音和非说话声)、降噪、 特征提取等;“后端”模块的作用是利用训练好的声学模型和语言模型对用户说话的特征向量进行统计模式识别(又称解码),得到其包含的文字信息,此外,后端模块还存在一个自适应的反馈模块,可以对用户的语音进行自学习,从而对声学模型和语音模型进行必要的校正,进一步提高识别的准确率。一个完整的非特定人大词汇量连续语音识别系统可大致分为三部分:语音信号预处理与特征提取、声学模型训练、语言模型训练、搜索算法与识别。
    0.识别单元的选择

       选择识别单元是语音识别研究的第一步,分为单词、音节、音素。

    (1)单词单元:广泛应用于中小词汇语音识别系统,但不适合大词汇系统,原因在于模型库太庞大,训练模型任务繁重、模型匹配算法复杂,难以满足实时性要求。

    (2)音节单元:多见于汉语语音识别,主要因为汉语是单音节结构的语言,而英语是多音节。虽然汉语大约有1300个音节,但若不考了声调只有约408个无调音节。

    (3)音素单元:目前广泛被应用到大词汇量语音识别系统中,原因是在于汉语音节仅有声明和韵母构成,并且声明和韵母的声学特性相差很大。

        总结,对大词汇量语音识别系统来说,通常识别单元越小,则计算量也越小,所需的模型存储量也小,要求的训练数量也少,但对应语音段的定位和分割较困难,因此识别模型规则也变得更复杂。

    1、预处理模块

           对输入的原始语音信号进行处理(输入的语言信号首先要进行反混叠滤波 采样 A/D 转换 等过程进行数字化, 之后要进行预处理, 包括预加重 加窗和 分帧 端点检测等。),滤除掉其中的不重要的信息以及背景噪声,并进行语音信号的端点检测(找出语音信号的始末)、语音分帧(近似认为在10-30ms内是语音信号是短时平稳的,将语音信号分割为一段一段进行分析)以及预加重(提升高频部分)等处理。

    目前主流的语音信号端点检测方法:

    (1)短时能量En:反应语音振幅或能量随着事件缓慢变化的规律;

    (2)短时平均过零率Zn:对于离散信号而言,是样本改变符号的次数,可以粗略分别清音和浊音;

    (3)双门限端点检测:短时平均能量和过零率两者结合可以起到区分语音信号中的静音与语音信息的作 用,完成端点检测。一段完整的语音信号的可以分为三段:静音段、过渡段、语音段。 在静音段,过零率或能量越过了低门限,进入过渡段。在过渡段,过零率或能量都降低至低门限以下,则恢复到静音态;过零率或能量中的其中一个越过了高门限,则为进入了语音段。在低噪声情况下,双门限端点检测简单可靠。但在噪声较大的情况下,该方法失去判断能力,所以此方法的抗噪能力较差。 

    2、声学特征提取

           语音信号是一种典型的时变信号,然而如果把音频的参考时间控制在几十毫 秒以内,则得到一段基本稳定的信号。去除语音信号中对于语音识别无用的冗余信息,保留能够反映语音本质特征的信息,并用一定的形式表示出来。也就是提取出反映语音信号特征的关键特征参数形成特征矢量序去掉那些相对无关的信息如背景噪声、信道失真等,以便用于后续处理目前的较常用的提取特征的方法还是比较多的,不过这些提取方法都是由频谱衍生出来的。

    目前主流的语音信号特征提取方法:

    (1)线性预测系数(LPCC):很好的模拟语音信号,语音信号是由声带振动发出的, 声带可以不振动也可以有周期的振动,分别对应清音(consonants)和浊音(vowels),每一段声管则对应一个 LPC 模型的极点。通常极点个数在 12-16 个左右,即可清晰地描述信号的特征了。

    (2)Mel频率倒谱系数(MFCC)参数

       人的听觉系统却是一种特殊的非线性系 统,它对不同频率信号的响应灵敏度有较大区别。 MFCC参数比 LPC 参数更能够充分利用人耳的感知特性提高系统的识别性能因其良好的抗噪性和鲁棒性而应用广泛。MFCC的计算首先用FFT将时域信号转化成频域,之后对其对数能量谱用依照Mel刻度分布的三角滤波器组进行卷积,最后对各个滤波器的输出构成的向量进行离散余弦变换DCT,取前N个系数。在sphinx中也是用MFCC特征的,用帧frames去分割语音波形,每帧大概10ms,然后每帧提取可以代表该帧语音的39个数字,这39个数字也就是该帧语音的MFCC特征,用特征向量来表示

    (3)小波分析

    3、声学模型训练(模版匹配方法)

          声学模型的训练,即为建模过程。声学模型是识别系统的底层模型,是语音识别系统中最关键的部分。声学模型表示一种语言的发音声音,可以通过训练来识别某个特定用户的语音模式和发音环境的特征。根据训练语音库的特征参数训练出声学模型参数,在识别时可以将待识别的语音的特征参数同声学模型进行匹配与比较,得到最佳识别结果。

    目前主流的声学模型训练方法

    (1)动态时间规整(DTW):现实生活中语音信号的 随机性较强,就是同一人说的话,也不太可能说出一句一模一样的话来。就算字词都一样,发音的时间长短也可能不一样。因此,需要寻找一种变换关系来削除这种时间上的距离偏差,这种结合时间变换关系求特征序列之间距离的技术算法 称为动态时间规整算法(DTW:DynamicTimeWarping)。动态时间规整(DTW)算法 的算法的思想,就是将待识别的语音信号均匀的升长或缩短,使其与参考模板的长度一致。同时,使语音信号的时间轴进行不均匀的扭曲和弯折,最终达到与模板的特征对齐。DTW 是较早的一种模式匹配和模型训练技术, 它把整个单词作为识别单元,在训练阶段将词汇表中每个词的特征矢量序列作为模板存入模板库,在识别阶段将待识别语音的特征矢量序列依次与库中的每个模板进行相似度比较,将相似度最高者作为识别结果输出。DTW 应用动态规划方法成功解决了语音信号特征参数序列比较时时长不等的难题,在小词汇量、孤立词语音识别中获得了良好性能。但因其不适合连续语音大词汇量语音识别系统, 目前已逐渐被 HMM 和 ANN模型替代。
    (2)矢量量化(VQ)技术
        矢量量化(VectorQuantization)是一种适用于小词汇量、孤立词的语音识别的 信号压缩方法 。矢量量化器的设计其核心思想是:为某一个特定的信源设计一 个优化的码书,那么来自同一个信息源所产生的信号与该码书的平均量化失真就应远远小于他与其他信息的信号与该码书的平均量化失真,也就是说编码器本身存在一定的区分能力。 
    (3)隐马尔可夫模型HMM 

         HMM是对语音信号的时间序列结构建立统计模型,将其看作一个数学上的双重随机过程:一个是用具有有限状态数的Markov链来模拟语音信号统计特性变化的隐含(马尔可夫模型的内部状态外界不可见)的随机过程,另一个是与Markov链的每一个状态相关联的外界可见的观测序列(通常就是从各个帧计算而得的声学特征)的随机过程。

        HMM 模型是语音信号时变特征的有参表示法。它由相 互关联的两个随机过程共同描述信号的统计特性,其中一个 是隐蔽的 (不可观测的) 具有有限状态的 Markor 链, 另一个是 与 Markor 链的每一状态相关联的观察矢量的随机过程 (可观测的) 。HMM 很好的模拟了人得语言过程, 目前应用十分广泛。目前的主流语音识别系统多采用隐马尔可夫模型HMM进行声学模型建模。声学模型的建模单元,可以是音素,音节,词等各个层次。对于小词汇量的语音识别系统,可以直接采用音节进行建模。而对于词汇量偏大的识别系统,一般选取音素,即声母,韵母进行建模。识别规模越大,识别单元选取的越小。 

            人的言语过程实际上就是一个双重随机过程,语音信号本身是一个可观测的时变序列,是由大脑根据语法知识和言语需要(不可观测的状态)发出的音素的参数流(发出的声音)。HMM合理地模仿了这一过程,是较为理想的一种语音模型。用HMM刻画语音信号需作出两个假设,一是内部状态的转移只与上一状态有关,另一是输出值只与当前状态(或当前的状态转移)有关,这两个假设大大降低了模型的复杂度。所以 HMM 可以 非常精确地描述语音信号的产生过程。 

           语音识别中使用HMM通常是用从左向右单向、带自环、带跨越的拓扑结构来对识别基元建模,一个音素就是一个三至五状态的HMM,一个词就是构成词的多个音素的HMM串行起来构成的HMM,而连续语音识别的整个模型就是词和静音组合起来的HMM。总之 HMM 模型较为完整的表达了语音的声学模型,采用统计的训练方法将 上层的语言模型和底层的声学模型融入统一的语音识别搜索算法中,并获得更好 的效果。

    (4)人工神经网络模型(ANN)

         神经网络是由许多被称为节点的简单非线性模拟处理要素密集互连配置而成的,是 一种模仿了生物神经元的系统模型。网络通过令每一个节点的输出与一些其他的节点输入连接形成,类似于真实神经元的突触连接。每个神经元表达了一种特定的输出函数,称为激励函数,每两个神经元之间的连接都包含一个连接强度,也就是作用于通过该连接的信号的加权值。经过训练之后的神经网络,具有信息特征抽取、知识概括和学习记忆的能力,而模型学习到的信息或知识则储存在每个单元节点之间的连接矩阵上。一个神经网络的表现是由节点定义,拓扑结构以及学习算法这三个特征组成的集体性质决定的。 

       ANN本质上是一个自适应非线性动力学系统,是由结点互连组成的计算网络, (优点)人工神经网络(ANN) 基本上能够模拟人类神经的活动原理,具有学习特性、容错性、并行性、自适应性和鲁棒性,是一个自适应非线性动力学系统,且具有较强的分类能力和输入输出映射能力。这些能力是 HMM 模型不具备的, 可用于处理一些环境信息十分复杂, 背景知识不清楚, 推理规则不明确的问题, 允许样品有较大的缺损、 畸变, 因此对于噪声环境下非特定人的语音识别问题来说是一种很好的解决方案。(缺点)由于语音训练和识别时间太长,实现和应用较难等不利因素,所以到目前为止该方法停留在实验阶段,目前大部分应用神经网络的语音识别系统都采用了 BP 网并取得了较好的识别效果.将 ANN 与 HMM 结合分别利用各自优点进行识别将是今后的一条研究途径。ANN 具有 较好的区分复杂分类边界的能力,显然它十分有助于模式识别。在这些研究中,大部分 

    采用基于反向传播算法(BP 算法)的多层感知网络。 

    a.BP神经网络:BP 神经网络在训练的时候,正向传播之后输出层没有得到期望输出,则采用反向传 播算法,提高网络系统对样本的似然度(Likelihood)。将样本的实际输出与期望输出之间的差值即误差信号,并在逐层反向传播的过程中由误差反馈不断调整网络的权值。网络学习效果的提升可以由增加隐藏层层数实现。 在诸多神经网络中,BP 是应用较多的一种,用于语音识别时也具有较好的效果,这 是由于 BP 神经网络具有许多独特的优点:(1)它可以联想模式对,将复杂的声学信号映射为不同级别的语音学和音韵学的表示;(2)可以通过插值进行归纳,因此相关特征 

    可通过训练获取(3)对不同的类,他可以在超平面中形成不相交的区域,很适合捕捉细微的规律;(4)输入可以是二值或连续值,也可以是声学属性或语音特征的任意组合; (5)对数据的分布不做先验假设,对模型使用全局约束,因此能构造光滑的类边界, 识别精度好。虽然 BP 神经网络具有强大的计算能力,能够好的应用于语音识别,但随着对识别 性能要求的提高,网络本身仍有一些问题逐渐暴露出来,以下方面亟待改进: 

    (1)局部极小值问题; 

    (2)增加神经网络的可理解性。人们暂时仍然无法直接理解网络学习存储在连接矩阵上的知识; 

    (3)加快神经网络学习速度。目前大部分神经网络算法都无法回避的一个部分就是迭代问题,为了获得好的学习效果,迭代需要大的计算开销。 

    b.神经网络训练

        神经网络的学习也称为训练,是指通过神经网络所在环境的刺激作用,调整神经网 络的自由参数。能够从环境中学习和在学习中获得系统工作效果提升,是神经网络最有意义的性质。在神经网络中,一般有两类训练算法。 

    (1)有监督学习算法。不但需要训练用的输入信号,同时需要与输入相对应的表示所需输出的目标信号。网络通过计算实际输出与每组输入对应的目标输出之间的差值来调整权值,做出正确反应。 

    (2)无监督学习算法。不要求有目标输出,算法提供一个关于网络学习表示方法质量的测量尺度,根据尺度将自由参数最优化,当网络与输入数据统计规律性一致,就能形成内部表示方法记忆输入特征,由此进行类别识别。 

    4、语言模型训练

           语音识别中的语言模型主要解决两个问题一是如何使用数学模型来描述语音中词的语音结构二是如何结合给定的语言结构和模式识别器形成识别算法。语言模型是用来计算一个句子出现概率的概率模型。它主要用于决定哪个词序列的可能性更大,或者在出现了几个词的情况下预测下一个即将出现的词语的内容。换一个说法说,语言模型是用来约束单词搜索的。它定义了哪些词能跟在上一个已经识别的词的后面(匹配是一个顺序的处理过程),这样就可以为匹配过程排除一些不可能的单词。语言模型一般指在匹配搜索时用于字词和路径约束的语言规 则,它包括由识别语音命令构成的语法网络或由统计方法构成的语言模型, 语言处理则可以进行语法、 语义分析.

           语言建模能够有效的结合汉语语法和语义的知识,描述词之间的内在关系,从而提高识别率,减少搜索范围。语言模型分为三个层次:字典知识,语法知识,句法知识。

             对训练文本数据库进行语法、语义分析,经过基于统计模型训练得到语言模型。

    目前主流的语言建模方法

    (1)基于规则模型
    (2)基于统计模型

        统计语言模型是用概率统计的方法来揭示语言单位内在的统计规律,其中N-Gram模型简单有效,被广泛使用。它包含了单词序列的统计。N-Gram模型基于这样一种假设,第n个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积(即根据前面N-1个词汇的历史来决定下一个词可能出现的概率)。这些概率可以通过直接从语料中统计N个词同时出现的次数得到常用的是二元的Bi-Gram和三元的Tri-Gram。

             Sphinx中是采用二元语法和三元语法的统计语言概率模型,也就是通过前一个或两个单词来判定当前单词出现的概率P(w2| w1),P(w3| w2, w1)。

    5、语音解码和搜索算法

           解码器:即指语音技术中的识别过程。针对输入的语音信号,根据己经训练好的HMM声学模型、语言模型及字典建立一个识别网络,根据搜索算法在该网络(识别网络)中寻找最佳的一条路径,这个路径就是能够以最大概率输出该语音信号的词串,这样就确定这个语音样本所包含的文字了。所以解码操作即指搜索算法是指在解码端通过搜索技术寻找最优词串的方法。连续语音识别中的搜索,就是寻找一个词模型序列以描述输入语音信号,从而得到词解码序列。搜索所依据的是对公式中的声学模型打分和语言模型打分。在实际使用中,往往要依据经验给语言模型加上一个高权重,并设置一个长词惩罚分数。当今的主流解码技术都是基于Viterbi搜索算法的,Sphinx也是。模型参数得到后可以用 Viterbi 算法来确定与观察序列对 应的最佳的状态序列。建好模型后,在识别阶段就是要计算每个模型产生观察符号序列的输出概率,输出概率最大的模型所表示的词就是我们的识别结果。

        基于动态规划的Viterbi算法在每个时间点上的各个状态,计算解码状态序列对观察序列的后验概率,保留概率最大的路径,并在每个节点记录下相应的状态信息以便最后反向获取词解码序列。Viterbi算法本质上是一种动态规划算法,该算法遍历HMM状态网络并保留每一帧语音在某个状态的最优路径得分。

        连续语音识别系统的识别结果是一个词序列。解码实际上是对词表的所有词反复搜索。词表中词的排列方式会影响搜索的速度,而词的排列方式就是字典的表示形式。Sphinx系统中采用音素作为声学训练单元,通常字典就用来记录每个单词由哪些个音素组成,也可以理解为对每个词的发音进行标注。

         N-best搜索和多遍搜索:为在搜索中利用各种知识源,通常要进行多遍搜索,第一遍使用代价低的知识源(如声学模型、语言模型和音标词典),产生一个候选列表或词候选网格,在此基础上进行使用代价高的知识源(如4阶或5阶的N-Gram、4阶或更高的上下文相关模型)的第二遍搜索得到最佳路径。


    展开全文
  • 典型的信息系统项目的十一个特点

    千次阅读 2013-07-09 15:13:22
    1、目标不明确 2、需求变化频繁 3、智力密集 4、设计队伍庞大 5、设计人员高度专业化 6、涉及的承包商多 7、各级承包商分布在各地,相互联系复杂 8、系统集成项目中需研制开发大量的软硬件系统 9、项目...
    1、目标不明确
    
    2、需求变化频繁
    3、智力密集型
    4、设计队伍庞大
    5、设计人员高度专业化
    6、涉及的承包商多
    7、各级承包商分布在各地,相互联系复杂
    8、系统集成项目中需研制开发大量的软硬件系统
    9、项目生命周期通常较短
    10、通常要采用大量的新技术
    11、使用与维护的要求非常复杂

    以上这些信息系统项目的特点是由于信息系统的特殊性所决定的。

    一般来说,信息系统项目属于典型的多学科合作项目,一般需要多种学科配合,如地理信息系统(GIS),需要地理信息技术、电子技术、无线射频技术等。

    开发商要向客户提供具有针对性的整合应用解决方案,这就要求开发商除了有IT放卖弄的技术外,必须还要有教丰富的行业经验。

    项目的销售过程是对客户需求的完善和明确的过程,同时又是使客户建立信心的过程,因此在业务环节中会涉及到不同专业的人员和技术。

    在信息系统项目中,由于用户的不同特点和需求,每一个信息系统项目都喝其他工程不完全一样,因此需要进行一定得定制,带有一些非标准的问题,每一个项目都可以带来一些新意。

    同时,由于信息系统项目要求对用户的行业经验有较好的掌握,这也造成了信息系统开发企业的信客户发展较困难:一方面信息系统的行业特征较明显,而行业差异较大,渗透到其他行业较困难;另一方面客户来源主要受其他客户影响,因此对客户的服务要求较高,而客户的应用变化较快,需求不稳定,要客户满意相对困难。
    展开全文
  • 1. 柔性事务刚性事务2. 两阶段提交(2PC)2、事务补偿(TCC事务):3、异步确保4、最大努力 1. 柔性事务刚性事务 柔性事务满足BASE理论(基本可用,最终一致) 刚性事务满足ACID理论 本文...
  • C语言级指针与典型应用(1

    千次阅读 多人点赞 2018-03-25 16:44:30
    级指针的定义:A(即B的地址)是指向指针的指针,称为级指针,用于存放级指针的变量称为级指针变量.本质:级指针变量的值是一个地址。一、概念在如下的A指向B、B指向C的指向关系中:首先,默认的编译器是32...
  • 大型广告系统架构 — 检索模块

    万次阅读 2016-04-10 21:12:55
    广告系统主要解决一个问题:在给定展示场景、用户的情况下,返回收益最大化的广告。下图是一个广告系统最简单的架构图。其中,Router,检索模块,排序模块一般称为广告系统的核心。同时,与之辅助的至少包含三大系统...
  • 机器视觉系统典型应用

    千次阅读 2007-05-28 17:47:00
    机器视觉技术的优越性 由于机器视觉系统可以快速获取大量信息,而且易于自动处理,也易于同设计信息以及加工控制信息集成,因此,在现代自动化生产过程中,人们将机器视觉系统广泛地用于工况监视、成品检验质量...
  • 数据密集型系统架构设计

    万次阅读 2016-05-19 20:07:30
    大数据技术对商业效果的提升已经在越来越多的行业中被证明,未来的...因此,未来越来越多的系统的主要瓶颈会从计算、IO转移到数据量上,内存密集型系统会变得越来越重要,相信其架构在未来几年也会有很多新的方式出现。
  • 通过对办公系统中文档表单的业务进行分析,设计使用MongoDB数据库存储文档来快速支撑实现流程类审批单灵活配置、综合信息灵活定制展现,以及可定制数据上报业务等。内容包括:1、办公系统中文档的定义;2、审批...
  • 几种典型的BI的系统架构分析

    千次阅读 2013-01-25 09:39:45
    http://www.dataguru.cn/article-3092-1.html 随着商务智能(BI)理论的不断发展,商务智能的系统架构已经从单一的理论衍生出多种架构,如分布式商务智能架构,联合商务智能架构等。...包括数据层、业务层应用
  • 大型广告系统架构概述

    万次阅读 多人点赞 2016-04-03 23:39:25
    用一句标准的报告性语言介绍大型广告系统的特点就是:处理的数据量特别巨大,响应速度要求特别快,数据实时性要求特别高,系统可用性要求特别高。面对种种不可思议的困难,最初的一批误打误撞进入广告行业的的互联网...
  • 什么是指数信号? 解释:我们在中学就知道指数函数,而我在这里所说的指数信号则是 当 a=0 时,信号不随...指数信号的一个重要特性是:其对时间的微分积分形式仍为指数形式 |a|越大 增长或衰减的速度越快 ...
  • Linux系统安装,教你安装一个属于自己的Linux系统

    万次阅读 多人点赞 2018-03-04 00:50:43
    1.Linux抽象解释 肯定有人我一样,很早就听说过Linux的这个词,但是又没接触过。然后随手百度一下看着满满的命令惊呆了,不知道从哪里开始学习。这种状况一直维持到我面试的时候,我不怕跟你们说,我拿着写着...
  • 使用Scribe来监控大型网络系统

    千次阅读 2010-06-17 17:30:00
    典型的应用就是:收集上千个系统产生的日志,并进行分析统计里面的数据,挖掘、预测。   简单的方式可以是:在每个机器上写个shell,实时或定时分析本系统日志,将结果报告给中心服务器。这样我们需要...
  • ASP.NET典型三层架构企业级医药行业ERP系统实战(8大模块22个子系统,价值3000万)  课程讲师:Tiger 课程分类:.net 适合人群:高级 课时数量:192课时 更新程度:完毕 我这里有一套课程大家分享,我的qq是...
  • 上一篇博文讲解了Zookeeper的典型应用场景,在大数据时代,各种分布式系统层出不穷,其中,有很多系统都直接或间接使用了Zookeeper,用来解决诸如配置管理、分布式通知/协调、集群管理Master选举等一系列分布式...
  • 数字图像处理领域的十四个典型算法及vc实现、第章作者:July 零一一年十六日。参考:百度百科、维基百科、vc数字图像处理。----------------------------------------------数字图像处理领域的十四个...
  • ASP.NET典型三层架构企业级医药行业ERP系统实战(8大模块22个子系统,价值3000万)  课程讲师:Tiger 课程分类:.net 适合人群:高级 课时数量:192课时 更新程度:完毕 我这里有一套课程大家分享,我的qq是...
  • 操作系统笔记 第

    千次阅读 2020-11-24 13:31:00
    操作系统笔记 第1.有两个程序:A程序按顺序使用CPU10秒、设备甲5秒、CPU5秒、设备乙10秒、CPU10秒;B程序按顺序使用设备甲10秒、CPU 10秒、CPU5秒、设备乙5秒、CPU 5秒;设备乙10秒。若允许它们采用非抢占式...
  • 解释语言编译语言的区别

    万次阅读 多人点赞 2013-11-24 17:58:28
    解释语言编译语言的区别 首先,我们编程都是用的高级语言(写汇编机器语言的大牛们除外),计算机不能直接理解高级语言,只能理解... 用编译语言写的程序执行之前,需要一个专门的编译过程,通过编译系统
  • 架构设计:系统存储(1)——块存储方案(1

    万次阅读 多人点赞 2016-08-18 20:19:21
    在这个专题中我们将至少介绍机械硬盘的主要结构、硬盘阵列的分类、操作系统的EXT文件系统、NAS文件共享存储方案、分布式文件系统重要技术点分布式文件系统示例。最后如果有时间我们将自行设计一款分布式文件系统
  • 熊节(ThoughtWorks中国公司资深咨询师)(本文发表于《程序员》杂志2008年第4期)本文以ThoughtWorks中国公司与客户合作的咨询项目为背景,为读者介绍如何在一个大型遗留系统的基础上组织运作重构项目,从而切实...
  • 这次争吵的问题比较典型,于是我就写了这篇文章。为了大家好理解,把“xxx 后台管理系统”泛化一下,变成: 开发一个大型后台管理系统,应该用前后端分离的技术方案吗? 先说一下,本文中的观点肯定有人不认同,再...
  • 1 列举常见的关系数据库非关系都有那些 关系数据库: Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL 非关系数据库: NoSql、Cloudant、MongoDb、redis、HBase 两种数据库之间的...
  • 光电隔离RS485典型电路

    千次阅读 2017-06-02 15:47:49
    一、RS485总线介绍 RS485总线是一种常见的串行总线标准,采用平衡发送与差分接收...、RS485总线典型电路介绍 RS485电路总体上可以分为隔离与非隔离。隔离比非隔离在抗干扰、系统稳定性等方面都有更出色的表
  • 典型推荐算法总结

    万次阅读 多人点赞 2018-11-23 21:05:42
    推荐算法种类很多,但是目前应用最广泛的应该是协同过滤类别的推荐算法,本文就对协同过滤类别的推荐算法做一个概括总结,后续也会对一些典型的协同过滤推荐算法做原理总结。 1. 推荐算法概述  推荐算法是非常...
  • 大数据架构的典型方法方式

    万次阅读 2016-06-04 15:15:30
    NoSQL 技术为应用提供了缓存搜索特性,但既然是处理数据,就需要定义一种方法来处理各种数据流,以便能够给用户输出见解或数据服务。通过审视被IT组织使用广泛的数据架构来定义处理的拓扑结构。当考虑服务水平SLA...
  • 操作系统理论笔记()期末复习笔记

    万次阅读 多人点赞 2018-07-09 21:48:11
    答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 245,420
精华内容 98,168
关键字:

典型1型系统和典型二型系统