日常前言
项目教程目录: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 许可协议. 转载请注明出处!
网友评论