• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Python的視頻信息挖掘

      2019-12-13 01:08:40宋永生
      現(xiàn)代計(jì)算機(jī) 2019年31期
      關(guān)鍵詞:詞云分詞音頻

      宋永生

      (江蘇工程職業(yè)技術(shù)學(xué)院,南通 226007)

      0 引言

      視頻由于生動(dòng)直觀,蘊(yùn)含的信息量大,近年來逐漸發(fā)展成為了主流的知識(shí)媒介。政府部門及高校中每年都會(huì)拍攝大量的視頻,這些視頻多以文件的形式存放于一臺(tái)甚至多臺(tái)服務(wù)器上。視頻拍攝完畢后,很多人不愿意花時(shí)間去寫視頻簡(jiǎn)介,沒有做專門的視頻封面或封面不具代表性,甚至連視頻的命名都不規(guī)范。隨著時(shí)間的推移,服務(wù)器上的視頻文件越來越多,而且存放的服務(wù)器也越來越多,為后期的視頻檢索及視頻審核帶來很大的困難。往往需要將視頻從頭到尾觀看一遍,才會(huì)了解視頻中是否含有敏感詞,該視頻是何內(nèi)容。視頻中蘊(yùn)含著大量的信息,這些信息并沒有得到有效的挖掘。如果視頻能夠有一個(gè)類似電影海報(bào)的封面,通過封面即可對(duì)視頻內(nèi)容有大致的了解,將大大方便視頻的管理。

      Python是一種面向?qū)ο蟮目缙脚_(tái)解釋型高級(jí)程序設(shè)計(jì)語言,其設(shè)計(jì)哲學(xué)是優(yōu)雅、明確、簡(jiǎn)單。Python語言簡(jiǎn)潔明了、易讀、便于擴(kuò)展,具有龐大的標(biāo)準(zhǔn)庫(kù)和第三方庫(kù),生態(tài)極為豐富。近年來,隨著人工智能的飛速發(fā)展,越來越多的人開始使用Python。Python已被納入全國(guó)計(jì)算機(jī)等級(jí)考試。

      本文嘗試?yán)肞ython,提取視頻文件的基本信息,并生成視頻截圖;從視頻文件中抽取音頻信息,利用訊飛開放平臺(tái)的REST API,將語音轉(zhuǎn)為文字。將文字及視頻的基本信息存入視頻信息庫(kù),利用Flask構(gòu)建視頻信息Web管理系統(tǒng),人們可以方便地檢索視頻或者審核視頻中是否包含敏感詞。對(duì)這些文字還可以做進(jìn)一步的分析,利用分詞技術(shù)進(jìn)行詞頻統(tǒng)計(jì),形成詞云,根據(jù)詞云、視頻截圖及該視頻在管理系統(tǒng)中的Web URL二維碼合成視頻的封面海報(bào)。有了封面海報(bào),視頻的內(nèi)容則一目了然,掃描封面海報(bào)上的二維碼,可以查看視頻的詳細(xì)信息。

      1 視頻信息挖掘平臺(tái)總體設(shè)計(jì)

      視頻信息挖掘平臺(tái)采用Python 3.5進(jìn)行開發(fā),集成開發(fā)環(huán)境選用PyCharm 2018,數(shù)據(jù)庫(kù)選用MySQL 5.7,Web開發(fā)框架選用Flask 1.0,視頻截圖選用OpenCV 4.1,音頻信息提取選用moviePy,音頻轉(zhuǎn)文本選用訊飛的語音轉(zhuǎn)寫REST API進(jìn)行實(shí)現(xiàn),分詞選用Jieba,詞云展示選用Wordcloud。

      2 數(shù)據(jù)處理流程

      視頻信息挖掘的數(shù)據(jù)處理流程如圖1所示。視頻封面海報(bào)生成以后要寫入視頻信息庫(kù)。

      圖1 數(shù)據(jù)處理流程

      3 相關(guān)技術(shù)

      3.1 視頻基本信息提取及截圖

      使用OS庫(kù)獲取視頻文件的大小、存放路徑、修改時(shí)間等信息,利用Socket庫(kù)獲取存放該視頻服務(wù)器的IP,再利用OpenCV庫(kù)獲取視頻的FPS及時(shí)長(zhǎng)等信息,并進(jìn)行截圖。OpenCV是一個(gè)以BSD許可證開源的跨平臺(tái)計(jì)算機(jī)視覺庫(kù),采用C++編寫,提供了圖像處理領(lǐng)域的很多通用算法[1]。VideoCapture是OpenCV中操作視頻的類,可在構(gòu)造函數(shù)中打開視頻。在while循環(huán)中可以用VideoCapture類的read()函數(shù)逐幀提取視頻中的圖像,每幀是一幅基于BRG格式的圖像,可以按照一定的幀數(shù)間隔對(duì)視頻進(jìn)行截圖。

      totalFrameNumber=vc.get(cv2.CAP_PROP_FRAME_COUNT)

      #視頻文件總幀數(shù)

      fps=vc.get(cv2.CAP_PROP_FPS)#獲取幀速

      vedio_time=totalFrameNumber/fps#視頻文件的時(shí)長(zhǎng)

      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庫(kù)或FFmpeg軟件及ffmpeg-python庫(kù)的組合。moviePy是Python的一個(gè)視頻編輯庫(kù),可裁剪、拼接、標(biāo)題插入、視頻合成、視頻處理和自定義效果;FFmpeg既是一款音視頻編解碼工具,同時(shí)也是一組音視頻編解碼開發(fā)套件,它為開發(fā)者提供了豐富的音視頻處理的調(diào)用接口。安裝了FFmpeg軟件后,再安裝ffmpeg-python庫(kù),就可以通過ffmpeg-python從視頻中提取音頻。本文選用更為方便的moviePy庫(kù)。

      video=VideoFileClip('test.mp4')

      audio=video.audio

      audio.write_audiofile('test.wav')

      3.3 音頻轉(zhuǎn)文字

      訊飛開放平臺(tái)把語音轉(zhuǎn)寫功能通過REST API的方式給開發(fā)者提供一個(gè)通用的HTTP語音接口,基于該接口,可以將5小時(shí)以內(nèi)的長(zhǎng)段音頻數(shù)據(jù)轉(zhuǎn)換成文本數(shù)據(jù),為信息處理和數(shù)據(jù)挖掘提供了基礎(chǔ)。訊飛開放平臺(tái)語音轉(zhuǎn)寫功能支持的輸入音頻格式有wav、flac、opus、m4a及mp3[2],支持的語種有中文普通話及英語,輸出為JSON格式字符串,含有音頻所對(duì)應(yīng)的文本。

      3.4 Flask

      Flask是一個(gè)小而精的輕量級(jí)Web框架,其WSGI工具箱采用Werkzeug,模板引擎使用Jinja2。Flask的核心非常小巧,不包含數(shù)據(jù)庫(kù)的抽象訪問層,可以借助SQLAlchemy實(shí)現(xiàn)。SQLAlchemy提供了SQL工具包及ORM工具,也提供了使用數(shù)據(jù)庫(kù)原生SQL的功能,支持多種數(shù)據(jù)庫(kù)后臺(tái)。Flask-SQLAlchemy是一個(gè)Flask擴(kuò)展,在SQLALchemy基礎(chǔ)上,簡(jiǎn)化了在Flask程序中使用SQLAlchemy的操作。

      通過Flask-SQLAlchemy將視頻的基本信息、音頻部分所對(duì)應(yīng)的文本等寫入視頻信息數(shù)據(jù)庫(kù)。借助Flask構(gòu)建視頻信息管理系統(tǒng),方便人們檢索和審核視頻。

      MyQR是一個(gè)能夠產(chǎn)生基本二維碼、藝術(shù)二維碼和動(dòng)態(tài)效果二維碼的Python庫(kù)。通過MyQR,可以將該視頻詳細(xì)信息頁面在視頻信息管理系統(tǒng)中對(duì)應(yīng)的Web URL生成為二維碼。人們只需掃描二維碼,就可以快速訪問該視頻詳細(xì)信息的Web頁面。

      3.5 詞頻統(tǒng)計(jì)

      英語中一個(gè)單詞就是一個(gè)詞,而漢語以字為基本書寫單位,詞語之間沒有明顯的區(qū)分標(biāo)記,需要人為切分[3]。中文文本的詞頻統(tǒng)計(jì),首先需要進(jìn)行分詞處理。常用的中文分詞工具有Jieba、THULAC、SnowNLP、pynlpir、CoreNLP及pyLTP等。本文的分詞工具選用Jieba,Jieba是利用一個(gè)中文詞庫(kù),將需要分詞的內(nèi)容與詞庫(kù)進(jìn)行對(duì)比,找到最大概率的詞組,用戶可以向中文詞庫(kù)中添加自定義的新詞,支持精確模式、全模式及搜索引擎模式[4]。

      3.6 生成詞云

      詞云是以詞語為單位,根據(jù)其在文本中出現(xiàn)的頻率設(shè)計(jì)不同大小以形成視覺上的不同效果,對(duì)文本數(shù)據(jù)中出現(xiàn)頻率較高的關(guān)鍵詞在視覺上的突出呈現(xiàn),對(duì)關(guān)鍵詞進(jìn)行渲染,形成類似云一樣的彩色圖片,讓人一眼就可以領(lǐng)略文本數(shù)據(jù)的主旨。若想快速了解小說、電影劇本等的主要內(nèi)容,就可以通過繪制詞云圖,通過關(guān)鍵詞的可視化就可以直觀地展示出來,非常方便。Wordcloud是一個(gè)根據(jù)文本生成詞云的Python庫(kù)。

      4 實(shí)驗(yàn)分析

      本文選用的服務(wù)器配置為8核CPU,32GB內(nèi)存,4TB磁盤,100Mbps帶寬,操作系統(tǒng)選用CentOS 7.5 64位,安裝 MySQL 5.7 及 Python 3.5、Pip 9.0、OpenCV 4.1、Pillow 6.0等,音頻信息提取選用moviePy庫(kù),音頻轉(zhuǎn)文本選用訊飛的語音轉(zhuǎn)寫REST API進(jìn)行實(shí)現(xiàn),分詞庫(kù)選用Jieba,詞云展示庫(kù)選用Wordcloud。Web開發(fā)框架選用Flask 1.0,采用Gunicorn 19.8做wsgi容器來部署Flask程序,Web服務(wù)器選用Nginx 1.12。

      分析視頻選用十九大報(bào)告現(xiàn)場(chǎng)的視頻。按照如下步驟進(jìn)行視頻信息的挖掘:

      (1)提取視頻的基本信息,例如存放該視頻服務(wù)器的IP、存放路徑、大小、時(shí)長(zhǎng)、最后修改時(shí)間等;設(shè)置視頻截圖的間隔幀數(shù),對(duì)視頻進(jìn)行截圖,從中選取幾張具有代表性截圖;

      (2)從視頻中提取音頻,調(diào)用訊飛開放平臺(tái)的語音轉(zhuǎn)寫REST API將音頻轉(zhuǎn)化為文本;

      (3)將視頻的基本信息及對(duì)應(yīng)的文本等,存入視頻信息數(shù)據(jù)庫(kù);利用Flask構(gòu)建視頻信息管理系統(tǒng),方便進(jìn)行視頻的檢索及審核,將該視頻詳細(xì)信息頁面在視頻信息管理系統(tǒng)中對(duì)應(yīng)的Web URL生成為二維碼圖片;

      (4)對(duì)轉(zhuǎn)化得到的文本進(jìn)行分詞處理及詞頻統(tǒng)計(jì),并以詞云的形式對(duì)關(guān)鍵詞進(jìn)行展示,將詞云圖片保存;

      (5)通過Pillow包將幾張代表性的視頻截圖、二維碼圖、詞云圖進(jìn)行拼接,并加上視頻的標(biāo)題,生成視頻封面海報(bào),如圖2所示。視頻封面海報(bào)也要存入視頻信息數(shù)據(jù)庫(kù)。

      圖2 視頻封面海報(bào)

      圖3 視頻詳細(xì)信息

      通過視頻封面海報(bào)可以一目了然的了解視頻的大致內(nèi)容,并可以使用手機(jī)掃描海報(bào)右下角的二維碼,查看該視頻的詳細(xì)信息,如圖3所示。可以在視頻信息管理系統(tǒng)中,檢索一些敏感詞,對(duì)不含敏感詞的視頻,給予審核通過,方便了對(duì)視頻的檢索和審核。

      5 結(jié)語

      本文針對(duì)目前視頻管理中存在的一些問題,例如由于沒有視頻簡(jiǎn)介、視頻無封面或封面不具代表性、命名不規(guī)范等,給視頻檢索造成了困難。視頻審核往往需要將視頻從頭看到尾,需要大量的人力物力,視頻信息的挖掘變得非常迫切。本文利用Python調(diào)用OpenCV、OS、Socket等庫(kù)獲取視頻的基本信息并進(jìn)行截圖,利用moviePy提取視頻中的音頻,借助于訊飛開放平臺(tái)的語音轉(zhuǎn)寫REST API將語音轉(zhuǎn)為文字,將視頻基本信息及文字存入視頻信息數(shù)據(jù)庫(kù),利用Flask構(gòu)建視頻信息管理系統(tǒng),方便了視頻的檢索及審核。對(duì)生成的文字進(jìn)行分詞處理及詞頻統(tǒng)計(jì),用詞云展示所生成文字中的關(guān)鍵詞,將詞云、視頻截圖及該視頻詳情頁面的Web URL對(duì)應(yīng)的二維碼及視頻標(biāo)題進(jìn)行融合,生成視頻的封面海報(bào)。人們通過封面海報(bào)一眼即可了解視頻的大致內(nèi)容,掃描封面海報(bào)上的二維碼,即可查看該視頻的詳細(xì)信息。

      本文對(duì)生成的文本,僅進(jìn)行了簡(jiǎn)單的詞頻統(tǒng)計(jì),在今后的研究中,對(duì)視頻的文本可以進(jìn)行情感分析等,生成具有特定輪廓的詞云;自動(dòng)選取具有代表性的截圖,并且可以自行判斷視頻畫面內(nèi)容是否合規(guī),而不僅僅局限于語音內(nèi)容的合規(guī)審核。

      猜你喜歡
      詞云分詞音頻
      詞云和情感分析在新媒體環(huán)境下社會(huì)科學(xué)普及的應(yīng)用研究
      基于PyQt5界面的詞云制作軟件設(shè)計(jì)
      結(jié)巴分詞在詞云中的應(yīng)用
      必須了解的音頻基礎(chǔ)知識(shí) 家庭影院入門攻略:音頻認(rèn)證與推薦標(biāo)準(zhǔn)篇
      基于Daubechies(dbN)的飛行器音頻特征提取
      電子制作(2018年19期)2018-11-14 02:37:08
      音頻分析儀中低失真音頻信號(hào)的發(fā)生方法
      電子制作(2017年9期)2017-04-17 03:00:46
      基于SCI文獻(xiàn)分析的呼吸病學(xué)發(fā)展態(tài)勢(shì)研究
      值得重視的分詞的特殊用法
      Pro Tools音頻剪輯及修正
      人間(2015年8期)2016-01-09 13:12:42
      圖學(xué)學(xué)報(bào)(2014年2期)2014-03-06 05:42:52
      河池市| 若尔盖县| 北碚区| 伊春市| 顺平县| 肥东县| 聂拉木县| 和龙市| 东平县| 德昌县| 英吉沙县| 华亭县| 赞皇县| 曲麻莱县| 镇平县| 永新县| 靖西县| 赣州市| 诸暨市| 靖江市| 成武县| 新乡市| 南阳市| 肥乡县| 昌江| 松原市| 凌源市| 滦南县| 葵青区| 昌乐县| 长丰县| 嘉义县| 缙云县| 沁水县| 阿克| 永登县| 平遥县| 高邮市| 宜兰县| 隆尧县| 射洪县|