1. 程式人生 > >Kaldi學習手記(一):Kaldi的編譯安裝

Kaldi學習手記(一):Kaldi的編譯安裝

Kaldi是一款基於C++編寫的開源語音識別工具箱。這款工具既可以在Windows下編譯也可以在Linux下編譯。不過聽學姐說以後還是在Linux下做開發多一些,我就想幹脆順便把Linux環境熟悉熟悉,於是就安了個虛擬機器裝上了Ubuntu。文件裡面也說還是建議在Linux下使用Kaldi。好久沒用過Linux了,也不習慣在命令列下操作,編譯Kaldi還真是費了我一番功夫。下面把過程記錄一下。

一、下載

下載直接利用git版本控制系統就可以了,開啟終端,直接在你的實驗目錄下輸入命令:

git clone https://github.com/kaldi-asr/kaldi.git kaldi-trunk --origin golden

不一會就從github上下載下來了。當然,首先得確保你安裝了git。要是沒安裝的話,就先輸入:

sudo apt-get install git

安裝git版本控制軟體。

二、各目錄功能

下載完畢以後,cd kaldi-trunk進去看看下載了一些什麼東西。
Kaldi目錄
其中,./tools,./src和./egs這三個目錄是比較重要的。

./tools目錄下面全部都是Kaldi依賴的包。其中主要有:

  1. OpenFST:Weighted Finite State Transducer library,是一個用來構造有限狀態自動機的庫。我們知道隱馬爾科夫模型就可以看成是一個有限狀態自動機的。這是最終要的一個包,Kaldi的文件裡面說:If you ever want to understand Kaldi deeply you will need to understand OpenFst.誒,要學的好多。
  2. ATLAS:這是一個C++下的線性代數庫。做機器學習自然是需要很多矩陣運算的。
  3. IRSTLM:這是一個統計語言模型的工具包。
  4. sph2pipe:這是賓夕法尼亞大學linguistic data consortium(LDC)開發的一款處理SPHERE_formatted數字音訊檔案的軟體,它可以將LDC的sph格式的檔案轉換成其它格式。

./src目錄存放的是Kaldi的原始碼。./egs存放的是Kaldi提供的一些例子。我們現在要做的就是編譯安裝Kaldi依賴的各種庫,然後編譯安裝Kaldi。

三、Kaldi的編譯

安裝之前需要確保你安裝了這些軟體

apt-get
subversion
automake
autoconf
libtool
g++
zlib
libatal
wget

Ubuntu裡面都有,所以直接開始安裝。
首先安裝依賴包。在./tool目錄下輸入make,開始編譯,輸入make -j 4命令可以加快速度(多核並行處理)。
之後切換到./src目錄下,輸入./configure進行配置,然後輸入make depend,完成之後輸入make進行編譯。當然這個過程也可以並行處理加速,輸入make -j 4。經過漫長的編譯過程以後,就安裝完畢了。

四、執行一個例子

Kaldi自帶的例子都放在./egs目錄下。
這裡寫圖片描述
其中最簡單的就是yesno這個例子了。這是一個非常小的資料集,每一條記錄都是一系列yes或者no的語音,標註是由檔名來標註的。先執行一下。切換到./egs/yesno/s5目錄下,執行sudo ./run.sh命令。
這裡寫圖片描述
經過一段時間的訓練和測試,可以看到執行結果。
這裡寫圖片描述
WER為0.00。看來這個例子識別的還是挺準的。

PS:WER(Word Error Rate)是字錯誤率,是一個衡量語音識別系統的準確程度的度量。其計算公式是WER=(I+D+S)/N,其中I代表被插入的單詞個數,D代表被刪除的單詞個數,S代表被替換的單詞個數。也就是說把識別出來的結果中,多認的,少認的,認錯的全都加起來,除以總單詞數。這個數字當然是越低越好。

下面進入./waves_yesno目錄瞧一瞧。
這裡寫圖片描述
全部都是.wav格式的音訊檔案。可以開啟一個檔案聽一聽,發現是一個老男人連續不停地說yes或者no,每個檔案說8次。檔名中,0代表那個位置說的是no,1代表說的是yes。這個實驗沒有單獨的標註檔案,直接採用的是檔名來標註的。

相關推薦

Kaldi學習手記Kaldi編譯安裝

Kaldi是一款基於C++編寫的開源語音識別工具箱。這款工具既可以在Windows下編譯也可以在Linux下編譯。不過聽學姐說以後還是在Linux下做開發多一些,我就想幹脆順便把Linux環境熟悉熟悉,於是就安了個虛擬機器裝上了Ubuntu。文件裡面也說還是建議

Docker學習系列windows下安裝docker

阻止 statistic pro nta 雙擊 copyright ner notebook 現在 本文目錄如下: windows按照docker的基本要求 具體安裝步驟 開始使用 安裝遠程連接工具連接docker 安裝中遇到的問題 Docker的更新 Dock

Kaldi學習筆記——Kaldi的下載安裝編譯

Kaldi是一款基於C++編寫的開源語音識別工具箱。這款工具既可以在Windows下編譯也可以在Linux下編譯。本次我是在虛擬機器裝上了Ubuntu 16.04.03,64位,可以聯網。文件裡面也說還是建議在Linux下使用Kaldi。一、下載下載直接利用git版本控制系統

Kaldi學習手記: Kaldi 的I/O機制

