UE4 集成訊飛聽寫插件

搞了幾天,有些坑記錄一下。

3個方面的知識需要學習

1、製作UE4插件

2、引入第三方庫

3、訊飛聽寫的api

 一看是參考 https://blog.csdn.net/u012793104/article/details/78067937

http://doc.xfyun.cn/msc_windows/%E8%AF%AD%E9%9F%B3%E5%90%AC%E5%86%99.html

API:http://mscdoc.xfyun.cn/windows/api/iFlytekMSCReferenceManual/qisr_8h.html 

 


整個插件架構:錄音 ->識別(訊飛語音聽寫,即上圖架構)->本地轉碼 以顯示

 主要需要了解的API:  QISRSessionBegin  需要你更改自己的參數,可以按照下載的案例改

QISRAudioWrite: 搞懂這個才能明白整個訊飛識別功能的機制

開發過程主要的問題表現爲打印信息有時並不是中文,而是未轉換的拼接字符串

所以好好看了看 下載的案例,和API 經過不斷調試才發現就是json的問題

之前的代碼 都是拼接所有 從 QISRGetResult獲得的結果,然後最後一步轉換,所以出現問題了.

 比如錄入"牀前明月光"

{"sn":1,
"ls":false,
"bg":0,
"ed":0,
"ws":
[
{"bg":1,"cw":[{"sc":0.0,"w":"牀"}]},
{"bg":1,"cw":[{"sc":0.0,"w":"前"}]},
{"bg":1,"cw":[{"sc":0.0,"w":"明"}]},
{"bg":1,"cw":[{"sc":0.0,"w":"月光"}]}
]
}
{"sn":2,"ls":true,"bg":0,"ed":0,
"ws":
[{"bg":0,"cw":[{"sc":0.0,"w":"。"}]}]
}

如果結果爲上面,則無法轉換json以致原樣輸出,因爲這是直接將兩個json對象拼接了。

{"sn":1,
"ls":false,
"bg":0,
"ed":0,
"ws":
[
{"bg":1,"cw":[{"sc":0.0,"w":"牀"}]},
{"bg":1,"cw":[{"sc":0.0,"w":"前"}]},
{"bg":1,"cw":[{"sc":0.0,"w":"明"}]},
{"bg":1,"cw":[{"sc":0.0,"w":"月光"}]}
]
}

這種情況就會成功輸出中文。

所以問題是 我獲得的結果有時被加了一個句號,我想着應該是語法的緣故。

所以我換了一個方法,先解析再拼接 解決了問題。

 ----

ps:測試要時刻注意麥克風是否正常·,別搞自己

下載地址:

github:https://github.com/huzhongyidihao/XFPlugin

 搬運自:https://www.cnblogs.com/yuedongdeguangzi/p/9196957.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章