草稿: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:語音處理