原創: [email protected]
時間: 2020/04/14
參考: 實時語音喚醒
文章目錄
0x00 Paper
- 實時 KWS
- 在移動端
- 使用了時間卷積 TCN
- MFCC作爲網絡的輸入
- 推理速度很快
- 開源了代碼並提供了基準模型
- 叫做TC-ResNet
0x01 爲了解決什麼問題
1.1 KWS系統中的主要的問題
- 高準確率
- 低延時
- 作者測試了真正的延遲性
- 將考慮內存損耗和不同平臺的因素
- 之前的方法通常使用延遲作爲推理時間的指標
- 而延遲時間的指標往往選擇網絡執行的乘法和加法的計算量或者網絡的乘法次數
- 忽略了內存成本和不同平臺的因素
- 作者測試了真正的延遲性
0x02 提出了哪些創新點
2.1 提出了TC-ResNet
- 一個在移動端具有更快(385倍速度提升)更高準確率的實時KWS
- 在這個 Google Speech Commands Dataset 上比現有的CNN-KWS效果更好
2.2 開源了項目代碼和測評的基準
- https://github.com/hyperconnect/TC-ResNet
2.3 時間卷積 TCN
- 提高了性能並且減少了計算量
- 與2D 卷積相比
0x03 時間卷積 TCN
3.1 痛點
- 小核CNN難以同時獲取高頻和低頻信息
- 計算量大
3.2 2D to 1D
-
首先音頻數據轉成MFCC, MFCC作爲網絡的輸入
- t-f 圖, t :time f:feature
-
TCN 把MFCC轉成了時間序列數據,而不是image
-
t*f*1 —> t*1*f
-
把MFCC的維度當成通道數
-
3.3 優點:
- 具有更大的感受野
- 計算量減少
3.4 網絡結構
-
沒有biases
-
bn的作用是 scale & shift
-
使用了ResNet結構
- 卷積核是m1 而不是 33
- 第一層m爲3, 其他層m爲9
-
有使用一個寬度係數 width multiplier
- 用來增加或者減少每一層的通道數
- 比如原來是{16, 24, 32, 48} ,係數爲1.5 就變成了{24, 36, 48, 72},命名方式爲
TCResNet8-1.5
0x04 實驗
4.1 數據集
- Google Speech Commands Dataset
- 用文件的hash值進行分類,train/val/test 爲 8:1:1
- 增強方式
- 隨機shift
- 加噪聲
4.2 評估方式
- accuracy
- ROC
4.3 測評指標
- 準確率
- FLOPs
- inference time
- 參數總數
4.4 作者提供
- models
- 據說Res 15 效果最好
- tf lite models
- TensorFlow Lite Android benchmark tool
- 判斷推理時間的好壞