最近在处理语音检索相关的事。
其中用到语音识别调,用的是讯飞与百度的api,前者使用js是实现,后者用python3实现(因为自己使用python)
<强>环境:强>
python3.5
centos 7
<>强流程强>
整个百度语音识别rest api使用分为三部分:
1(申请操作)创建应用,获取应用的API密匙以及密钥。
2(程序实现)通过已知的应用的API密匙以及密钥,发送帖子请求到https://openapi.baidu.com/oauth/2.0/token获取令牌
3(程序实现)通过上步骤获取的令牌,通过帖子,发送相关的语音信息到http://vop.baidu.com/server_api,获取识别结果。
以上过程参考百度语音开发文档,或者网上的资料。
<强> python实现强>
程序整体如下:
进口的要求 进口json 进口uuid 进口base64 def get_token (): url=" https://openapi.baidu.com/oauth/2.0/token " grant_type=" client_credentials " api_key=" NzGBYD0jPFDqVT8VHRYa * * * * " #自己申请的应用 secret_key=" 8439155 b9db2040b4acd13b0c * * * * *”#自己申请的应用 data=https://www.yisu.com/zixun/{“grant_type”:“client_credentials”,“client_id”: api_key,“client_secret”: secret_key} r=请求。帖子(url, data=https://www.yisu.com/zixun/data) 令牌=json.loads (r.text) . get (“access_token”) 返回令牌 def识别(sig,速度,令牌): url=" http://vop.baidu.com/server_api " speech_length=len(团体) 演讲=base64.b64encode (sig) .decode (“utf - 8”) mac_address=uuid.UUID (int=uuid.getnode ()) .hex [-12] 率=data=https://www.yisu.com/zixun/{“格式”:“wav”, “局域网”:“zh型”, “令牌”:令牌, “兰”:speech_length, “速度”:速度, “演讲”:演讲, “cuid”: mac_address, “通道”:1、 } data_length=len (json.dumps(数据).encode (“utf - 8”)) 头={“内容类型”:“application/json”, “内容长度”:data_length} r=请求。帖子(url, data=https://www.yisu.com/zixun/json.dumps(数据),标题=标题) 打印(r.text) 文件名=" two.wav " 信号=open (filename, rb) .read () 率=8000 令牌=get_token () 识别(信号,利率,令牌) >之前同时,获取语音信息可以通过:
进口scipy.io.wavfile 文件名=" two.wav " 率、信号=scipy.io.wavfile.read(文件名=文件名) >之前