用樹莓派打造自己的對話式智能家居控制中心——語音識別

日常前言

項目教程目錄: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,當然選擇百度啦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章