0203 - 以问题为驱动

这两天在做一件事:从视频中提取文字。

场景是这样的:比如,在看教学视频时,有时嫌视频太慢,希望从视频中提取出文字,打印出来看。10 分钟的视频,看文字可能 1 分钟就看完了,回看也很方便。还有其他一些场景,比如字幕组在翻译生肉视频时,很需要从视频中提取中英文原文,进而翻译、制作字幕。

这个问题说来也容易解决,视频 > 音频 > 文字。不过要放到具体的环境中,可就有些麻烦了。

先说从视频中提取音频。如果是在电脑端,这是很容易解决的。不过目前我打算先上个小程序,而小程序的能力很有限。想了半天,最后不得已暂时先使用在线转码服务。这样主要的问题有两个:一是视频文件通常很大,上传会需要花较多时间;二是需要找到这样的服务,最好是免费的、或者不贵。最后我找到的是 https://www.online-convert.com/ 这个强大又免费的在线服务。

再来就是音频中提取文字,这是重点。而其中最关键的,则是识别效果。我粗糙的比较了一系列云服务,最好的是讯飞和搜狗知音,其他的包括百度、阿里、腾讯,都没达到我想要的效果,算是第二梯队。讯飞的口碑和知名度是最好的,我没想到搜狗知音竟然也达到了几乎和讯飞相同的程度,可能搜狗输入法带来的大量语料也是种加持。

在这一过程中,能直观感受至各家水平的差异。比如,你好歹给个在线体验的入口,总不能非得写代码才能验证效果,这就太麻烦了。

其他因素包括接口便捷性、速度、并发性、价格等。我最后选择的是搜狗知音,很大程度是讯飞竟然只能上传本地音频文件,不支持使用 url 的方式。由于我先前说了,是使用云服务来提取音频,如果加上下载、再上传,那就太浪费时间了。价格方面,讯飞也是最感人的,搜狗基本是其一半多一点,一分钟约 0.1 元。

搜狗知音的接口也是有坑的:查询识别结果的接口,竟然要间隔 30s,这实在是太不自信了。好在我实测间隔 10s 也不会报 429 错误,先将就着用吧。另外就是识别速度并不快,我在深夜测试,这段时间应该不太会有很多其他用户的并发,可见其服务器资源并不充裕。

今天用 node 把这些流程全部实现并调通,明天准备创建小程序并接入。