matlab并行计算for循环_MATLAB如何用20行代码实现语音识别
前阵子,花了不少时间在做MATLAB视频这件事上。不得不说,做视频要比写文章难太多了!可能是因为视频新手的原因,在做第一个视频的时候,录了3个小时,剪了6个小时,我终于完成了一个10分钟的视频!然而,沉浸在第一支视频的兴奋中没多久,我发现了一个问题。在我阅片无数之后,我发现自己做的视频居然没有字幕……于是,在做第二个视频的时候,除了录视频,剪视频之外,我又多花了两个小时,做了一次汉语听写练习,视频
前阵子,花了不少时间在做MATLAB视频这件事上。
不得不说,做视频要比写文章难太多了!
可能是因为视频新手的原因,在做第一个视频的时候,录了3个小时,剪了6个小时,我终于完成了一个10分钟的视频!
然而,沉浸在第一支视频的兴奋中没多久,我发现了一个问题。
在我阅片无数之后,我发现自己做的视频居然没有字幕……
于是,在做第二个视频的时候,除了录视频,剪视频之外,我又多花了两个小时,做了一次汉语听写练习,视频里放一句,我手敲字幕一句。
这次做视频的经历实在是太折磨了!
我不相信做字幕会用这么蠢的办法,于是我就上网搜做字幕最快最简单的方法,我很快在B站找到了答案
答案跟我说,先把音频转txt文本,然后在arctime软件中手动对每句字幕进行时间轴上的定位。
了解行业内幕之后的我,迫不及待要开始第三个视频的制作!
在录完视频、剪完视频之后,又到了制作字幕环节
网上就有很多在线音频转字幕的网站,我选择了科大讯飞
然而,在音频转写完成后,转写预览里的文字,居然没办法选中复制……
要导出文档的话,需要付费,每分钟音频0.33元……
我是一个在乎3毛钱的人吗!
这不是3不3毛钱的问题!
对于程序员来说,这是尊严的问题!
于是,我就用MATLAB写了一款音频转文字的工具。
我可能是B站里为数不多的,没有打光器,没有麦克风,但是居然会先给自己写工具的Up主……
实现音频转文字之后,我开始用acrtime加时间轴做字幕文件。
整个制作过程非常梦幻……
首先要把整个文本进行分行,每一行代表每次要显示的字幕
于是,还没开始做时间轴,我就要花差不多5分钟时间,见到句号要回车,见到逗号要回车,感觉句子太长要回车,听到语气有转折,还要回车!
此刻,我非常想念我的解压神器……
文本分段完之后,我就开始体验所谓全网最快最简单的上字幕法。
在arctime里有一个模式,叫快速拖拽创建工具。
我一直不太理解这个名字的意思,不过在这个模式下,每听到一句字幕,就要按一下暂停,然后字幕会加到这段时间轴上。
这难道不是另一种形式的汉语听力练习吗!
说好的全网最快最简单的上字幕方法呢!
于是,我就用MATLAB写了一款音频转字幕的工具,在加载处理完音频文件之后,自动生成srt字幕文件。
我可能是B站里为数不多的,没有打光器,没有麦克风,写完一个工具不过瘾又写了一个工具的Up主……
接下来简单地聊一聊如何用MATLAB实现音频转文字的功能。
这个功能的实现,是通过调用百度语音识别的API,这类网站还有不少,包括科大讯飞,也有提供API可以调用。
如果大家有兴趣也想玩一玩这个语音识别的话,需要先登陆百度智能云管理中心,创建一个语音识别的应用。
应用创建成功之后,会生成属于自己的API Key和Secret Key,之后通过https://openapi.baidu.com/oauth/2.0/token获取token,token的值将会作为之后API调用的其中一项参数传递。
API调用的另一个非常重要的参数就是音频信号,这里需要base64的格式,这个格式的转换代码,大家也是可以在我之后发布的源代码中看到的。
还需要注意的一点是,API接受的频率只有16000,这个是在API技术文档中定义好的。所以大家有些录制的音频,如果频率不是16000的话,就需要对频率进行一个转化。
其他所需的API参数,有兴趣的朋友可以在百度智能云的技术文档里查看,最后需要把这些参数定义为一个struct格式通过webwrite进行传递
https://cloud.baidu.com/doc/SPEECH/s/rjwvy5jlx/
关于音频转字幕文件,目前我在这部分使用的策略比较简单。
在MATLAB读取完音频之后,先进行滤波,之后检测音频中幅值小于阈值并持续0.5秒,则认为处于句子停顿。
在未识别出停顿的情况下,根据语音识别的文字,进行标点符号的正则法处理,然后在单句音频上进行断句设置时间轴。
虽然这个策略比较简单,不过实现起来不太容易。
如果音频时长太长的话,读取到的数据非常大,如果代码里但凡使用一个for循环,整体的计算效率会非常差。
音频数据处理,是一个非常好的MATLAB练习题,可以强迫自己不使用for循环,这个练习也是知识星球“基础训练营”中的其中一道练习题,非常推荐大家试一试。
以上就是今天的分享,对源代码感兴趣的朋友,可以在公众号后台回复“语音识别”获取源代码下载链接。
如果大家有兴趣,欢迎关注我的微信公众号“打浦桥程序员”,谢谢
更多推荐
所有评论(0)