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