腾讯 AI 开放平台 开放了语音、图像等多种 AI 功能接口。本文尝试基于 python 完成对语音识别接口的本地调用。
1. 准备工作
API 调用需要身份认证。我们首先需要注册并获得 AppID 和 AppKey。
在官网注册后,进入控制台,创建一个新应用,并在接口选择栏,为应用勾选“语音识别”。应用创建成功后,记下 AppID 和 AppKey。
2. 接口鉴权
接口鉴权的要求见官方说明。为完成鉴权,我们需要定义一些辅助函数,代码见这里。
2.1 哈希
认证需要用到 MD5 哈希算法,这里我们调用 hashlib 库的实现。
import hashlib
def md5(string):
md = hashlib.md5()
md.update(string)
md5 = md.hexdigest().upper()
return md5
2.2 签名
认证要求使用包括 AppKey 在内的参数拼接字符串的 MD5 值做为签名,其中 AppKey 要位于字条串最后:
def signify(args, app_key):
query_str = urlencode(args)
query_str = query_str + '&app_key=' + app_key
signiture = md5(query_str)
return signiture
参数需要按键值排序,实现如下:
import urllib
def urlencode(args):
tuples = [(k, args[k]) for k in sorted(args.keys()) if args[k]]
query_str = urllib.urlencode(tuples)
return query_str
3. 语音识别
语音识别接口的具体调用信息见官网说明,提供了整段语音和流式两种调用方式。这里我们识别整段语音识别及 AI Lab 流式语音识别两个接口的调用。完成代码见这里。
调用使用的是 post 方式,简单封装如下: