1. 程式人生 > >幾個常見的語音互動平臺的簡介和比較

幾個常見的語音互動平臺的簡介和比較

1.概述

最近做了兩個與語音識別相關的專案,兩個專案的主要任務雖然都是語音識別,或者更確切的說是關鍵字識別,但開發的平臺不同, 一個是windows下的,另一個是android平臺的,於是也就選用了不同的語音識別平臺,前者選的是微軟的Speech API開發的,後者則選用 的是CMU的pocketsphinx,本文主要將一些常見的語音互動平臺進行簡單的介紹和對比。

這裡所說的語音互動包含語音識別(Speech Recognition,SR,也稱為自動語音識別,Automatic Speech Recognition,ASR)和語音 合成(Speech Synthesis,SS,也稱為Text-To-Speech,簡記為TTS)兩種技術,另外還會提到聲紋識別(Voice Print Recognition, 簡記為VPR)技術。

語音識別技術是將計算機接收、識別和理解語音訊號轉變為相應的文字檔案或者命令的技術。它是一門涉及到語音語言學、訊號處理、 模式識別、概率論和資訊理論、發聲機理和聽覺機理、人工智慧的交叉學科。在語音識別系統的幫助下,即使使用者不懂電腦或者無法使用 電腦,都可以通過語音識別系統對電腦進行操作。

語音合成,又稱文語轉換(Text to Speech)技術,能將任意文字資訊實時轉化為標準流暢的語音朗讀出來,相當於給機器裝上了人工 嘴巴。它涉及聲學、語言學、數字訊號處理、電腦科學等多個學科技術,是中文資訊處理領域的一項前沿技術,解決的主要問題就是如何 將文字資訊轉化為可聽的聲音資訊,也即讓機器像人一樣開口說話。

下面按平臺是否開源來介紹幾種常見的語音互動平臺,關於語音識別和語音合成技術的相關原理請參見我接下來的其他文章。


2.商業化的語音互動平臺

1)微軟Speech API

微軟的Speech API(簡稱為SAPI)是微軟推出的包含語音識別(SR)和語音合成(SS)引擎的應用程式設計介面(API),在Windows下應用 廣泛。目前,微軟已釋出了多個SAPI版本(最新的是SAPI 5.4版),這些版本要麼作為於Speech SDK開發包釋出,要麼直接被包含在windows 作業系統中釋出。SAPI支援多種語言的識別和朗讀,包括英文、中文、日文等。SAPI的版本分為兩個家族,1-4為一個家族,這四個版本彼此 相似,只是稍微添加了一些新的功能;第二個家族是SAPI5,這個系列的版本是全新的,與前四個版本截然不同。

最早的SAPI 1.0於1995年釋出,支援Windows 95和Windows NT 3.51。這個版本的SAPI包含比較初級的直接語音識別和直接語音合成的API, 應用程式可以直接控制識別或合成引擎,並簡化更高層次的語音命令和語音通話的API。SAPI3.0於97年釋出,它添加了聽寫語音識別(非連續 語音識別)和一些應用程式例項。98年微軟釋出了SAPI4.0,這個版本不僅包含了核心的COM API,用C++類封裝,使得用C++來程式設計更容易, 而且還有ActiveX控制元件,這個控制元件可以再VB中拖放。這個版本的SS引擎隨Windows2000一起釋出,而SR引擎和SS引擎又一起以SDK的形式釋出。

SAPI5.0 於2000年釋出,新的版本將嚴格將應用與引擎分離的理念體現得更為充分,所有的呼叫都是通過動態呼叫sapi.dll來實現的, 這樣做的目的是使得API更為引擎獨立化,防止應用依賴於某個具有特定特徵的引擎,這種改變也意圖通過將一些配置和初始化的程式碼放 到執行時來使得應用程式的開發更為容易。


2).IBM viaVoice

IBM是較早開始語音識別方面的研究的機構之一,早在20世紀50年代末期,IBM就開始了語音識別的研究,計算機被設計用來檢測特定的語言 模式並得出聲音和它對應的文字之間的統計相關性。在1964年的世界博覽會上,IBM向世人展示了數字語音識別的“shoe box recognizer”。 1984年,IBM釋出的語音識別系統在5000個詞彙量級上達到了95%的識別率。

