搞了幾天,有些坑記錄一下。
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