導師讓做一個語音識別的系統,詳細步驟是什麼?

初期目標是他說幾句話,要識別出來。他想讓我自己做一個計劃表,就是每周完成什麼,下周完成什麼這樣的。

小白一枚,查了很多資料,但沒有《整體》的《宏觀》的《計劃表》,希望各位不吝賜教,謝謝!

—————————————————————————

首先感謝第一位答主,因為個人還在語音識別門檻外,所以可能有些問題沒說清楚。針對第一位答主的疑問做回答:

一。就是識別日常的幾句話,應該是漢語語音識別吧。

二。目前支持漢語的我只知道kaldi了

三。我的問題只是識別《日常》的《人》說的幾句話,我只是想要一個做事情的《步驟》。

—————————————————————————

我覺得我已經說清楚了,但是既然答主問,我覺得還是說一下:

我是一名在讀研究生,導師讓我自己做一個有學習計劃,他還沒給我指導,我不知道導師的目的是什麼,但做起來蠻難的,查到的資料都是演算法啊什麼的,而我需要的是一個宏觀的,階段式的,有計劃的學習步驟,希望得到解答,或者告訴我在哪裡可以找到參考,謝謝。


不好意思,我覺得想要更好的幫助你,依然需要先以提問題作為開端,但並不是真的需要你回答,只是起個引導或者側面幫助的作用吧,也輔助你進一步完善你的問題描述。

1 你對linux操作系統的熟悉程度如何? 你將要進行的大部分工作應該都需要在linux下完成。

2 你的英文水平如何?雖然中文的教程和經驗網上也應該能找到不少,但是有很多具體問題,可能還是需要在英文的資料裡面才能得到答案。

3 這個問題你已經開始思考兩三天了,現在是否對語音識別的框架有了初步的了解了?

4 上面三個問題其實還不是最重要的,最重要問題還是你為什麼要搭建這個語音識別器。 你的描述是導師給了你這個任務。我覺得還是要講清楚,這個任務和你的將來的研究是什麼關係。 你是從事語音識別這個方向的研究,從一個簡單的識別器開始不斷地深入下去;還是這個任務只能算作你的一個小項目,希望能在很短的時間內,把它完成就可以了。

最後也附上一些,我根據對你掌握程度的推測,現在可以做的步驟。(我默認你不是想要特別深入研究語音識別)

1 安裝linux系統,如果不熟悉的話,我推薦你就網上尋找如何安裝ubuntu,這個的能夠找到的資源最多最全面。

2 安裝kaldi

3 學會如何跑通 thchs30 , 同時繼續學習語音識別的框架

4 閱讀thchs30訓練用的腳本,看看能不能把腳本 和 學習到的語音識別的框架 對應起來

5 確定自己想要搭建的語音識別的輸入和輸出是什麼,形式是什麼樣子的。 比如你想識別的語句是有限的,或者遵從某種語法的;還是想要識別任意中文語句。確定好之後,思考如何對腳本進行修改可以達到目的。

6我想到這個步驟,應該就能獨立思考 或者提出一些更具體的語音識別的問題了。

我覺得前兩個步驟,如果是新手的話,需要1-2周來完成。第三個步驟我不清楚,我的猜測也是需要1周以上。 後面的就全都靠你的儲備知識和學習知識的能力了。當然上面這幾條完全不能保證你能完成你所描述的,識別「日常」的「幾句話」。 只能說是個起始點吧。從第四條開始,難度應該是陡升。


我覺得題主還是要說清楚自己的背景。比如你是在校學生還是公司員工,如果是前者,是本科生還是研究生,學什麼專業;如果是後者,你的公司要開發什麼樣的產品,語音識別是主要功能還是次要功能。

之所以這麼問,是我覺得有可能你並不需要自己實現一個語音識別系統,可能可以(付費地)使用已有的產品。如果你真是專攻語音識別方向的研究生,那麼導師不太可能不給你一點兒指導,而讓你自己在黑暗中摸索。

最後給點建議吧:如果要實現中文語音識別系統,你需要先找一個中文的訓練數據集(然而我自己並不知道具體有哪些,是否免費公開)。然後,如果你使用 Kaldi,那麼首先跑通一個示例,弄懂每個步驟以什麼為輸入,生成了什麼輸出;再修改示常式序以適應你自己的數據。


