美文网首页
用树莓派打造自己的对话式智能家居控制中心——语音识别

用树莓派打造自己的对话式智能家居控制中心——语音识别

作者: MessyS | 来源:发表于2019-04-09 14:14 被阅读0次

    日常前言

    项目教程目录:https://blog.csdn.net/qq_41082014/article/details/86605663

    既然我们有了录音文件,那么接下来的事便是要交给语音识别了。本章介绍百度和讯飞的语音识别的python调用方法,以及到底谁更好

    百度语音识别

    from aip import AipSpeech
    
    APP_ID = 'xxxxxxxx'
    API_KEY = 'xxxxxxxx'
    SECRET_KEY = 'xxxxxxxx'
    #init login
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    
    # 读取文件
    def get_file_content(filePath):
        with open(filePath, 'rb') as fp:
            return fp.read()
            
    text = client.asr(get_file_content(filePath), 'wav', 16000, {'lan': 'zh',})
    print(text)
    

    讯飞语音识别

    讯飞对自然语言方面处理的口碑应该是国内比较好的了,但是把文件交给他中间需要的处理步骤太多了,这里就直接先给一个能用的例子好了

    import urllib.parse, urllib.request
     
    import time
    import json
    import hashlib
    import base64
    
    url = 'http://api.xfyun.cn/v1/service/v1/iat'
    api_key = 'xxxxxxxxxx'
    x_appid = 'xxxxxxxxxx'
     
    def shibie(file):
        f = open(file, 'rb')
        file_content = f.read()
        base64_audio = base64.b64encode(file_content)
        body = urllib.parse.urlencode({'audio': base64_audio})
        param = {"engine_type": "sms16k", "aue": "raw"}
        x_time = int(int(round(time.time() * 1000)) / 1000)
        x_param = base64.b64encode(json.dumps(param).replace(' ', '').encode('utf-8'))
        x_checksum_content = api_key + str(x_time) + str(x_param, 'utf-8')
        x_checksum = hashlib.md5(x_checksum_content.encode('utf-8')).hexdigest()
        x_header = {'X-Appid': x_appid,
                    'X-CurTime': x_time,
                    'X-Param': x_param,
                    'X-CheckSum': x_checksum}
        
        req = urllib.request.Request(url = url, data = body.encode('utf-8'), headers = x_header, method = 'POST')
        result = urllib.request.urlopen(req)
        result = result.read().decode('utf-8')
        result = json.loads(result)
        return result
    

    那么到底哪一个更好呢?

    • 结构:
      • 明显看得出,百度要简单清晰很多(谁让讯飞不做pip的库呢(゚Д゚*)ノ)
    • 识别能力:
      • 多次实验中,发现,百度似乎还要更好一些,,,,
    • 速度上:
      • 不用说,百度这个家伙肯定是最快的了,相信很多人都知道,什么不懂,百度一下!百度肯定是要保持速度的,而且大多数的网络对百度是很开放的,比我我在学校,需要认证上网,但是不认证也可以访问百度首页
      • 从图中可以看到,百度的反应速度基本等于瞬间,即使是长段的识别,也毫不逊色,甚至比讯飞更准确些,比如断句方面。一般来说,超过2s的反应,也就是使用讯飞的时候,人们就会认为他很low,比如我旁边的同学.........


        在这里插入图片描述 在这里插入图片描述

    So,当然选择百度啦!

    本文作者: Messy
    原文链接:https://www.messys.top/detail/19
    版权声明: 本博客所有文章除特别声明外, 均采用 CC BY-NC-SA 4.0 许可协议. 转载请注明出处!

    相关文章

      网友评论

          本文标题:用树莓派打造自己的对话式智能家居控制中心——语音识别

          本文链接:https://www.haomeiwen.com/subject/kbguiqtx.html