1992年,IBM引入了它的第一個聽寫系統,稱為“IBM Speech Server Series (ISSS)”。1996年釋出了新版的聽寫系統,成為“VoiceType3.0”, 這是viaVoice的原型,這個版本的語音識別系統不需要訓練,可以實現孤立單詞的聽寫和連續命令的識別。VoiceType3.0支援Windows95系統, 並被整合到了OS/2 WARP系統之中。與此同時,IBM還發布了世界上首個連續聽寫系統“MedSpeak Radiology”。最後,IBM及時的在假日購物季節 釋出了大眾化的實用的“VoiceType Simply Speaking”系統,它是世界上首個消費版的聽寫產品(the world’s first consumer dictation product).

1999年,IBM釋出了VoiceType的一個免費版。2003年,IBM授權ScanSoft公司擁有基於ViaVoice的桌面產品的全球獨家經銷權,而ScanSoft公司 擁有頗具競爭力的產品“Dragon NaturallySpeaking”。兩年後,ScanSoft與Nuance合併,並宣佈公司正式更名為Nuance Communications,Inc。 現在很難找到IBM viaVoice SDK的下載地址了,它已淡出人們的視線,取而代之的是Nuance。


3)Nuance

Nuance通訊是一家跨國計算機軟體技術公司,總部設在美國馬薩諸塞州伯靈頓,主要提供語音和影象方面的解決方案和應用。目前的業務集中 在伺服器和嵌入式語音識別,電話轉向系統,自動電話目錄服務,醫療轉錄軟體與系統,光學字元識別軟體,和桌上型電腦的成像軟體等。

Nuance語音技術除了語音識別技術外,還包擴語音合成、聲紋識別等技術。世界語音技術市場,有超過80%的語音識別是採用Nuance識別引擎技術, 其名下有超過1000個專利技術,公司研發的語音產品可以支援超過50種語言,在全球擁有超過20億使用者。據傳,蘋果的iPhone 4S的Siri語音識別中 應用了Nuance的語音識別服務。另外,據Nuance公司宣佈的重磅訊息,其汽車級龍驅動器Dragon Drive將在新奧迪A3上提供一個擴音通訊介面, 可以實現資訊的聽說獲取和傳遞。

Nuance Voice Platform(NVP)是Nuance公司推出的語音網際網路平臺。Nuance公司的NVP平臺由三個功能塊組成:Nuance Conversation Server 對話伺服器,Nuance Application Environment (NAE)應用環境及Nuance Management Station管理站。Nuance Conversation Server對話服務 器包括了與Nuance語音識別模組整合在一起的VoiceXML直譯器,文語轉換器(TTS)以及聲紋鑑別軟體。NAE應用環境包括繪圖式的開發工具, 使得語音應用的設計變得和應用框架的設計一樣便利。Nuance Management Station管理站提供了非常強大的系統管理和分析能力,它們是為了 滿足語音服務的獨特需要而設計的。


4)科大訊飛——訊飛語音

提到科大訊飛,大家都不陌生,其全稱是“安徽科大訊飛資訊科技股份有限公司”,它的前身是安徽中科大訊飛資訊科技有限公司,成立於99 年12月,07年變更為安徽科大訊飛資訊科技股份有限公司,現在是一家專業從事智慧語音及語音技術研究、軟體及晶片產品開發、語音資訊服務 的企業,在中國語音技術領域可謂獨佔鰲頭,在世界範圍內也具有相當的影響力。

科大訊飛作為中國最大的智慧語音技術提供商,在智慧語音技術領域有著長期的研究積累,並在中文語音合成、語音識別、口語評測等多項 技術上擁有國際領先的成果。03年,科大訊飛獲迄今中國語音產業唯一的“國家科技進步獎(二等)”,05年獲中國資訊產業自主創新最高榮譽 “資訊產業重大技術發明獎”。06年至11年,連續六屆英文語音合成國際大賽(Blizzard Challenge)榮獲第一名。08年獲國際說話人識別評測 大賽(美國國家標準技術研究院—NIST 2008)桂冠,09年獲得國際語種識別評測大賽(NIST 2009)高難度混淆方言測試指標冠軍、通用測試 指標亞軍。

