个人学习笔记来自于猿人学Python教程python
ctypes 是 Python 的一个模块,它提供了C语言相关的数据类型,能够方便的调用C语言编写的DLL(Windows 动态连接库)和so(Linux动态连接库)。科大讯飞的语音识别客户端SDK提供了Linux下的C语言SDK,却没有Python的。有了ctypes,咱们就能够很轻松的用Python来使用科大讯飞的语音识别了。session
经过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类型:ui
ret = ctypes.c_int() sessionId = ctypes.c_voidp() sessionId = xflib.QISRSessionBegin(None, param1, ret)
调用其它接口函数时,还可能用到以下ctypes的类型和接口:spa
关于ctypes的更详细说明能够参考官方文档。指针