PyQt5番外篇:冲顶大会语音答题辅助小工具之解析篇——问题识别

4期

番外篇

问题识别

导读:问题识别其实很简单!

LEARN MORE

正文

1

上期我们介绍了UI的设计、问题采集。这期我们讲讲问题识别部分。

2

实现思路

问题识别的本质在于语音识别。语音识别该怎么做呢?

目前国内使用较多的语音识别SDK,一般是讯飞的语音识别和百度的语音识别。这里我选择百度的语音识别,为什么呢?

因为讯飞语音识别的SDK中Window版本的实现语言是C++,虽然我们可以通过Python ctypes模块进行调用,但是由于涉及到C++,改造起来对于初学者来说还是比较麻烦。而百度语音识别中有现成的Python调用范例,实现非常简单,所以推荐。

要实现上述功能的有一个前提:必须联网使用,不能离线识别

注册API

首先我们来到百度AI开发平台中的语音识别页面:http://ai.baidu.com/tech/speech

点击立即使用。

2. 我们登录百度AI开发平台后,选择创建应用。

3. 然后我们根据具体的需求填写相应的信息。

4. 我们返回列表,可以看到应用名称、AppID、API Key、Secret Key这些关键的参数。

如何使用API一些简单的说明

详细的文档说明在这里:http://ai.baidu.com/docs/#/ASR-Online-Python-SDK/top

这里我们使用百度语音识别的REST API方式,这是给开发者提供一个通用的HTTP接口。上传需要完整的录音文件,录音文件时长不超过60s。

语音格式支持:原始 PCM 的录音参数必须符合 8k/16k 采样率、16bit 位深、单声道,支持的格式有:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)。

注意事项

目前本SDK的功能同REST API,需要联网调用http接口 。REST API 仅支持整段语音识别的模式,即需要上传完整语音文件进行识别,时长不超过60s,并且没有其他额外功能。如果需要使用实时识别、长语音、唤醒词、自定义词库设置、语义解析等其它语音功能,请使用Android或者iOS SDK。

请严格按照文档里描述的参数进行开发,特别请关注原始录音参数以及语音压缩格式的建议,否则会影响识别率,进而影响到产品的用户体验。

目前系统支持的语音时长上限为60s,请不要超过这个长度,否则会返回错误。

快速入门

安装使用Python SDK有如下方式:

如果已安装pip,执行pip install baidu-aip即可(推荐)。

如果已安装setuptools,执行python setup.py install即可(需要下载 Python SDK)。

新建AipSpeech

AipSpeech是语音识别的Python SDK客户端,为使用语音识别的开发人员提供了一系列的交互方法。

参考如下代码新建一个AipSpeech:

在上面代码中,常量APP_ID在百度云控制台中创建,常量API_KEYSECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。

语音识别

向远程服务上传整段语音进行识别

举例,要对段保存有一段语音的语音文件进行识别:

返回样例:

返回数据参数详情错误信息

若请求错误,服务器将返回的JSON文本包含以下参数:

error_code:错误码。

error_msg:错误描述信息,帮助理解和解决发生的错误。

3

最后

本章主要是介绍Python SDK的使用,涉及到的知识点也不多。主要会调用就行了。虽然本次没有相应的资源提供下载,还是希望各位能关注:学点编程吧,谢谢!

哦,对了,讯飞语音识别的Python调用我也会写的,这个比百度语音复杂多了,单独成章,敬请关注!

请动动小手在微信公众号号中间的菜单,完成我们的满意度调查问卷,提升我们的服务质量,谢谢!

加入我们的学习交流QQ群,一起学习吧!

苹果用户也能打赏了,扫一扫下面的二维码吧!

看完本文有收获?请转发分享给更多人

猜你喜欢:

更多的PyQt5文章请在微信公众号/在线课程/图文教程中查找。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180122G0C62L00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券