-
slides
使用EdgeTpu應用在語音模型預測之簡單實例 -
Medium 文章
[1] 使用EdgeTpu應用在語音模型預測之簡單實例(一)-前言與開發環境配置
[2] 使用EdgeTpu應用在語音模型預測之簡單實例(二)-語音資料集處理
[3] 使用EdgeTpu應用在語音模型預測之簡單實例(三)-建立模型與訓練
[4] 使用EdgeTpu應用在語音模型預測之簡單實例(四)-模型轉換格式為tflite
[5] 使用EdgeTpu應用在語音模型預測之簡單實例(五)-使用 edgetpu_compiler 轉換 EdgeTpu 可識別 tflite模型
[6] 使用EdgeTpu應用在語音模型預測之簡單實例(六)-進行 EdgeTpu 模型預測
[7] EdgeTpu操作環境安裝配置筆記-使用Google Coral USB Accelerator for Ubuntu
[8] EdgeTpu操作環境安裝配置筆記(二)-使用Google Coral USB Accelerator for Windows 10
由於Tensorflow2新版本發佈,對於tf-nightly版本也受影響,原本使用tf-nightly1.15已無法再透過pip安裝取得。
現在可以使用1.15版本Tensorflow來取代原本tf-nightly1.15,參考 tensorflow 1.15.2
pip install tensorflow==1.15.2
根據Google Coral 官方在 Quantization 區塊內說明,目前版本已經可以使用以下方法:
- Quantization-aware training(Qat),此為本專案主要使用方法。
- Full integer post-training quantization(post-training quantization)。
需要注意使用Tenserflow版本問題,目前TF2.0還尚未完整支援這兩種量化方法,建議運行使用 Tensorflow 1.15,如果使用比這更新開發版本號時,須注意在 Train_Data.py 內所調用 Tensorflow API Function 支援問題,在目前版本號有些 API Function在更高開發版本號會被做更改或移除,有時你可能會遇到裝了1.15版本的TF,但是卻在執行模型建置階段時發生以下錯誤
ImportError: cannot import name 'dense_features'
請確認 pip list 內 tf-estimator-nightly 版本號是否安裝到2.x版,如果是請移除掉並重新安裝 1.14.0.dev2019062701 版本號。
pip install tf-estimator-nightly==1.14.0.dev2019062701
你必須了解Qat量化在實作架購上,所調用 tf.contrib.quantize api function 內容分別為:
在create_training_graph與create_eval_graph兩者在專案上,實際如何實作請參閱 使用EdgeTpu應用在語音模型預測之簡單實例(三)-建立模型與訓練 內容。
使用在Tensorflow官方Simple Audio Recognition 例子內所使用之語音資料集speech_commands_v0.02.tar.gz
- audio_feature_txt
已事先擷取出語音特徵並存成文字檔。如果要使用此資料集,請在專案目錄內log_file/建立一個audio_feature目錄,將壓縮檔內audio_feature/底下所有檔案目錄移動到audio_feature底下。 - audio_feature_wav
原始語音wav檔
使用 Python - Librosa
讀取音檔內容使用 --> librosa.core.load
擷取MFCC特徵 --> librosa.feature.mfcc
完整程式碼在 Load_Data.py
(1).建立虛擬環境
For Windows:
Virtualenv 指定一個虛擬環境名稱 --python=指定Python Version
For Ubuntu:
Virtualenv 指定一個虛擬環境名稱 --python=指定Python Version
(2).進入虛擬環境
For Windows:
虛擬環境目錄所在位置\虛擬環境目錄名稱\Scripts\activate
For Ubuntu:
虛擬環境目錄所在位置/虛擬環境目錄名稱/bin/activate
(3).虛擬環境安裝Python Package
使用讀取套件清單型式安裝,清單檔案在 Install_Tools/requirement_list/ 底下,根據對應的系統找到 requirement_coral.txt
執行以下安裝指令:
pip install -r requirement_coral.txt
關於 Edgetpu python api library 安裝:
For Windows:
請使用 Install_Tools/Wheel/EdgeTPU Python API/Windows/edgetpu-2.13.0-cp36-cp36m-win_amd64.whl
pip install edgetpu-2.13.0-cp36-cp36m-win_amd64.whl
OR
pip install https://dl.google.com/coral/edgetpu_api/edgetpu-2.13.0-cp36-cp36m-win_amd64.whl
可參考 Edge TPU Python API for Mac and Windows
For Ubuntu:
請參考 Edge TPU Debian packages
(4).離開虛擬環境
For Windows:
deactivate
For Ubuntu:
deactivate
Step 1. 取得原始語音wav檔
請先下載 audio_feature_wav,下載完畢會是一個壓縮檔(audio_data.zip),解壓縮到自己指定位置。
Step 2. 設置語音wav檔來源位置
在Config.py內 data sources settings部份,設置來源所在根目錄位置目錄名稱。
Audio_Data_Directory_Root = "/home/jyu/Data" # 所在根目錄位置
Audio_Data_DirectoryName = "audio_data" # 目錄名稱
Step 3. 執行語音特徵擷取
執行之前請在專案目錄內log_file/底下,建立一個audio_feature空目錄,完成後在執行Gen_Datafile.py。
python Gen_Datafile.py
執行完畢之後,會將擷取出來特徵結果文字檔,放在log_file/audio_feature/,每一個類別結果都會存放在自己類別名稱命名之目錄,同時會在log_file/audio_classlabels/底下產生分類對應表(audio_classlabels.txt)
audio_classlabels.txt:
0 happy
1 off
2 bird
3 tree
4 follow
5 up
6 house
7 learn
8 four
9 on
10 backward
11 three
12 no
13 seven
14 left
15 one
16 sheila
17 visual
18 eight
19 down
20 cat
21 five
22 dog
23 two
24 nine
25 go
26 bed
27 marvin
28 yes
29 right
30 zero
31 stop
32 wow
33 forward
34 six
Step 4. 模型建置、訓練、輸出
請執行Gen_Datafile.py。
python Train_Data.py
內部執行程序為:載入特徵資料-->資料處理及產生資料集-->建立模型-->訓練模型-->輸出模型-->存放pb模型在model/model_pb/
Step 5. pb模型轉換成tflite模型、tflite模型再編譯成edgetpu可識別模型
請執行Model_pb_to_tflite.py。
python Model_pb_to_tflite.py
轉換完成tflite模型存放在tflite_model/ASR_Model.tflite
並且在終端機上會看到一則訊息為:
可在終端機使用下列命令,來進行EdgeTPU Compiler TFLite model
>> edgetpu_compiler -s /home/jyu/Program/Audio_Speech_Recognition_TPU_Demo/tflite_model/ASR_Model.tflite <<
複製顯示命令並貼在終端機上執行
edgetpu_compiler -s /home/jyu/Program/Audio_Speech_Recognition_TPU_Demo/tflite_model/ASR_Model.tflite
最後編譯轉換完成tflite模型存放在tflite_model/ASR_Model.tflite
Step 6. 使用 Accelerator 進行分類預測
請將 Google Coral Accelerator 插入USB,執行classify_ASR.py。
python classify_ASR.py