sphinx4主要由三個基本模組構成:frontend,decoder,linguist。
frontend接受訊號的輸入並且轉化為特徵序列。linguist把任何型別的標準語言模型,字典的發音資訊以及一些聲學模型的結構資訊轉換為乙個searchgraph。在decoder 中的searchmanager負責用frontend產生的特徵以及linguist生成的
searchgraph進行實際的decoding工作,產生結果。
linguist是由三個可插拔的元件構成:languagemodel,dictionary,
acousticmodel。
1)languagemodel提供了單詞上得語言結構。主要有2種典型的實現:graph-driven grammars和stochastic n-grammodels。graph-driven grammars代表乙個有向圖,圖的節點代表乙個單詞,鏈結代表發生單詞轉換的概率。stochastic n-gram models提供了在給定前n-1個單詞時,該單詞發生的概率。
2)dictionary提供單詞的發音。這些發音把單詞分成乙個acousticmodel裡面unit的序列。
3)acousticmodel提供了語音單元與乙個hmm模型的對映關係。hmm是乙個有向圖,節點代表乙個hmm狀態,鏈結代表乙個狀態轉移概率。每乙個hmm狀態都可以對乙個特徵得分(實際的實現在hmmstate類裡面)。sphinx4現在提供乙個單獨的acousticmodel實現,能夠載入並使用sphinx3 trainer生成的模型。
4)searchgraph是由languagemodel所代表的語言結構以及acousticmodel的拓撲結構(基本發聲單元的hmms)。linguist也會使用詞典(dictionary)把languagemodel的單詞對映成acousticmodel元素的序列。
searchgraph是乙個有向圖,每乙個節點叫做searchstate,可以分為emitting或
non-emitting狀態。emitting狀態能夠對語音特徵進行打分;而non-emitting狀態僅僅代表了高層的語言結構,例如單詞,音素,這些不能夠直接對語音特徵進行打分。鏈結代表了狀態間的轉移概率。
參考:sphinx-4:a flexible open source framework for speech recognition.
語音識別的難點
儘管語音識別的研究已有半個世紀了,但現有的語音識別系統仍存在許多困難,還遠遠達不到實用化的要求,主要表現在 1 魯棒性 目前的語音識別系統對環境條件的依賴性強,要求保持測試條件和訓練條件一致,否則系統效能會嚴重下降。2 雜訊問題 現有的語音識別系統大多只能工作在安靜的環境下,一旦在雜訊環境下工作,講...
語音識別的基本方法
一般來說 語音識別的方法有三種 基於聲道模型和語音知識的方法 模板匹配的方法以及利用人工神經網路的方法 1 1 基於語音學和聲學的方法 該方法起步較早,在語音識別技術提出的開始,就有了這方面的研究,但由於其模型及語音知識過於複雜,現階段沒有達到實用的階段。通常認為常用語言中有有限個不同的語音基元,而...
Sphinx 離線語音識別研究(一)
編譯環境 ubuntu 12.04 安裝pocketsphinx 由於pocketsphinx依賴於另外乙個庫sphinxbase,所以先需要安裝sphinxbase。1 安裝sphinxbase tar xzf sphinxbase tar.gz cd sphinxbase configure m...