python如何实现语音识别

  • 1.直接上Python代码,不过你需要准备一下。首先你需要注册一下百度账号,登录百度智能云。链接:https://cloud.baidu.com/
    python如何实现语音识别_第1张图片
  • 2.注册成功后就可以管理控制台了
    python如何实现语音识别_第2张图片
  • 3.选择网页下面的语音技术
    python如何实现语音识别_第3张图片
  • 4.然后选择创建应用
    python如何实现语音识别_第4张图片
  • 5.然后在输入你需要创建的应用名称和简单的描述一下 ,名称如:人机对话,描述如:家庭智能语音机器人
    python如何实现语音识别_第5张图片
  • 6.创建完成后就可以管理应用了
    python如何实现语音识别_第6张图片
  • 7.在管理应用里面就能看到百度给你的key
    python如何实现语音识别_第7张图片
  • 8.得到key就可以结合下面的代码实现语音识别。完整代码和测试的语音文件我上传到了腾讯微云,下载链接:https://share.weiyun.com/5xzVuqI
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import json,base64,requests,urllib.request

class Speech_recognition():
    '''百度语音识别'''
    def key(self):
        #获取token秘钥
        body = {
            "grant_type"    : "client_credentials",
            "client_id"     : "填写百度给你的API Key",
            "client_secret" : "填写百度给你的Secret Key"
        }
        url  = "https://aip.baidubce.com/oauth/2.0/token?"
        r = requests.post(url,data=body,verify=True,timeout=2)
        respond = json.loads(r.text)
        return  respond["access_token"]

    def api(self,audio_data):
        with open(audio_data,'rb') as fp:
            audio_data = fp.read()
        speech_data = base64.b64encode(audio_data).decode("utf-8")
        #用Base64编码具有不可读性,需要解码后才能阅读
        speech_length = len(audio_data)
        post_data = {"format":"wav","rate": 16000,
        "channel": 1,"cuid":"123456python",
        "token": self.key(), "speech": speech_data,"len": speech_length}

        json_data = json.dumps(post_data).encode("utf-8")
        json_length = len(json_data)

        try:
            req = urllib.request.Request("http://vop.baidu.com/server_api",data=json_data)
            req.add_header("Content-Type", "application/json")
            req.add_header("Content-Length", json_length)
            resp = urllib.request.urlopen(req,timeout=20)##合成时间不多,识别最耗时
            resp = resp.read()
            resp_data = json.loads(resp.decode("utf-8"))

        except: print('超时')

        if resp_data["err_no"] == 0:
            return resp_data["result"][0]
            #return resp_data["result"]  #返回识别出的文字
        else:
            return ''


if __name__ == '__main__':
    data = Speech_recognition().api("16k.wav")
    print("语音识别结果:",data)
    input("--")
  • 9.运行结果
    python如何实现语音识别_第8张图片
    我正在做公司里一个运行在树莓派上的自美智能系统的项目开发。已经公布和开源了,还开发了一些配合这个系统的智能硬件,基于这个系统,可以开发python 代码应用插件,就不需要写语音识别,语音合成,语音唤醒,人脸识别这些基础代码了。有兴趣加QQ群:751977302
    python如何实现语音识别_第9张图片

你可能感兴趣的:(百度api)