孟利 沈郑燕 张泰雯
摘要:目的:根据真实案例中的语音检材,利用ffmpeg软件提取犯罪嫌疑人的语音,探究适用ffmpeg软件提取的目标人物语音特点,同时归纳总结整个提取过程的具体操作流程,固化经验。方法:利用该软件包含的先进的音频编解码库开展语音提取实验,优化能够提高可移植性和编解码质量的细节操作,提高语音提取质量。结果:ffmpeg可以将案例中犯罪嫌疑人的语音进行提取,并能够提高语音提取质量。结论:运用ffmpeg可以进行视频转音频、音频截取、音频转码等操作,处理时间短、效果显著;同时将复杂困难的命令行软件的应用,简化为具体的操作步骤是切实可行的,有望使公安工作人员在不具备编码相关专业背景的情况下进行操作。
关键词:ffmpeg;提取语音;音频转码
一、前言
目前,电信诈骗案件已成为公安工作中的重点内容。该类案件通过电话、网络和短信方式,编造虚假信息,设置骗局,对受害人实施远程、非接触式诈骗,诱使受害人打款或转账的犯罪行为。一般具有手段翻新变化快,防范难度大,取证抓捕困难的特点。对于此类不具备现场勘察条件的案件,录音资料作为直接证据,能够起到同一认定犯罪嫌疑人、为诉讼提供证据的重要作用。直接提取可作为证据使用的音频往往存在困难,且审判程序对音频证据要求较高,应在提取的过程中保持音频的原貌。由于其他软件收费较高,ffmpeg在提取音频方面具有重要的研究价值[1]。
由FabriceBellard发起的ffmpeg是一套能够对音频和视频进行记录、格式转换以及实现视频加水印等操作的开源计算机程序,具有领先的编解码技术[2]。ffmpeg所包含的工具有:ffplay简单的基于ffmpeg库和SDL库的多媒体播放器,用于测试ffmpeg中各种API函数的功能;高效的音视频转换器ffmpeg,可以从现场获取音频/视频源,还可以在任意采样率之间转换和调整视频动态与质量;ffprobe用于在多媒体流中分析信息;ffserve用于多媒体流实时直播的服务器[3]。ffmpeg被广泛应用于多种视频播放器、转码器的内核,如QQ影音、格式工厂等。ffmpeg支持MPEG、DivX、MPEG4等40多种编码,ALI、MPEG等90多种解码[4-5]。
二、实验分析
(一)设置ffmpeg
1.创造路径——设置环境变量
环境变量可以被理解为系统的视线范围,是可以被添加设置的,也是较多ffmpeg使用者选择的操作方式。一般电脑中有两种环境变量。
(1)系统环境变量。一旦配置了系统环境变量后,只要是使用这个操作系统的人,任何用户都能通过这个环境变量直接在doc命令窗口找到相应程序;
(2)用户环境变量。独属于某个用户的,只有配置这个环境变量的用户才能使用它。二者可以依实际情况自由选择,本文选用第二种。
2.融入原有系统——转移bin文件
将已经下载好的ffmpeg的安装包内bin目录下的3个可执行文件解压到C盘System32文件夹目录下。这个目录存在于系统默认环境变量中,不需要额外设置。任选其一进行操作后,找到bin文件所在位置,鼠标右键选择打开命令行终端,输入“ffmpeg”即可正常使用。
(二)ffmpeg工具包应用
ffmpeg安装好后,可以看到内含的3个命令行工具,分别为ffmpeg、ffplay、ffprobe。其中ffmpeg是音视频处理工具、ffplay是音视频媒体播放器、ffprobe是音视频文件分析工具。
1.ffmpeg
先在命令行终端输入“ffmpeg”并回车,将会得基本的编写命令格式,即“ffmpeg[options][[infileoptions]-iinfile]...{[outfileoptions]outfile}...”。其中,options表示全局参数选项,-iinfile表示将某个文件导入,[outfileoptions]表示对导入文件进行所需操作,outfile表示在整个命令末尾注明输出文件最终封装格式。
2.ffplay
ffplay具有ffmpeg几乎所有编解码能力,是支持编码格式最多的万能播放器与视频测试工具,除可以播放音频、视频、图片这些基础功能之外,还能够实时对音视频、直播流进行复杂的滤镜处理,功能齐备。在安装好ffmpeg后,ffplay也被同时安装,无须额外下载。
3.ffprobe
ffprobe是一个基于命令行的音视频分析工具,同样被内置在ffmpeg安装包内。它可以帮助我们快速了解一个音视频文件的各种信息,例如文件的封装格式、视频的编码格式、帧率、分辨率等。
(三)提取目标人物语音相关处理
1.视频转音频
一个视频往往包含多个流信息,视频转音频操作的本质是删去视频流,保留音频流。首先,输入“ffprobevideo.mp4”查看视频基本信息,关注stream中audio部分中原有的封装格式,以mp4为例。
(1)当信息中显示视频中只有一个音频流时,可以使用ffmpeg直接将单独的音频流提取出来:输入“ffmpeg-ivideo.mp4-vn-acodeccopyvideo.m4a”其中-vn即表示剔除视频;-acodeccopy表示保持原有音频编码格式;video.m4a表示输出文件格式。
(2)当信息显示视频中包含多个音频流,此时需分别提取,并重新合并。例如:
Stream#0:2[0x81]:Audio:ac3,48000Hz,5.1,s16,384kb/s
Stream#0:3[0x82]:Audio:ac3,48000Hz,5.1,s16,384kb/s
Stream#0:4[0x80]:Audio:ac3,48000Hz,5.1,s16,448kb/s
2.音频截取
如需在整段音频中截取某部分,第一种方法为输入“ffmpeg-imusic.mp3-ss00:00:30-to00:02:00-acodeccopymusic_cutout.mp3”,其中-ss表示截取起始时间;-to表示截取结束时间,由于时间的基本单位为秒,所以时间可以表示为00:00:00,分别对应时分秒;第二种截取方法为“ffmpeg-imusic.mp3-ss00:00:30-t10-acodeccopymusic_cutout.mp3”表示从00:00:30起向后截取一个10秒的片段。
需要注意的是“ffmpeg-iin.mp4-ss00:01:00-to0:01:
10-ccopyout.mp4”与“ffmpeg-ss00:01:00-iin.mp4-to00:01:10-ccopyout.mp4”这两条指令的区别是:第二条启用了关键帧技术,可以加快操作速度但起始时间与结束时间可能与所需存在误差,为了避免这个问题,可以输入“ffmpeg-ss00:01:00-iin.mp4-to00:01:10-ccopy-copytsout.mp4”其中-copyts为保留时间戳的指令,起到精确输入时间的作用。
3.音频转码
常见的音频格式有MP3、aac、wav、flac,MP3是最常见的音频格式;aac常与H264视频搭配,是现代流媒体的主流;wav是微软公司专门为windows开发的标准数字音频模式,在ffmpeg中为PCM编码;flac是一种无损音频格式,常用于无损音乐。
ffmpeg音频格式转码[6]基础命令格式为“ffmpeg-iINPUT-c:aENCODER-arSAMPLE-acCHANNEL-abBITRATEOUTPUT”,INPUT表示输入文件,ENCODER表示音频编码器,SAMPLE表示音频采样率,CHANNEL表示音频声道数量,BITRATE表示音频码率,OUTPUT表示输出文件。使用“ffmpeg-encoders”可以查看ffmpeg所支持的音频格式列表,以A开头的表示音频编码器;“音频采样率”表示音频采样精度,一般以HZ为单位,通常采样率数字越大,音频精度越高,质量也越好。目前主流采样率多采用44.1kHZ和48kHz;“声道”也可以在ffmpeg中进行操作,即单声道、双声道或多声道;更高的“码率”通常意味着拥有更好的音质,更低的“码率”意味着文件体积更小,常用的码率为320k。以下将以转成采样率为44.1kHZ,单声道,设定码率为320k为例进行操作。
(1)wav转mp3。输入“ffmpeg-i1.wav-c:alibmp3lame-ar44100-ac1-ab320k1.mp3”,这里就表示输入一个名称为1的wav格式音频,指定libmp3lame作为音频编码器,设定采样率为44.1kHZ,单声道,设定码率为320k,输出文件格式为mp3。
(2)wav转aac。输入“ffmpeg-i2.wav-c:aaac-ar44100-ac1-ab320k1.aac”表示输入一个名称为2的wav格式音频,指定aac作为音频编码器,输出文件格式为aac。
(3)flac转mp3。输入“ffmpeg-i3.flac-c:alibmp3lame-ar44100-ac1-ab320k1.mp3”表示输入一个名称为3的flac格式音频,指定libmp3lame作为音频编码器,输出文件格式为mp3。
三、提取目标人物语音流程
提取目标人物语音的具体流程,以获取检材1.mp4文件中目标任务语音为例。
(1)首先输入“ffprobe1.mp4”按下回车获得该视频基础信息;
(2)分别输入“ffmpeg-i1.mp4-vn-map0:2-acodeccopy2.m4a”;“ffmpeg-i1.mp4-vn-map0:3-acodeccopy3.m4a”;“ffmpeg-i1.mp4-vn-map0:4-acodeccopy4.m4a”,获取原视频中3个音频流,分别听取,选择包含目标人物语音的2.m4a;
(3)输入“ffplay-2.m4a”按下回车开始播放该音频文件,此时输入“ffplay-i2.m4a-afatempo=2”可以实现变速播放;对比原视频中目标人物说话的时间,选定音质较好的某段记录起止时间00:00:48-00:02:30;
(4)输入“ffmpeg-i2.m4a-ss00:00:48-to00:02:30-acodeccopymusiccutout.mp3”即可获得仅包含目标人物语音的片段,且为mp3格式。
后期根据语音比对所需格式可对该片段进行转码。
四、总结
本文所述仅仅是ffmpeg众多使用方法中的一部分,且重在阐述单独使用ffmpeg即可完成的内容。而ffmpeg与其他工具相互配合才能真正发挥该工具巨大潜能。例如,目前公安声纹鉴定领域已经研究出了人声分离算法,但是该算法的弊端在于对音频清晰度要求较高,在嘈杂环境中的语音截取效率低。此时将ffmpeg和SoX相结合运用可以对音频进行降噪处理,做好对音频的预处理。
由于ffmpeg工作原理涉及到编解码这一信息传输中的关键步骤,所以往往会成为预处理音频、视频、图像的操作步骤,从这个角度而言,ffmpeg软件可以被称为音视频处理工作的基石。同时,也因为该软件的基础性,本文中提出基于ffmpeg软件提取目标人物的语音的方法只较为便于理解与操作的方式,希望能够对公安实战工作起到帮助。
参考文献:
[1]郭晶晶,刘光尧,汪磊,等.ffmpeg在视频图像处理中的应用[J].刑事技术,2020,45(03):234-237.
[2]程伟伦,唐恒飞.基于ffmpeg的车载嵌入式流媒体终端的研究与实现[J].农业装备与车辆工程,2021,59(08):120-122.
[3]邓正良.基于ffmpeg和SDL的视频流播放存储研究综述[J].现代计算机,2019(22):47-50.
[4]郝朝,刘升护.基于ffmpeg和SDL的遥测视频解析技术[J].计算机技术与发展,2019,29(04):191-194.
[5]吴张顺,张珣.基于ffmpeg的视频编码存储研究与实现[J].杭州电子科技大学学报,2006(03):30-34.DOI:10.13954/j.cnki.hdu.2006.03.008.
[6]覃艳.基于ffmpeg的视频格式转换技术研究[J].电脑知识与技术,2011,7(12):2912-2913.
基金资助:本文系河南警察学院院级课题资助项目:“基于ffmpeg提取目标人物语音的研究”(项目编号:HNJY202236)阶段性成果
作者单位:孟利国,河南警察学院刑事科学技术系;沈郑燕,河南警察学院教务处;张泰雯,北京出入境边防检查总站