草稿:CMU Sphinx

Sphinx4
编程语言Java
操作系统Cross-platform
类型Image library
许可协议BSD-style[1]
网站cmusphinx.github.io/wiki/
Pocketsphinx
编程语言C
操作系统Cross-platform
类型Image library
许可协议BSD-style
网站cmusphinx.github.io/wiki/

CMU Sphinx,简称 Sphinx,是卡内基梅隆大学开发的一组语音识别系统的总称。这些系统包括一系列的语音识别器(Sphinx 2 - 4)和一个声学模型训练器(SphinxTrain)。

在2000年,卡内基梅隆大学的 Sphinx 小组开源了几个语音识别组件,包括 Sphinx 2,并在2001年开源了 Sphinx 3。这些语音解码器附带数个声学模型以及应用程序,可用的资源也包括声学模型训练软件、语言模型编译软件和一个 公有的的发音词典 cmudict

Sphinx 包括若干软件系统,具体描述如下。

Sphinx

Sphinx 是一个连续语音、说话人独立的识别系统,使用隐藏式马可夫声学模型(HMMS)和 N-gram。该系统由李开复开发。Sphinx 的特色是能够分辨具有连续语音、识别说话者大词汇量的可行性,而在当时(1986 年),这种可能性还存在争议。Sphinx 现在仅具有历史意义,因为其性能已被后续版本所超越。一篇存档文章[2] 详细描述了这个系统。


Sphinx 2

一个以性能与速度为导向的识别器,最初由黄学东在卡内基梅隆大学开发,并于2000年由Kevin Lenzo在LinuxWorld上以BSD风格许可证在SourceForge上发布为开源软件。Sphinx 2专注于适合语音应用的实时识别。因此,它包含了端点检测、部分假设生成、动态语言模型切换等功能。它被用于对话系统和语言学习系统中,也可以用于基于计算机的PBX系统,如Asterisk。Sphinx 2的代码也被整合到许多商业产品中。目前它已不再积极开发(除例行维护外)。目前的实时解码器开发正在Pocket Sphinx项目中进行。一篇存档文章 详细描述了这个系统。


Sphinx 3

Sphinx 2 使用半连续表示法进行声学建模(即,所有模型使用同一组高斯分布,个别模型以这些高斯分布上的权重向量表示)。Sphinx 3 采用了流行的连续隐马尔可夫模型(HMM)表示法,主要用于高精度、非实时的识别。最近的算法和硬件发展使得 Sphinx 3 能力接近实时传输,尽管尚不适合关键的互动应用。Sphinx 3 正在积极开发中,并且与 SphinxTrain 一起提供了多种现代建模技术,如 LDA/MLLT、MLLR 和 VTLN,这些技术提高了识别精度(有关这些技术的描述,请参见语音识别文章)。


Sphinx 4

Sphinx 4 是对 Sphinx 引擎的全面重写,目的是提供一个更加灵活的框架以便进行语音识别研究,完全使用 Java 编程语言编写。Sun Microsystems 支持了 Sphinx 4 的开发,并为该项目贡献了软件工程专业知识。参与者包括来自 MERL、MIT 和 CMU 的个人。(目前支持的编程语言有 C、C++、C#、Python、Ruby、Java 和 JavaScript。)



PocketSphinx

PocketSphinx 是 Sphinx 的一个版本,可以用于嵌入式系统(例如,基于 ARM 处理器)。PocketSphinx 正在积极开发中,并且包含了固定点运算和高效的 GMM 计算算法等特性。


See also

  • Speech recognition software for Linux
  • List of speech recognition software
  • Project LISTEN

References

Category:自由软件文化和文件 Category:语音技术 Category:语音处理