科大訊飛提供語音識別、語音合成、聲紋識別等全方位的語音互動平臺。擁有自主智慧財產權的智慧語音技術,科大訊飛已推出從大型電信級 應用到小型嵌入式應用,從電信、金融等行業到企業和家庭使用者,從PC到手機到MP3/MP4/PMP和玩具,能夠滿足不同應用環境的多種產品,科大 訊飛佔有中文語音技術市場60%以上市場份額,語音合成產品市場份額達到70%以上。


5)其他

其他的影響力較大商用語音互動平臺有谷歌的語音搜尋(Google Voice Search),百度和搜狗的語音輸入法等等,這些平臺相對於以上的4個 語音互動平臺,應用範圍相對較為侷限,影響力也沒有那麼強,這裡就不詳細介紹了。


3.開源的語音互動平臺

1)CMU-Sphinx

CMU-Sphinx也簡稱為Sphinx(獅身人面像),是卡內基 - 梅隆大學( Carnegie Mellon University,CMU)開發的一款開源的語音識別系統, 它包括一系列的語音識別器和聲學模型訓練工具。

Sphinx有多個版本,其中Sphinx1~3是C語言版本的,而Sphinx4是Java版的,另外還有針對嵌入式裝置的精簡優化版PocketSphinx。Sphinx-I 由李開復(Kai-Fu Lee)於1987年左右開發,使用了固定的HMM模型(含3個大小為256的codebook),它被號稱為第一個高效能的連續語音識別 系統(在Resource Management資料庫上準確率達到了90%+)。Sphinx-II由Xuedong Huang於1992年左右開發,使用了半連續的HMM模型, 其HMM模型是一個包含了5個狀態的拓撲結構,並使用了N-gram的語言模型,使用了Fast lextree作為實時的解碼器,在WSJ資料集上的識別率 也達到了90%+。

Sphinx-III主要由Eric Thayer 和Mosur Ravishankar於1996年左右開發,使用了完全連續的(也支援半連續的)HMM模型,具有靈活 的feature vector和靈活的HMM拓撲結構,包含可選的兩種解碼器:較慢的Flat search和較快的Lextree search。該版本在BN(98的測評資料 集)上的WER(word error ratio)為19%。Sphinx-III的最初版還有很多limitations,諸如只支援三音素文字、只支援Ngram模型(不 支援CFG/FSA/SCFG)、對所有的sound unit其HMM拓撲結構都是相同的、聲學模型也是uniform的。Sphinx-III的最新版是09年初發布的0.8版, 在這些方面有很多的改進。

最新的Sphinx語音識別系統包含如下軟體包:
Pocketsphinx — recognizer library written in C.
Sphinxbase — support library required by Pocketsphinx
Sphinx4 — adjustable, modifiable recognizer written in Java
CMUclmtk — language model tools
Sphinxtrain — acoustic model training tools
這些軟體包的可執行檔案和原始碼在sourceforge上都可以免費下載得到。


2)HTK

HTK是Hidden Markov Model Toolkit(隱馬爾科夫模型工具包)的簡稱,HTK主要用於語音識別研究,現在已經被用於很多其他方面的研究, 包括語音合成、字元識別和DNA測序等。

HTK最初是由劍橋大學工程學院(Cambridge University Engineering Department ,CUED)的機器智慧實驗室(前語音視覺及機器人組) 於1989年開發的,它被用來構建CUED的大詞彙量的語音識別系統。93年Entropic Research Laboratory Inc.獲得了出售HTK的權利,並在95年 全部轉讓給了剛成立的Entropic Cambridge Research Laboratory Ltd,Entropic一直銷售著HTK,直到99年微軟收購了Entropic,微軟重新 將HTK的版權授予CUED,並給CUED提供支援,這樣CUED重新發布了HTK,並在網路上提供開發支援。

HTK的最新版本是09年釋出的3.4.1版,關於HTK的實現原理和各個工具的使用方法可以參看HTK的文件HTKBook。