一、命令列級 I/O 機制 命令列 I/O 是指在 shell 上呼叫編譯好的 Kaldi 工具的方法。比如,如果想檢視音訊檔案的時長,就可以使用這樣的命令 wav-to-duration scp:wav.scp ark,t:- 其中,wav-to

劍英的區塊鏈學習手記

strong mage git 人生 極客 lease 黑錢 開篇 png 開篇布拉拉 因為參與了小蟻的c#智能合約編譯器的開發,讓我第一次近距離接觸到區塊鏈技術。 以前我對區塊鏈技術的了解,只知道有一種叫做比特幣的玩意兒,以前有同事在幾百塊一個比特幣的時候屯了一批,後

一站式學習WiresharkWireshark基本用法

11g 實現 alt href ascii 根據 無線網絡 完成 analyze 按照國際慣例,從最基本的說起。 抓取報文: 下載和安裝好Wireshark之後,啟動Wireshark並且在接口列表中選擇接口名,然後開始在此接口上抓包。例如,如果想要在無線網絡上抓取流量

HLSL學習筆記基礎

pad ddx 做了 cto har 分割 with 圖形 content http://www.cnblogs.com/rainstorm/archive/2013/05/04/3057444.html 前言 五一在家無事,於是學習了一下HLSL,基於XAN4.0的。學習

EF6 學習筆記Code First 方式生成數據庫及初始化數據庫實際操作

view sqlserver 4.5 xpl 安裝 右鍵 ef6 字符串 ref 參考原文地址: https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-wit

Servlet學習筆記生命周期

磁盤 停止 生命 第一個 每一個 clas 瀏覽器 doget des 一、Servlet 生命周期:   Servlet 生命周期可被定義為從創建直到毀滅的整個過程。以下是 Servlet 遵循的過程:初始化——響應請求——終止——回收 Servlet 通過調用 in

JSP學習筆記JSP語法和指令

沒有 文件的 encoding 引入 2.0 .cn name blog .get 一、語法 1、腳本程序的語法格式:   腳本程序可以包含任意量的Java語句、變量、方法或表達式,只要它們在腳本語言中是有效的。 <% 代碼片段 %> 2、中文編碼問題   

tp5.0 學習虛擬環境安裝

安裝php admin cat code logs exe erro ron log 一、文件目錄: application: 應用目錄,開發文件存放地 extend:擴展 public:入口文件 thinkphp:核心代碼 vendor:第三方類庫 二、域名Apache配

C#可擴展編程之MEF學習筆記MEF簡介及簡單的Demo

com ring this exec hosting code .cn 引用 展開 在文章開始之前,首先簡單介紹一下什麽是MEF,MEF,全稱Managed Extensibility Framework(托管可擴展框架)。單從名字我們不難發現:MEF是專門致力於解決擴展性

《機器學習學習筆記線性回歸、邏輯回歸

ros XA andrew ID learn 給定 編程練習 size func 《機器學習》學習筆記(一):線性回歸、邏輯回歸 本筆記主要記錄學習《機器學習》的總結體會。如有理解不到位的地方,歡迎大家指出,我會努力改正。 在學習《機器學習》時,我主要是

算法學習筆記插入排序和線性查找

插入排序 算法學習 AS 獲取 ear array import 右移 創建 (一)插入排序 看下面這張圖片:把打牌時手上的牌抽象為一個列表A,j表示當前最新抓的牌的索引(先放到手上最右邊) 索引 j =0 時 A[j] = 3 j >= 1時, 1、我們拿到

Django學習筆記環境安裝與簡單實例

rom dex ftime not host 名稱 本機 turn perl Django學習筆記(一):環境安裝與簡單實例 通過本文章實現: Django在Windows中的環境安裝 Django項目的建立並編寫簡單的網頁,顯示歡迎語與當前時間 一、環境安裝 結合版

深度學習學習筆記logistic regression與Gradient descent 2018.9.16

寫在開頭:這是本人學習吳恩達在網易雲課堂上的深度學習系列課程的學習筆記,僅供參考,歡迎交流學習! 一,先介紹了logistic regression,邏輯迴歸就是根據輸入預測一個值,這個值可能是0或者1,其影象是一條s形曲線,由預測值與真實值的差距計算出loss function損失函式和cos

Javaweb學習筆記Servlet常見問題

1. 在server.xml中設定context路徑,如果Path值為“”,則可以訪問自己的頁面,無法訪問Tomcat主頁 2. 同樣的context路徑,path為空,卻啟動toncat失敗     解決:原因是有兩個相同的path路徑,空字元算相同的路徑 path=“”

javaweb學習筆記web入門簡介、tomcat

目錄 1.web入門 2.tomcat 2.1 Tomcat的安裝與使用 2.2 Tomcat的目錄結構 2.3 Web應用的目錄結構 1.web入門 B/S (Broswer -Server 瀏覽器端- 伺服器端)架構,其典型應用就是各種網站。它的特點是第一,不

機器學習筆記最小二乘法和梯度下降

一、最小二乘法 1.一元線性擬合的最小二乘法 先選取最為簡單的一元線性函式擬合助於我們理解最小二乘法的原理。 要讓一條直接最好的擬合紅色的資料點,那麼我們希望每個點到直線的殘差都最小。 設擬合直線為

Android學習心得

1、活動類處理啟動與關閉活動的相關方法及說明 方法 說明 StartActivity(intent) 使用引數意圖啟動新活動,此方法是重寫Context類實現的原始版本 startA