瀉藥了。看題主後來更新的信息,更像是請教一個學習計劃??我只是學語音的一名新手,入這門不久,不過真的愛上研究語音,所以如果題主想在這裡有所建樹,最好是由自己的興趣去主導你的努力。定一個階段計劃表的做法是不錯,不過不要被自己定製的計劃拖累了~

我一開始是學HTK3.4和3.5,現在在研究kaldi。HTK這個也是可以識別中文,也是可以識別題主所說日常句子那樣。無論是學HTK還是Kaldi,都要多看官方提供book,那都是精粹,內容是很多,就挑你需要的去看。如何提取特徵,怎樣實現HMM訓練,DNN怎麼構建,如何去HVite。跟著Demo去跑一次,就會發現很多問題要去深究,要去弄懂輸入輸出,每步的意義,對於baseline起到怎樣的提升等等…弄懂了如何做how,為什麼這麼做why,就可以多看資料去調參搭建更好的模型,例如用別的開源。

另外入門可以多看資料,中文的材料可以看牛人的博客,中文教材 語音信號處理 趙力的或者韓紀慶。要更深入了解,就多點看外文論文,追蹤前沿技術,可以看頂會或者期刊。

既然題主是研究生,那最好是多跟課題組交流,和師兄師姐夥伴的交流可以讓成長變的相當快!導師應該不會不給你指導吧,我每次在導師開的一門課上聽都收穫良多,可以填補很多細節。最後是,多做自我的歸納總結,讓技術學問沉澱下來。


題主的說話語氣要禮貌一點。知道你學什麼,有什麼基礎,才能給你更好的建議。

參考kaldi 的 thchs30 腳本慢慢看吧 沒有什麼捷徑 計劃就是按照腳本的順序一步一步看懂。

代碼 數據集都是開源的,先跑跑看。


cs224n 第13講,然後找找咋辦吧。。。。


瞅著題主的問話風格。。我覺得他是他導師開發出來的人工智慧。。。


首先要明確需求,包括需求的下限和上限。比如要開發一個漢語語音識別系統,那麼一種可能的下限就是能識別標準普通話讀出的常用詞,可能的上限是能識別一切漢語方言讀出的任意內容。

並且要明確這個系統的目的是什麼,是將語音轉化為文字,還是作為ai的輸入,也就是說這個系統是否要識別語義。

軟體生命周期的第一步永遠是需求分析。只有需求分析做對了,才有可能面向需求設計。設計是軟體開發的核心。需求分析是設計的前提。

這一步中給題主一個關鍵詞:面向對象分析(OOA) 和 面向對象設計(OOD)。

我們分析了需求以後要考慮到整個系統使用過程中有哪些成員參與,這裡的成員不單單是人,還包括使用中要操作的實體。

比如銀行系統包括 客戶 管理員 櫃員 賬戶 等幾個成員。因此這個系統也要分析清楚有哪些成員。然後建立領域模型。

領域模型做出來之後考慮領域模型中概念類間的關係和行為,把概念類進一步設計為設計類。

在這個過程中就要去考慮採樣感測器的問題了,了解清楚采進來的樣的數據特點是怎樣的,我們需要怎樣使用這些採樣。在這個基礎上來設計數據結構和演算法。

做完這些設計階段就差不多了。就可以編碼測試,然後進入下一個開發周期。

我們不妨把整個項目分為數個開發周期,每個周期有獨立的分析 設計 開發 測試階段。這種方法叫做迭代開發,迭代開發的好處在於不需要一開始就完整地分析所有需求,因為需求的變化是常見的不可預測的,想要一次性地把整個軟體完美地設計出來通常是不現實的。這就要求我們分階段不斷調整。


前面對於語音識別系統如何入門已經回答的很好了,這裡岔開談談別的

既然讀研,檢索一個領域並且制定學習/科研計劃就是你要學習磨練的一部分。不能事事想著伸手。希望這些「刺耳」的話對你有益。如果不舒服,算我沒說。


你這沒描述清楚,沒人能解答。

第一,你這個是什麼語音識別系統。

第二,你這要求用什麼做。

第三,你是學什麼的。


推薦閱讀:

聽力時,在距離音源較近的位置用較低的聲音播放,或在距離較遠的位置播放較大的聲音,分辨能力是否近似?
訊飛和搜狗最近都在秀的實時翻譯,哪裡可以體驗到?
如何從代碼角度對比評價HTK和KALDI的設計和可讀性?
語音識別、二維碼,誰才是移動互聯網真正的入口?
語音識別中的Lattice這個概念怎麼理解?

TAG:自然語言處理 | 語音識別 |