python处理mp3音频文件:搜索静音(空白)时间

最近在做英语单词的lrc字幕文件时,有个需求:需要找出mp3中的静默起始时间,网上搜索了相关资料,搞了个python实现如下:

其中 detect_silence(sound,300,-35,1)中的两个参数300,-35分别对应搜索最小时间长度和静音阈值,需根据音频文件选取。

from pydub import AudioSegment
from pydub.silence import detect_silence
import re

sound = AudioSegment.from_file("P1.mp3", format="mp3")

start_end = detect_silence(sound,300,-35,1)

str1 = "\n".join('%s' %id for id in start_end)

str2 = re.findall(r" (.+?)]",str1)

str3 = "\n".join('%s' %id for id in str2)
str4 = []
idd = 0
for sss in str3.split():
    idd = int(sss) - idd
    m,ms = divmod(float(sss),60000)
    s,ms = divmod(float(ms),1000)
    ts="%02d:%02d.%03d" % (m,s,ms)
    if(idd>1100):
       str4.append(ts)
    idd = int(sss)

#print(str4)

str5 = "\n".join('[%s]' %id for id in str4)

with open('Q2lrc.txt', 'w') as f:
        f.write(str5)

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值