APP下载

基于Python的视频信息挖掘

2019-12-13宋永生

现代计算机 2019年31期
关键词:分词音频二维码

宋永生

(江苏工程职业技术学院,南通 226007)

0 引言

视频由于生动直观,蕴含的信息量大,近年来逐渐发展成为了主流的知识媒介。政府部门及高校中每年都会拍摄大量的视频,这些视频多以文件的形式存放于一台甚至多台服务器上。视频拍摄完毕后,很多人不愿意花时间去写视频简介,没有做专门的视频封面或封面不具代表性,甚至连视频的命名都不规范。随着时间的推移,服务器上的视频文件越来越多,而且存放的服务器也越来越多,为后期的视频检索及视频审核带来很大的困难。往往需要将视频从头到尾观看一遍,才会了解视频中是否含有敏感词,该视频是何内容。视频中蕴含着大量的信息,这些信息并没有得到有效的挖掘。如果视频能够有一个类似电影海报的封面,通过封面即可对视频内容有大致的了解,将大大方便视频的管理。

Python是一种面向对象的跨平台解释型高级程序设计语言,其设计哲学是优雅、明确、简单。Python语言简洁明了、易读、便于扩展,具有庞大的标准库和第三方库,生态极为丰富。近年来,随着人工智能的飞速发展,越来越多的人开始使用Python。Python已被纳入全国计算机等级考试。

本文尝试利用Python,提取视频文件的基本信息,并生成视频截图;从视频文件中抽取音频信息,利用讯飞开放平台的REST API,将语音转为文字。将文字及视频的基本信息存入视频信息库,利用Flask构建视频信息Web管理系统,人们可以方便地检索视频或者审核视频中是否包含敏感词。对这些文字还可以做进一步的分析,利用分词技术进行词频统计,形成词云,根据词云、视频截图及该视频在管理系统中的Web URL二维码合成视频的封面海报。有了封面海报,视频的内容则一目了然,扫描封面海报上的二维码,可以查看视频的详细信息。

1 视频信息挖掘平台总体设计

视频信息挖掘平台采用Python 3.5进行开发,集成开发环境选用PyCharm 2018,数据库选用MySQL 5.7,Web开发框架选用Flask 1.0,视频截图选用OpenCV 4.1,音频信息提取选用moviePy,音频转文本选用讯飞的语音转写REST API进行实现,分词选用Jieba,词云展示选用Wordcloud。

2 数据处理流程

视频信息挖掘的数据处理流程如图1所示。视频封面海报生成以后要写入视频信息库。

图1 数据处理流程

3 相关技术

3.1 视频基本信息提取及截图

使用OS库获取视频文件的大小、存放路径、修改时间等信息,利用Socket库获取存放该视频服务器的IP,再利用OpenCV库获取视频的FPS及时长等信息,并进行截图。OpenCV是一个以BSD许可证开源的跨平台计算机视觉库,采用C++编写,提供了图像处理领域的很多通用算法[1]。VideoCapture是OpenCV中操作视频的类,可在构造函数中打开视频。在while循环中可以用VideoCapture类的read()函数逐帧提取视频中的图像,每帧是一幅基于BRG格式的图像,可以按照一定的帧数间隔对视频进行截图。

totalFrameNumber=vc.get(cv2.CAP_PROP_FRAME_COUNT)

#视频文件总帧数

fps=vc.get(cv2.CAP_PROP_FPS)#获取帧速

vedio_time=totalFrameNumber/fps#视频文件的时长

count=1

while True:

_,frame=vc.read()

if frame is None:

break

if count%EX_FREQUENCY==0:

save_path="{}/{:>03d}.png".format(dst_folder,index)

cv2.imwrite(save_path,frame)

index+=1

count+=1

vc.release()

3.2 视频中分离出音频

如需从视频中分离出音频,可以采用moviePy库或FFmpeg软件及ffmpeg-python库的组合。moviePy是Python的一个视频编辑库,可裁剪、拼接、标题插入、视频合成、视频处理和自定义效果;FFmpeg既是一款音视频编解码工具,同时也是一组音视频编解码开发套件,它为开发者提供了丰富的音视频处理的调用接口。安装了FFmpeg软件后,再安装ffmpeg-python库,就可以通过ffmpeg-python从视频中提取音频。本文选用更为方便的moviePy库。

video=VideoFileClip('test.mp4')

audio=video.audio

audio.write_audiofile('test.wav')

3.3 音频转文字

讯飞开放平台把语音转写功能通过REST API的方式给开发者提供一个通用的HTTP语音接口,基于该接口,可以将5小时以内的长段音频数据转换成文本数据,为信息处理和数据挖掘提供了基础。讯飞开放平台语音转写功能支持的输入音频格式有wav、flac、opus、m4a及mp3[2],支持的语种有中文普通话及英语,输出为JSON格式字符串,含有音频所对应的文本。

3.4 Flask

Flask是一个小而精的轻量级Web框架,其WSGI工具箱采用Werkzeug,模板引擎使用Jinja2。Flask的核心非常小巧,不包含数据库的抽象访问层,可以借助SQLAlchemy实现。SQLAlchemy提供了SQL工具包及ORM工具,也提供了使用数据库原生SQL的功能,支持多种数据库后台。Flask-SQLAlchemy是一个Flask扩展,在SQLALchemy基础上,简化了在Flask程序中使用SQLAlchemy的操作。

