会议记录转文字 - 语音识别
背景在工作中,对于一些重要的会议,参会内容往往需要记录下来并整理成文字。随着人工智能的发展,我们考虑借助语音识别来提高效率。个人搭建模型的话,由于缺乏训练数据,往往用来练手。市面上目前有两大类语音识别的解决方案:一类是科大讯飞和搜狗之类的输入法公司的产品,公司往往有现成的录音笔,价格相对昂贵;另一类是BAT之类的云厂商的人工智能业务,提供在线计算能力和接口,按需付费。实践在对比了几家公司的云产品后
背景
在工作中,对于一些重要的会议,参会内容需要记录下来并整理成文字。随着人工智能的发展,我们考虑借助语音识别来提高效率。
个人搭建模型的话,由于缺乏训练数据,大多用来练手。市面上目前有两大类语音识别的解决方案:一类是科大讯飞和搜狗之类的输入法公司的产品,公司有现成的录音笔可以转文字,价格相对昂贵;另一类是BAT之类的云厂商的人工智能业务,提供在线计算能力和接口,按需付费。
实践
在对比了几家公司的云产品后,发现每家云平台基本每月都会赠送一定量的免费时长,我们以腾讯云为例:
该产品对于本地的语音文件,要求不能超过5M,对应于常见的MP3录制文件,大概只有5分钟。由于会议内容一般都在一个小时以上,目前的产品仍然会限制我们的使用。
对于在线url文件,目前文件大小可以接近5小时,极大方便了长录音文件的语音识别。但会议内容具有一定的保密性,因此大多数情况下无法将文件生成外链暴露在公网上。
如果是保密性较低的长录音内容,可以考虑上传到个人(或所在公司)的服务器或第三方托管网站上生成外链,进行临时识别。
在腾讯云平台进行账号注册和认证后,在语音识别的控制台,我们发现功能体验菜单栏下,可以采用交互的方式进行方便的操作,大大减少了代码的编写,提高了产品的用户体验,这也是未来云产品的发展趋势。
针对本地语音文件不得超过5MB的缺点,我们考虑采用大文件分割的方式,将长录音文件分割成若干份不超过5MB的mp3文件,进行逐个识别和校对。我们用python进行简单的编写来实现切割功能:
import os
# 函数file_split
# file_name : 原文件
# split_size : 切割大小
def file_split(file_name, split_size) :
# 获取绝对路径
abs_file_name = os.path.abspath(file_name)
print("源文件 : " + abs_file_name)
# 获取相对路径, 文件名, 后缀
filepath, fullflname = os.path.split(abs_file_name)
fname, ext = os.path.splitext(fullflname)
try:
file_num = 0;
# 打开读文件
with open(abs_file_name, "rb") as f :
while True :
content = f.read(split_size)
if not content:
break
file_num += 1
new_file_name = os.path.join(filepath, fname + ('_%04d'%file_num) + ext)
# 循环写文件
with open(new_file_name, "wb") as fw :
fw.write(content)
except:
print("file read error!")
# 主程序开始
file_name = r"D:\feitian\youtube\videoplayback01.mp3"
# 文件切割大小:不到5MB(1M = 1024 * 1024)
split_size = 5 * 1000 * 1000
# 调用函数
file_split(file_name, split_size)
print("done!")
然后通过依次上传的形式,可以依次得到识别的结果,并进行逐个校对,一般在所有都识别完之后,也基本上就校对完了。
总结
综上,如果费用充足,可以考虑直接购买现成的录音产品进行体验;如果有一定的编程能力,可以考虑体验以下几家云平台的产品服务,选择一个相对简便且功能强大的进行操作。
预计未来几年,在云平台语音识别的C端业务,几家公司的竞争之处将在于,一方面怎么提高文件大小上限,另一方面怎么减少用户代码量,降低SDK使用难度,完善用户体验。
更多推荐
所有评论(0)