perl对微信语音信息的处理,以及将语音信息合并

小弟,最近迷恋上了微信,与女友聊天基本都是微信,但是一条一条信息听起来太麻烦,小弟就设想能否将信息一条一条按照顺序,合并起来。但是不得不吐槽的是微信的语音存放文件夹太恶心了,名字毫无顺序,每个文件夹下还有子文件夹。有了思路,那就行动吧,首先从微信散乱的文件夹下,提取出AMR语音信息文件,并按修改时间重命名。这些工作当然用小弟熟悉的perl语言完成了,虽然小弟不甚熟练,但是基本操作还能胜任。贴出,脚本。


# File: bianli.pl
# Author: zhajio
use warnings;
use File::Copy;
sub lsr($) {
    sub lsr;
    my $cur = shift;
    local *DH;
    if (!opendir(DH, $cur)) {
        warn "Cannot opendir $cur: $! $^E";
        return undef;
    }
    foreach (readdir(DH)) {
        if ($_ eq '.' || $_ eq '..') {
            next;
        }
        my $file = $cur."\\".$_;
        if (!-l $file && -d _) {
            $file .= "\\";
            lsr($file);
        }
        process($file, $cur);
    }
    closedir(DH);
}
my ($size, $dircnt, $filecnt) = (0, 0, 0);
sub process($$) {
    my $file = shift;
    #print $file, "\n";
    if (substr($file, length($file)-1, 1) eq "\\") {
        $dircnt++;
    }
    else {
        $filecnt++;
        $size += -s $file;
if($file=~/msg_.*/){
move($file,"C:"."\\".Users."\\".Administrator."\\".Desktop."\\".voice2);
}
    }
}
lsr('.');
print "$filecnt files, $dircnt directory. $size bytes.\n";

下面这个是重命名脚本:

use File::Copy ;
@Files = glob "*";
foreach $file (@Files){
if($file=~/msg_.*/){
$i=$i+1;
($sec,$min,$hour,$mday,$mon,$year) =  (localtime((stat"$file")[9]))[0..5];
($sec,$min,$hour,$mday,$mon,$year) = (
sprintf("%02d", $sec),
sprintf("%02d", $min),
sprintf("%02d", $hour),
sprintf("%02d", $mday),
sprintf("%02d", $mon + 1),
$year + 1900
                                                               );
       print "$file"."\n";     
       print "$year$mon$mday$hour$min$sec\n";
       rename($file,"$year$mon$mday$hour$min$sec.amr");
}
}

然后就是将AMR文件转换为MP3文件,这种软件很多啦,但是建议选择可以批量转换的,不然太麻烦。

然后的然后,就是找语音文件合并的工具了,小弟找到是QQ影音,工具里的音视频合并。很好用。如图。


大功告成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值