通过Flask-SQLAlchemy将视频的基本信息、音频部分所对应的文本等写入视频信息数据库。借助Flask构建视频信息管理系统,方便人们检索和审核视频。

MyQR是一个能够产生基本二维码、艺术二维码和动态效果二维码的Python库。通过MyQR,可以将该视频详细信息页面在视频信息管理系统中对应的Web URL生成为二维码。人们只需扫描二维码,就可以快速访问该视频详细信息的Web页面。

3.5 词频统计

英语中一个单词就是一个词,而汉语以字为基本书写单位,词语之间没有明显的区分标记,需要人为切分[3]。中文文本的词频统计,首先需要进行分词处理。常用的中文分词工具有Jieba、THULAC、SnowNLP、pynlpir、CoreNLP及pyLTP等。本文的分词工具选用Jieba,Jieba是利用一个中文词库,将需要分词的内容与词库进行对比,找到最大概率的词组,用户可以向中文词库中添加自定义的新词,支持精确模式、全模式及搜索引擎模式[4]。

3.6 生成词云

词云是以词语为单位,根据其在文本中出现的频率设计不同大小以形成视觉上的不同效果,对文本数据中出现频率较高的关键词在视觉上的突出呈现,对关键词进行渲染,形成类似云一样的彩色图片,让人一眼就可以领略文本数据的主旨。若想快速了解小说、电影剧本等的主要内容,就可以通过绘制词云图,通过关键词的可视化就可以直观地展示出来,非常方便。Wordcloud是一个根据文本生成词云的Python库。

4 实验分析

本文选用的服务器配置为8核CPU,32GB内存,4TB磁盘,100Mbps带宽,操作系统选用CentOS 7.5 64位,安装 MySQL 5.7 及 Python 3.5、Pip 9.0、OpenCV 4.1、Pillow 6.0等,音频信息提取选用moviePy库,音频转文本选用讯飞的语音转写REST API进行实现,分词库选用Jieba,词云展示库选用Wordcloud。Web开发框架选用Flask 1.0,采用Gunicorn 19.8做wsgi容器来部署Flask程序,Web服务器选用Nginx 1.12。

分析视频选用十九大报告现场的视频。按照如下步骤进行视频信息的挖掘:

(1)提取视频的基本信息,例如存放该视频服务器的IP、存放路径、大小、时长、最后修改时间等;设置视频截图的间隔帧数,对视频进行截图,从中选取几张具有代表性截图;

(2)从视频中提取音频,调用讯飞开放平台的语音转写REST API将音频转化为文本;

(3)将视频的基本信息及对应的文本等,存入视频信息数据库;利用Flask构建视频信息管理系统,方便进行视频的检索及审核,将该视频详细信息页面在视频信息管理系统中对应的Web URL生成为二维码图片;

(4)对转化得到的文本进行分词处理及词频统计,并以词云的形式对关键词进行展示,将词云图片保存;

(5)通过Pillow包将几张代表性的视频截图、二维码图、词云图进行拼接,并加上视频的标题,生成视频封面海报,如图2所示。视频封面海报也要存入视频信息数据库。

图2 视频封面海报

图3 视频详细信息

通过视频封面海报可以一目了然的了解视频的大致内容,并可以使用手机扫描海报右下角的二维码,查看该视频的详细信息,如图3所示。可以在视频信息管理系统中,检索一些敏感词,对不含敏感词的视频,给予审核通过,方便了对视频的检索和审核。

5 结语

本文针对目前视频管理中存在的一些问题,例如由于没有视频简介、视频无封面或封面不具代表性、命名不规范等,给视频检索造成了困难。视频审核往往需要将视频从头看到尾,需要大量的人力物力,视频信息的挖掘变得非常迫切。本文利用Python调用OpenCV、OS、Socket等库获取视频的基本信息并进行截图,利用moviePy提取视频中的音频,借助于讯飞开放平台的语音转写REST API将语音转为文字,将视频基本信息及文字存入视频信息数据库,利用Flask构建视频信息管理系统,方便了视频的检索及审核。对生成的文字进行分词处理及词频统计,用词云展示所生成文字中的关键词,将词云、视频截图及该视频详情页面的Web URL对应的二维码及视频标题进行融合,生成视频的封面海报。人们通过封面海报一眼即可了解视频的大致内容,扫描封面海报上的二维码,即可查看该视频的详细信息。

本文对生成的文本,仅进行了简单的词频统计,在今后的研究中,对视频的文本可以进行情感分析等,生成具有特定轮廓的词云;自动选取具有代表性的截图,并且可以自行判断视频画面内容是否合规,而不仅仅局限于语音内容的合规审核。

猜你喜欢

分词音频二维码
On Doors
Egdon Heath (Extract from The Return of the Native)
柏韵音频举办Pureaudio 2021新产品发布会
分词在英语教学中的妙用
结巴分词在词云中的应用
结巴分词在词云中的应用
二维码
二维码让政务公开更直接
二维码,别想一扫了之
聚焦现在完成进行时