美文网首页
Ubuntu下批量统计音频的时长

Ubuntu下批量统计音频的时长

作者: 习惯了千姿百态 | 来源:发表于2020-01-26 23:45 被阅读0次

做语音识别任务时,数据量是我们很关注的一个问题,如何统计一个数据集的音频总时长呢?本文利用Ubuntu下的工具sox和python语言即可快速获得结果。

sox的安装

自行百度~~实验室集群有,没自己装过

sox使用

sox有很多用途,处理音频会经常用到它,可以用于音频的剪切,拼接等,很多博客都有介绍。本文只需要获取音频的时长信息。

sox out.wav -n stat
输出:
Samples read:             89168
Length (seconds):      5.573000
Scaled by:         2147483647.0
Maximum amplitude:     0.200775
Minimum amplitude:    -0.262512
Midline amplitude:    -0.030869
Mean    norm:          0.015213
Mean    amplitude:    -0.000010
RMS     amplitude:     0.022959
Maximum delta:         0.182007
Minimum delta:         0.000000
Mean    delta:         0.009004
RMS     delta:         0.014202
Rough   frequency:         1575
Volume adjustment:        3.809

我们只要获取Length (seconds)信息就可以了。想法就是把每个音频的信息都输出到文件中,然后使用python把这些数字读取出来进行累加。首先尝试将结果重定向到文件中,然而发现无法进行重定向,哎。
然后找了很多博客也没找到原因。
但是看到了nohup,一想,它可以把程序放在后台运行,结果放在nohup.out中,这样不就把结果存到文件中了吗。嗯!然后开始新的尝试。
首先编写批处理脚本x.sh

for data in train test dev;do
    for file in `ls the/path/of/dataset/$data`;do
        sox /CDShare/magicspeech/MagicSpeech/audio/$data/$file -n stat;
    done;
done

然后使用nohup将脚本放在后台运行

nohup ./x.sh &

打开nohup.out

nohup.out
成功了一大半!
然后获得Length的值写入一个文件中即可
 cat nohup.out |grep 'Length' |cut -d':' -f 2 >time.txt

最后使用python读取time.txt文件中的每一行,进行累加即可!

with open('time.txt',encoding='utf-8') as f:
    sum=0.0
    for x in f.readlines():
        sum+=float(x.strip('\n'))
        # print(x.strip('\n'))
    #换算成小时
    print(sum/3600) 

大功告成!

相关文章

  • Ubuntu下批量统计音频的时长

    做语音识别任务时,数据量是我们很关注的一个问题,如何统计一个数据集的音频总时长呢?本文利用Ubuntu下的工具so...

  • 如何批量统计视频时长

    最近一直在录制office2016办公技能系列的课程,整体录制完成之后需要统计所有视频的总时长,那么问题来了,如何...

  • 获取音频时长

    AVURLAsset(推荐使用) AVAudioPlayer //在使用过程中发现一个问题,安卓端传过来的音频文件...

  • 本周工作总结

    本周主要在做听书最近播放的存储批量管理功能,我的下载UI,选择下载音频UI,音频的批量下载批量管理,关联下载状态,...

  • 音频app阅读时长统计分析

    描述 分析学习喜马拉雅app阅读时长统计机制,并应用到自己app中去 分析 使用抓包工具charles观测app统...

  • Ubuntu下统计代码行数

    2020-01-07https://blog.csdn.net/xiao_yuanjl/article/detai...

  • 如何获取音频的时长

    游戏开发中如何使用Cocos Creator进行音效处理[https://zhuanlan.zhihu.com/p...

  • android 获取音频时长

    android当中获取视频音频的时长,三种。1:获取视频URI后获取cursor 2:根据MediaPlayer获...

  • ios 获取音频时长

    用来备份,方便自己使用,需要的拿去 直接上代码,自己看着办? 也可以选择去GitHub下载☞ZQAudioLeng...

  • 获取视频/音频时长

    MediaMetadataRetriever 类也获取视频在某一时间点得画面 getFrameAtTime(lo...

网友评论

      本文标题:Ubuntu下批量统计音频的时长

      本文链接:https://www.haomeiwen.com/subject/fassthtx.html