开发者社区> xiaoyuaner> 正文

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

简介: ctypes 是 Python 的一个模块,它提供了C语言相关的数据类型,可以方便的调用C语言编写的DLL(Windows 动态链接库)和so(Linux动态链接库)。科大讯飞的语音识别客户端SDK提供了Linux下的C语言SDK,却没有Python的。
+关注继续查看

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教程
版权申明:若没有特殊说明,文章皆是猿人学原创,没有猿人学授权,请勿以任何形式转载。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基于python BiLSTM-CRF的命名实体识别 附完整代码
基于python BiLSTM-CRF的命名实体识别 附完整代码
53 0
基于python调用摄像头进行人脸识别,支持多张人脸同时识别
基于python调用摄像头进行人脸识别,支持多张人脸同时识别
22 0
如何用python识别银行卡号--详细教程
如何用python识别银行卡号--详细教程
39 0
python之图像背景识别
需求:在某个手机端项目中,有多个页面图片,但每个图片都做了相应的修改,由于这种图片非常多,高达上万张,每周有新的内容出现且需要回归。 在某些特定的节点,不允许相邻两张出现一模一样的图片,如果人去判定,非常非常耗时,于是需要自动化筛选,人工复核。
59 0
python小白0基础利用飞桨平台实现AI识别加口罩
python小白0基础利用飞桨平台实现AI识别加口罩
57 0
python +selenium识别不来click事件,出现报错
python +selenium识别不来click事件,出现报错
76 0
「Python」爬虫-7.验证码的识别
> 本文主要介绍如何处理一些网页中简单的验证码问题。~~(只提供简单的思路,随着技术的发展,一些验证码已经防范的非常好了,一般的解决方法可能过不了验证码这一关🤺~~
96 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
给运维工程师的Python实战课
立即下载
Python 脚本速查手册
立即下载
ACE 区域技术发展峰会:Flink Python Table API入门及实践
立即下载