用Python來使用科大訊飛語音識別,so easy


在人工智能高速發展的今天,語音識別技術被帶入到人們的工作和生活中,開始被越來越多的人關注和使用,今天,當各種在線客服被機器人客服代替,當速記翻譯館被語音識別代替,甚至當收銀員、駕駛員、工廠工人、普通文書和律師都被人工智能代替時,人們也越來越焦慮。下面這篇文章分享Python用ctypes調用動態庫的方式使用科大訊飛語音識別。

ctypes 是 Python 的一個模塊,它提供了C語言相關的數據類型,可以方便的調用C語言編寫的DLL(Windows 動態鏈接庫)和so(Linux動態鏈接庫)。科大訊飛的語音識別客戶端SDK提供了Linux下的C語言SDK,卻沒有Python的。有了ctypes,我們就可以很輕松的用Python來使用科大訊飛的語音識別了。

 

通過LoadLibrary()函數加載動態庫:

xflib = ctypes.cdll.LoadLibrary('msc/libmsc.so')

 

在Python里面調用C函數時主要是注意參數的類型。語音識別的接口的具體參數可以參考其提供的文檔,比如接口函數:

const char* MSPAPI QISRSessionBegin( const char* grammarList, const char*
params, int* errorCode )

 

返回的是一個char指針作為sessionID以供后續接口作為參數使用,在Python里面要用ctypes.c_voidp類型:

ret = ctypes.c_int()
sessionId = ctypes.c_voidp()
sessionId = xflib.QISRSessionBegin(None, param1, ret)

 

調用其它接口函數時,還可能用到如下ctypes的類型和接口:

  • ctypes.create_string_buffer()
  • ctypes.addressof()
  • ctypes.byref()
  • ctypes.string_at()
  • ctypes.c_char_p()
  • ctypes.c_uint()

關於ctypes的更詳細說明可以參考官方文檔。

 

 

文章整理於www.yuanrenxue.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM