python+ffmpeg实现wav文件切割

python+ffmpeg实现wav文件切割

安装ffmpeg

去官网下载FFmpeg 解压后 将bin文件夹加入环境变量就可以使用了

项目文件结构

这是要切割的20个文件 每个文件2min的人说话的wav格式语音
要切割的20个文件
输出的若干个片段 每个片段我设置为5s
在这里插入图片描述

代码

import os
def audio_cut(audio_in_path, audio_out_path, start_time, dur_time):
    """
    :param audio_in_path: 输入音频的绝对路径
    :param audio_out_path: 切分后输出音频的绝对路径
    :param start_time: 切分开始时间
    :param dur_time: 切分持续时间
    :return:
    """
    os.system("ffmpeg -i {in_path} -vn -acodec copy -ss {Start_time} -t {Dur_time}  {out_path}".format(in_path = audio_in_path,
                out_path = audio_out_path, Start_time = start_time, Dur_time = dur_time))

def main():
    audio_in_dir = "D:/dadasoft/workspace/speech_cut/test"   #要切割的文件列表
    audio_out_dir = "D:/dadasoft/workspace/speech_cut/output" #输入文件夹
    start_time = 0 #切割开始时间
    dur_time = 6  #切割的片段时长s
    out_number = 0 #输出文件序号
    for j in range(1, 21):
        audio_in_name = "student"+"%02d"%j+".wav"  #逐个要切割的文件名
        print(audio_in_name)
        audio_in_path = audio_in_dir+"/"+audio_in_name
        print(audio_in_path)
        for i in range(10):
            audio_out_name = "%02d"%out_number+".wav"   #切割完生成的片段名
            out_number = out_number+1
            print(audio_out_name)
            audio_out_path = audio_out_dir + "/" + audio_out_name
            print(audio_out_path)
            start_time = start_time+6
            audio_cut(audio_in_path, audio_out_path, start_time, dur_time)

if __name__ == "__main__":
    main()

这个代码只是切割了每个student文件的前10个5s 一共生成200个5s的小片段
读者可参考一下 稍作修改处理自己的文件

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值