-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run ASRT on smartphones. #328
Comments
補充:
|
更新:
轉頻譜的部分目前改回原本Spectrogram類下的run
|
不建议直接在手机端运行,否则计算性能和依赖环境的安装配置都较为复杂,最佳方案是模型部署于服务器,手机通过API接口调用。具体讲解可以看AI柠檬博客相关文章。 |
如果实在要在手机端部署也可以,那就需要你自行用对应平台支持的框架重写一遍推理能力了 |
您好,我們的服務器在多用戶調用時的響應速度與不如預期,後續我有自己編寫一套透過socket的TCP+UDP實踐註冊與傳遞語音包的多進程程序,但在多用戶組的情況下響應也是不如預期。(上述問題可能是存在我們的硬體配置或網路等) 因此我想透過ONNX與TF-Lite來實現移動設備推理,我剛剛實際測試已經可以生成結果了,稍晚會把代碼發上來(python的測試代碼)。後續應該會使用java開發app程序,那這部分的工作應該如下:
我認為如果可以確定python的數據格式與java上的差異,應該可以正確運行 |
单进程因为只有一个计算图资源,多用户并发调用响应速度慢是很正常的,你需要做的是多实例集群部署,负载均衡,而不是单纯的改通信协议。AI模型部署本身就是很耗费资源的。 |
感謝nl8590687對於製作ASR服務的意見與提點,對於TF-lite,模型只要可以轉換,在android有支援的版本下有硬體加速。我認為coreML也是如此(我還沒有了解此部分)。 我已經實踐了在Android上使用ASRT訓練的模型(轉為TF-lite)進行推理。 https://github.com/Evanston0624/ASRT_model_Android/tree/main 上述的庫主要實踐了:
**在前三個階段在小樣本時的輸出數值跟python上相同。 尚未實踐
將ASRT訓練的模型轉為TF-lite的代碼後續會補上 |
更新了ASRT模型轉換為onnx、tf-lite與core-ml的代碼: 這個子專案包含了一個ASRT的預訓練模型(比ASRT提供的數據集多了CV14.0,發音多了三個),還有三個轉換好的模型。子專案可以使用python進行onnx、tf-lite的轉換與推理,後續會完善量化評估等資訊。 對於手機運行的效能(android & ios),因為我不擅長編寫手機端 因此我有合作的工程師會一起完善這部分,對於手機版本支援與效能評估會在後續進行完整測試後補上。 |
我希望在android & IOS上運行ASRT,我使用python進行後續的測試
首先我將音檔讀入是使用:
接下來我讀取ASRT的模型參數(這個模型除了原始數據外,還加入了CV的TW數據。
我透過上述的代碼取得欲訓練的模型,trained_model是包含CTC loss的,因此我使用base_model 進行轉換。我共使用了ONNX與TF_lite進行測試:
TF_lite:
ONNX:
接下來我使用了修改過的Spectrogram進行特徵提取
我在原始的Spectrogram類參考run創建了onnx_run,實際上只是匹配輸入參數的維度等資訊。
接下來透過adaptive_padding將輸入的特徵轉換成跟原始輸入相同的尺寸
經由上述轉換後的模型輸出結果,都是空白塊分數最高,後續調用tf.nn.ctc_beam_search_decoder與K.ctc_decode就沒有意義了。
想請問是否有相關的研究或實踐方法可以推薦?又或者我需要提供更多的測試或特定文件?
感謝
The text was updated successfully, but these errors were encountered: