Python用ctypes调用动态库的方式使用科大讯飞语音识别
2019-03-14 15:58
471 查看
我的学习笔记来自于猿人学Python教程
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的更详细说明可以参考官方文档。
(adsbygoogle = window.adsbygoogle || []).push({});相关文章推荐
- python3.x 使用http-post方式调用webservice
- Python 使用ctypes调用 C 函数
- Linux Debugging(七): 使用反汇编理解动态库函数调用方式GOT/PLT
- Python:使用ctypes库调用外部DLL
- Python:使用ctypes库调用外部DLL(转)
- Python:使用ctypes库调用外部DLL 数据类型对应
- python学习笔记--使用ctypes调用C函数
- (原)python使用ctypes调用C/C++接口
- Python使用ctypes调用C/C++的方法
- Python调用ctypes使用C函数printf
- Python使用ctypes调用C函数传参处理
- 使用python2.7中ctypes库调用windows下的dll
- ## 人生苦短我用python[0x08] 使用ctypes调用c语言接口 ##
- 使用反汇编理解动态库函数调用方式GOT/PLT
- 使用Python调用工作目录下所有快捷方式
- 使用python脚本,调用post方式监控服务器状态
- Python:使用ctypes库调用外部DLL(转)
- python中使用ctypes调用MinGW生成的动态链接库(dll)
- python中使用ctypes调用MinGW生成的动态链接库(dll)
- python使用ctypes模块调用windowsapi获取系统版本示例