您现在的位置是:首页 > 文章详情

Python用ctypes调用动态库的方式使用科大讯飞语音识别

日期:2019-05-07点击:471

ctypes 是 Python 的一个模块,它提供了C语言相关的数据类型,可以方便的调用C语言编写的DLL(Windows 动态链接库)和so(Linux动态链接库)。科大讯飞的语音识别客户端SDK提供了Linux下的C语言SDK,却没有Python的。有了ctypes,我们就可以很轻松的用Python来使用科大讯飞的语音识别了。

b50e784be9117ccc5f008fdd45679e52fb7

通过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的更详细说明可以参考官方文档。

文章来源于:猿人学网站的python教程
版权申明:若没有特殊说明,文章皆是猿人学原创,没有猿人学授权,请勿以任何形式转载。

原文链接:https://yq.aliyun.com/articles/701576
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章