Python-音频补齐(即对不同长度的音频用数据零对齐补位)

由于有同学后台私信我如何音频补齐(就是类似于6s的音频怎么变10s),我在我的工作中也碰到这类问题,想着那今天就干脆写一篇博客吧,一起学习~

1.如何实现?:

可以先设置我需要输出的音频时长值X和获取输入音频的时长len(sound1),
然后计算输入音频时长与输出的音频时长值X的差值Y(即X-len(sound1)),
运用 AudioSegment.silent生成时长为Y的静音片段,
最后拼接输入音频和静音片段

2.代码如下:
import os
from pydub import AudioSegment

input_path1 = r"E:\untitled1\audio_test\input"  # 输入文件路径
output_path = r"E:\untitled1\audio_test\output"  # 输出文件路径
X = 10000  # 设置输出音频总时长的值,这里的1000=1s
for file1 in os.listdir(input_path1):  # 遍历输入文件路径下的文件
    path1 = input_path1 + "\\" + file1  # 拼接第一个输入路径和对应文件名
    path3 = output_path + "\\" + file1  # 拼接输出路径和输出文件名,这里我是以第一个输入的文件名命名
    sound1 = AudioSegment.from_wav(path1)  # 第一个文件
    Y = X - len(sound1)  # 计算输入文件时长与设置输出音频总时长的差值Y
    silent = AudioSegment.silent(duration=Y)  # 静音片段生成,长度为Y
    new_sound = sound1 + silent  # 拼接输入音频和静音片段
    new_sound.export(path3, format="wav")  # 保存文件

希望对你有帮助~

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值