傅 骏 傅馨竹 龙辉阳 蒲丽旭 熊子淇,3 张峻宁
(1.四川工程职业技术学院材料工程系,四川 德阳 618000;2.德阳市岷山路小学,四川 德阳 618000;3.西华大学,四川 成都 610039)
百度AI提供了“语音识别”功能,能够将输入的语音精准识别为文字,支持普通话、英语、粤语、四川话等。输入的语音支持四种格式:pcm、wav、amr、m4a,仅支持16000的采样率。由于百度语音识别底层识别使用的是pcm,因此推荐直接上传pcm文件。如果上传其他格式,百度服务端会将非pcm格式转为pcm格式,因此使用wav、amr、m4a会有额外的转换耗时[1]。
目前流行的音频视频格式转化软件很多,但尚无合适的转化为pcm格式的软件。项目组利用VB,结合ffmpeg函数开发了“获得pcm利器”,实现了mp4-mp3-pcm格式的转换,辅助用户使用百度AI人工智能技术。
FFmpeg采用LGPL或GPL许可证,提供录制、转换以及流化音视频的完整解决方案,它包含了音频/视频编解码库libavcodec。在cmd窗口中输入命令可以实现录制和转换。
1)ffmpeg从视频中抓取部分音频的命令
要留下aa.mp4视频中10-80秒的声音,并将结果保存为bb.mp3的命令是,
ffmpeg-ss 0-i aa.mp4-strict-2-af atrim=10:80 bb.mp3
2)声音格式转换
要将bb.mp3转换成采样率为16000的cc.pcm格式,命令是,
ffmpeg-y-i bb.mp3-acodec pcm_sl6le-f s16le-ac 1-ar 16000 cc.pcm
VB由Microsoft公司开发,是基于对象的程序设计语言,其最大优点是可以方便快捷地开发图形用户界面 (GUI)。其内部函数Shell可以调用外部可执行的exe程序,返回一个变量Variant(Double)。Shell的命令格式是[2],
flag=Shell(PathName[,WindowStyle])
将ffmpeg文件放在VB工程的同一目录下。
在界面上添加了通用对话框CommonDialog、框架Frame、命令按钮Command、影音播放器WindowsMediaPlayer、标签Label、文本框Text、单选按钮Option等。通用对话框选择音频视频文件、标签提示用户操作、按钮与文本框控制转换时长、命令按钮实现格式转换等功能。
将界面分区,左边是影音播放区,右边由2个框架Frame组成,分别实现视频mp4文件转mp3、音频文件转pcm。在视频文件转mp3框架中,还设置了单选按钮option,使用户可以从4种方式,选择截取视频文件的时间段:全部、从开始到指定时刻、从某个时刻到结束、指定开始和结束时刻。
通用对话框CommonDialog打开“打开”对话框,并且只显示音频、视频格式,如mp3、mp4、avi、wmv等格式的文件,选择文件后,读取文件名称与路径,显示在标签lblMP3名称上。代码是,
CommonDialog1.Filter =“全部文件|*.*|mp4视频文件|*.mp4|avi视频文件|*.avi|wmv视频文件|*.wmv|mpg视频文件|*.mpg”
CommonDialog1.ShowOpen
她低着头站在角落里,刘海混合着汗水弯弯曲曲地贴在额头上,偌长的漆黑睫毛盖过眼睛,她紧抿着嘴唇,饱满的双唇似乎过度隐忍着情绪,呈现出神秘的紫色,白大褂被扯破了大半,似一张哭泣的人脸,狼狈不堪。
读取单选按钮与文本框的值,将需要的视频转换时长存放在变量shipinwenjian中。代码是,
Mp4to3= Shell(App.Path + “ffmpeg-ss 0-i” + shipinwenjian +“-strict-2-af atrim=0:” + lblMP3名称,1)
读取文件路径yinpinwenjian与lblpcm名称,将mp3转换为pcm格式。代码是,
Mp3topcm = Shell(App.Path + “ffmpeg-y-i ” + yinpinwenjian +“-acodec pcm_s16le-f s16le-ac 1-ar 16000” + lblpcm名称,1)
1)修改文件路径与文件名
默认mp4转换后生成的mp3文件,保存在mp4同一个目录下,其名称与mp4相同。mp3转换为pcm亦然。修改的代码是,CommonDialog1.ShowSave
2)判断文件是否存在及处理
用Dir(lblpcm名称) <> ""判断要生成的mp3文件与pcm文件是否存在。如果要覆盖文件,则用命令kill删除文件后,再重新生成。
设计好的程序运行见图1,对mp3、pcm的保存路径和文件名进行了修改,不与mp4一致。
图1 “获得pcm利器”运行界面
本程序也可以直接选择mp3文件,转化为pcm格式。
ffmpeg命令转换为pcm格式功能强大,但对用户的计算机水平有一定要求。项目组运用VB的Shell函数功能,调用ffmpeg功能,实现了对mp4部分截取后转换成mp3、mp3转换为pcm格式,为使用百度AI的“语音识别”功能提供了辅助,受到了使用者的欢迎。利用该辅助功能开发的“百度人工智能语音技术”小程序获得学院科技节二等奖。