Python用ctypes調(diào)用動態(tài)庫的方式使用科大訊飛語音識別
ctypes 是 Python 的一個模塊,它提供了C語言相關的數(shù)據(jù)類型,可以方便的調(diào)用C語言編寫的DLL(Windows 動態(tài)鏈接庫)和so(Linux動態(tài)鏈接庫)??拼笥嶏w的語音識別客戶端SDK提供了Linux下的C語言SDK,卻沒有Python的。有了ctypes,我們就可以很輕松的用Python來使用科大訊飛的語音識別了。
通過LoadLibrary()函數(shù)加載動態(tài)庫:
xflib?=?ctypes.cdll.LoadLibrary('msc/libmsc.so')
在Python里面調(diào)用C函數(shù)時主要是注意參數(shù)的類型。語音識別的接口的具體參數(shù)可以參考其提供的文檔,比如接口函數(shù):
const?char*?MSPAPI?QISRSessionBegin(?const?char*?grammarList,?const?char* params,?int*?errorCode?)
返回的是一個char指針作為sessionID以供后續(xù)接口作為參數(shù)使用,在Python里面要用ctypes.c_voidp類型:
ret?=?ctypes.c_int() sessionId?=?ctypes.c_voidp() sessionId?=?xflib.QISRSessionBegin(None,?param1,?ret)
調(diào)用其它接口函數(shù)時,還可能用到如下ctypes的類型和接口:
ctypes.create_string_buffer()
ctypes.addressof()
ctypes.byref()
ctypes.string_at()
ctypes.c_char_p()
ctypes.c_uint()
關于ctypes的更詳細說明可以參考官方文檔。
∟學習筆記整理于python教程
語音識別
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。