python如何实现语音识别

  • 1.直接上Python代码,不过你需要准备一下。首先你需要注册一下百度账号,登录百度智能云。链接:https://cloud.baidu.com/
    在这里插入图片描述
  • 2.注册成功后就可以管理控制台了
    在这里插入图片描述
  • 3.选择网页下面的语音技术
    在这里插入图片描述
  • 4.然后选择创建应用
    在这里插入图片描述
  • 5.然后在输入你需要创建的应用名称和简单的描述一下 ,名称如:人机对话,描述如:家庭智能语音机器人
    在这里插入图片描述
  • 6.创建完成后就可以管理应用了
    在这里插入图片描述
  • 7.在管理应用里面就能看到百度给你的key
    在这里插入图片描述
  • 8.得到key就可以结合下面的代码实现语音识别。完整代码和测试的语音文件我上传到了腾讯微云,下载链接:https://share.weiyun.com/565dpJz
#!/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 代码应用插件,系统还提供人工智能api库,就不需要写语音识别,语音合成,语音唤醒,人脸识别,系统维护,系统架构,微信小
    程序这些基础代码了。你只需要想好触发词和写好插件功能代码即可。
    科艺创想www.16302.com QQ群751977302
    树莓派自美智能系统文档和下载地址:http://docs.16302.com
    树莓派img一键烧录使用,支持在线更新。

在这里插入图片描述

你可能感兴趣的:(python如何实现语音识别)