3)Julius

Julius是一個高效能、雙通道的大詞彙量連續語音識別(large vocabulary continues speech recognition,LVCSR)的開源專案, 適合於廣大的研究人員和開發人員。它使用3-gram及上下文相關的HMM,在當前的PC機上能夠實現實時的語音識別,單詞量達到60k個。

Julius整合了主要的搜尋演算法,高度的模組化使得它的結構模型更加獨立,它同時支援多種HMM模型(如shared-state triphones 和 tied-mixture models等),支援多種麥克風通道,支援多種模型和結構的組合。它採用標準的格式,這使得和其他工具箱交叉使用變得 更容易。它主要支援的平臺包括Linux和其他類Unix系統,也適用於Windows。它是開源的,並使用BSD許可協議。

自97年後,Julius作為日本LVCSR研究的一個自由軟體工具包的一部分而延續下來,後在2000年轉由日本連續語音識別聯盟(CSRC)經營。 從3.4版起,引入了被稱為“Julian”的基於語法的識別解析器,Julian是一個改自Julius的以手工設計的DFA作為語言模型的版本,它可以 用來構建小詞彙量的命令識別系統或語音對話系統。


4)RWTH ASR

該工具箱包含最新的自動語音識別技術的演算法實現,它由 RWTH Aachen 大學的Human Language Technology and Pattern Recognition Group 開發。

RWTH ASR工具箱包括聲學模型的構建、解析器等重要部分,還包括說話人自適應元件、說話人自適應訓練元件、非監督訓練元件、個性化 訓練和單詞詞根處理元件等,它支援Linux和Mac OS等作業系統,其專案網站上有比較全面的文件和例項,還提供了現成的用於研究目的的 模型等。

該工具箱遵從一種從QPL發展而來的開源協議,只允許用於非商業用途。


5)其他

上面提到的開源工具箱主要都是用於語音識別的,其他的開源語音識別專案還有Kaldi 、simon 、iATROS-speech 、SHoUT 、 Zanzibar OpenIVR 等。

常見的語音合成的開源工具箱有MARY、SpeakRight、Festival 、FreeTTS 、Festvox 、eSpeak 、Flite 等。

常見的聲紋識別的開源工具箱有Alize、openVP等。


4.小結

本文介紹了幾種常見的語音互動平臺,主要是語音識別、語音合成的軟體或工具包,還順便提到了聲紋識別的內容, 下面做一個簡單的總結:


參考文獻

[1]語音識別-維基百科:http://zh.wikipedia.org/wiki/語音識別 
[2]語音合成-百度百科:http://baike.baidu.com/view/549184.htm 
[3] Microsoft Speech API:http://en.wikipedia.org/wiki/Speech_Application_Programming_Interface#SAPI_1 
[4] MSDN-SAPI:http://msdn.microsoft.com/zh-cn/library/ms723627.aspx 
[5] 微軟語音技術 Windows 語音程式設計初步:http://blog.csdn.net/yincheng01/article/details/3511525 
[6]IBM Human Language Technologies History:http://www.research.ibm.com/hlt/html/history.html 
[7] Nuance: http://en.wikipedia.org/wiki/Nuance_Communications 
[8] 科大訊飛:http://baike.baidu.com/view/362434.htm 
[9] CMU-Sphinx: http://en.wikipedia.org/wiki/CMU_Sphinx 
[10] CMU Sphinx homepage:http://cmusphinx.sourceforge.net/wiki/ 
[11] HTK Toolkit:http://htk.eng.cam.ac.uk/ 
[12] Julius:http://en.wikipedia.org/wiki/Julius_(software) 
[13] RWTH ASR:http://en.wikipedia.org/wiki/RWTH_ASR 
[14] List of speech recognition software: http://en.wikipedia.org/wiki/List_of_speech_recognition_software 
[15] Speech recognition: http://en.wikipedia.org/wiki/Speech_recognition 
[16] Speech synthesis: http://en.wikipedia.org/wiki/Speech_synthesis 
[17] Speaker recognition: http://en.wikipedia.org/wiki/Speaker_recognition