语音识别是一项比较复杂的技术,在单机上很难实现高效的识别的功能,但是借助云平台,实现起来就简单得多了。
下面采用腾讯的语音识别平台,用法如下:
Python SDK 语音识别
按照官方文档上说:
- 语音 URL 的音频时长不能长于5小时,文件大小不超过512MB
- 本地语音文件不能大于5MB
- 录音文件识别免费额度为每月10小时
不知道URL的方式限制到底是不是512MB,但是本地文件确实有5MB的限制。
如果识别成功,就会返回一个TaskId,通过这个TaskId,获取返回的结果,但是结果是一个json格式的数据,样式大概如下:
也可以把里面的时间去掉,代码如下:
# -*- coding: utf-8 -*-
import json
import re
with open('asr.json', 'r', encoding='utf-8') as f:
asr_json = json.load(f)
result = asr_json["Data"]["Result"]
print(result)
txt = re.sub('\[.*\]', "", result)#去掉时间前缀
print(txt)
txt = re.sub('\s+', "", txt)#去掉换行、空格字符
print(txt)
上面的asr.json文件就是从控制台复制出来保存的文件名。
上面的代码从技术上是可行的,但是实际操作却很有难度。主要问题出在本地5M的限制上,使用URL虽然是限制512M,但把文件传到哪里,访问速度太慢怎么办?
本人思考了很久,没找到答案。于是用在线客服提问,居然还有云技术顾问这个东西,瞬间感觉自己太落伍了,大概解决方法如下:
1、登录cos控制台创建存储桶;
2、上传您的本地语音文件
3、点击您上传的本地文件详情,即可显示对象地址;
4、登录语音识别控制台,将得到的对象地址填入URL地址栏中;
5、开始识别完成后,点击下载结果即可。