基於HTK的連續語音識別系統搭建學習筆記(一)

2021-07-11 18:12:01 字數 2751 閱讀 8662

該系統能夠識別連續說出的數字串和若干組姓名。建模是針對子詞(sub-word, eg. 音素),具有一定的可擴充性。當加入乙個新名字時,只需修改發音字典和任務語法即可。模型為連續混合高斯輸出,運用語音決策樹聚類形成的繫結狀態式三音素。

1.資料準備

需要錄製訓練資料和測試資料。為進行校準,還需要資料的標註文字。這裡用任務語法(task grammar)產生真值文字(ground truth)。為了處理訓練資料,需要定義乙個語音集合和乙個字典用以涵蓋訓練和測試資料中涉及的單詞。

[step 1]任務語法定義

建立檔案:gram

建立位置:根目錄下

檔案內容:

上面的語法是高層表示,必須通過hparse轉成htk可用的底層表示。

執行:hparse gram wdnet

生成:wdnet

生成位置:根目錄

生成內容:

[step 2]字典定義

建立資料夾:dict lists

放入位置:dict

建立檔案:global.ded

建立位置:根目錄下

檔案內容:

此例中利用beep語音字典,除去其中的重音符,並在每個發音後加入sp(short pause,小停頓)。如果有啞音標誌,就用mp命令把sil和sp合併成sil。

建立檔案:wlist

建立位置:lists

建立內容:

執行:hdman -m -w .\lists\wlist -g global.ded -n .\lists\monophones1 -l dlog .\dict\dict1 .\dict\beep .\dict\names

生成檔案:monophones1 (用於用到的音素列表)

生成位置:lists 

生成檔案:dlog(引數檔案記錄過程)

生成位置:根目錄

生成檔案:dict1

生成位置:dict

注1 :實際上,這裡應該手工修改 dict1 ,為sent-end 和sent-start 加上無輸出標誌,

為了展示隊後面步驟地影響,這裡故意不新增。

注:hdman工具的具體詳細解釋以及使用可以參看htk book p262 

[step 3]錄製語音資料

建立資料夾:labels

hsgen工具可以生成符合task grammar的句子,用來指導錄音(htk book裡叫sentence prompts):

執行:

hsgen -l -n 140 wdnet.\dict\dict1>.\labels\trainprompts

執行:hsgen -l -n 15 wdnet .\dict\dict1>.\labels\testprompts

根據上述指令檔案,錄製相應的140個訓練用語音資料檔案和15個測試用語音資料檔案。

生成檔案:trainprompts testprompts

乙個錄製的例子如下: 

hslab .\data\train\speech\s0001

建立資料夾:scripts labels 

建立檔案:prompts2mlf(htk scripts目錄下自帶)

建立位置:scripts

perl指令碼prompts2mlf(在scripts目錄下htk自帶)可以把錄音文字截成單詞級真值檔案。

執行:perl .\scripts\prompts2mlf.\labels\trainwords.mlf .\labels\trainprompts

perl .\scripts\prompts2mlf.\labels\testwords.mlf .\labels\testprompts

注:要在每個lab路徑之前加上「*/」

生成檔案:trainwords.mlf testwords.mlf

生成位置:labels

建立檔案:mkphones0.led

建立位置:根目錄

建立內容:

ex命令表示按照字典dict1進行展開,is表示在每個話語的前後插入標誌,de一行表示phones0.mlf中單詞間不用sp隔開。

執行:

hled -l * -d .\dict\dict1 -i .\labels\phones0.mlf mkphones0.led .\labels\trainwords.mlf

生成檔案:phones0.mlf

生成位置:labels

HTK搭建大詞彙量連續語音識別系統(三)

十 繫結三音素 指令碼mktri.led wb sp wb sil tc執行命令 hled n labels triphones1 i labels wintry.mlf scripts mktri.led labels aligned.mlf指令碼mktri.hed由指令碼命令生成 perl sc...

基於語音的情緒識別系統(Python)

源 連線 emotion recognition using speech 原鏈結是給的原始的版本,我在 win10 上執行會報錯,比如下邊的的 pyauto 無法安裝的問題。我已經將相應的安裝包上傳到 gitee 上了。碼雲位址 語音情緒識別 在 emotion recognition using...

語音識別系統搭建

搭建語音識別實驗記錄 pip 快速安裝 國內清華源 命令 pip install i 庫名 阿里映象安裝tensorflow pip install i tensorflow gpu 1.13.1語音識別系統 別人的部落格中找到可能出現的問題所在,應該設定gpu按需分配,再看本系統的執行檔案。起初,...