Maix-Speech是專為嵌入式環(huán)境設計的離線語音庫,設計目標包括:ASR/TTS/CHAT
作者的設計初衷是完成一個低至Cortex-A7 1.0GHz 單核下可以實時運行的ASR庫。
目前市面上的離線語音庫非常稀缺,即使有也對主控要求很高,Maix-Speech 針對語音識別算法進行了深度優(yōu)化,在內(nèi)存占用上達到了數(shù)量級上的領先,并且保持了優(yōu)良的WER。
基本情況
Maix-Speech剛發(fā)布了一個面向嵌入式設備的離線語音識別庫,可以在低至Coretx-A7 1.0GHz, 64MB系統(tǒng)內(nèi)存的嵌入式設備上實時運行(RTF<1.0)
最低內(nèi)存占用25MB,磁盤占用35MB(含語言模型);最優(yōu)aishell wer約5.4%;支持流式識別,支持連續(xù)數(shù)字識別,關鍵詞識別,連續(xù)大詞表語音識別等
支持:x86_64, armv7, aarch64, riscv64 等多種硬件平臺,支持 AWNN, Zhouyi AIPU 加速。
感興趣的可以跳轉(zhuǎn)githuib來點個贊。
鏈接:https://github.com/sipeed/Maix-Speech
Maix-Speech 的優(yōu)勢
- 多平臺支持
Maix-Speech 支持多種嵌入式平臺
- 極低的內(nèi)存要求和優(yōu)良的正確率
Maix-Speech的內(nèi)存占用相對于市面上的其他語音識別框架有數(shù)量級上的領先優(yōu)勢,并且保持良好的WER水平。
Maix-Speech最低可以實時運行(RTF<1)于典型的 1.0GHz Cortex-A7 內(nèi)核的芯片上,并且最低僅占用25MB左右內(nèi)存, 也就意味著它可以實時運行在典型的內(nèi)封64MB內(nèi)存的A7芯片上。
常見離線語音識別工具對比- 細節(jié)優(yōu)化
優(yōu)化了openfst及wfst解碼,使得整個解碼圖無需載入內(nèi)存即可實時讀取解碼。
可選載入內(nèi)存的LG.fst解碼圖,壓縮為lg.sfst, 尺寸為原始fst的1/3左右,占用內(nèi)存為kaldi載入相同fst的內(nèi)存占用的 1/20左右(kaldi需要6.5倍左右內(nèi)存載入fst文件)。
使用新的sMBR等效的方式(無需修改loss)進行鑒別性訓練,提升流式識別的準確率
效果展示
在全志 R329 上的運行效果,視頻中板卡為 MaixSense
連續(xù)大詞匯量語音識別(LVCSR)連續(xù)中文數(shù)字識別 (DIGIT)關鍵詞識別(KWS)Maix-Speech 工程結(jié)構(gòu)
├── assets
│ └── test_files # 提供的測試文件,方便上手測試
├── components # 組件
│ ├── asr_lib # 組件 asr_lib
│ │ ├── CMakeLists.txt # 組件配置文件
│ │ ├── include # 頭文件
│ │ ├── Kconfig # 組件 menuconfig 配置文件
│ │ ├── lib # 各個平臺的庫文件
│ │ └── src # 源文件
│ └── utils # 工具類組件,包括了跑分、字體等
├── Kconfig # 最頂級的 menuconfig 配置文件
├── LICENSE # 開源協(xié)議(證書)
├── projects # 工程
│ └── maix_asr # ASR 工程
│ ├── CMakeLists.txt # 工程配置文件
│ ├── main # 工程里面的主組件
│ └── project.py # 構(gòu)建腳本,方便輸入命令
├── README.md # 項目首頁英文文檔
├── README_ZH.md # 項目首頁中文文檔
├── tools # 項目構(gòu)建相關代碼,一般不用看
└── usage_zh.md # 使用方法
構(gòu)建代碼
項目支持多平臺, 不同的平臺使用的工具鏈和庫可能有差異,注意區(qū)別。
PC環(huán)境的推薦系統(tǒng)為 Ubuntu 18.04 以上,gcc 7.5 以上,CMake 3.20以上,失能conda虛擬環(huán)境。其他環(huán)境可能有部分軟件需要額外設置,不建議新手使用。
其他嵌入式環(huán)境的交叉編譯方式可能存在一些細節(jié)使用問題,商業(yè)用戶可以聯(lián)系support@sipeed.com 獲取支持。
- 環(huán)境準備
首先電腦安裝工具鏈和庫(Ubuntu 為例)
sudo apt update
sudo apt install git python3 cmake
python 只是用在編譯腳本上的,方便簡單地輸入編譯命令, 如果你電腦里有任何一個版本的 python 都是可以的, 為確保不出問題最好是Python3。如果實在不想裝 python , 也可以手動使用 cmake 命令進行編譯。
x86 (Linux) 或 在跑在其它架構(gòu)的系統(tǒng)里編譯,比如在R329或樹莓派的系統(tǒng)里使用GCC編譯 安裝工具鏈和庫(Ubuntu為例)。
sudo apt install build-essential libasound2-dev
交叉編譯 下載工具鏈,并解壓到指定文件夾 比如R329, 從 realease 下載 r329_toolchain.tar.gz, 并解壓到一個路徑,比如 /opt/r329_toolchain 比如 v83x, 在這里找到工具鏈下載鏈接并下載工具鏈,解壓到一個文件夾,比如/opt/toolchain-sunxi-musl
- 克隆代碼
git clone https://github.com/sipeed/Maix-Speech
- 編譯
x86(Linux)或在跑在其它架構(gòu)的系統(tǒng)里編譯,比如在R329或 樹莓派 的系統(tǒng)里使用GCC編譯
注意,conda 環(huán)境下工具鏈可能有問題,如果出現(xiàn)錯誤可以先嘗試 退出conda環(huán)境使用原生環(huán)境編譯。
cd projects/maix_asr python project.py clean_conf # 清除工具鏈配置 python project.py menuconfig # 配置選擇芯片架構(gòu)(ARCH),默認是 x86 python project.py build#python project.py rebuild # 如果有新建文件需要使用 rebuild # python project.py build --verbose # 打印詳細構(gòu)建過程 ./build/maix_asr # 測試下運行可執(zhí)行文件,可以執(zhí)行即可 python project.py clean # 清除構(gòu)建內(nèi)容 python project.py distclean # 徹底清除構(gòu)建內(nèi)容, 包括 menuconfig 內(nèi)容
-
語音識別
+關注
關注
38文章
1739瀏覽量
112632 -
全志
+關注
關注
24文章
247瀏覽量
53119
發(fā)布評論請先 登錄
相關推薦
評論