由于有同学后台私信我如何音频补齐(就是类似于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")  # 保存文件

希望对你有帮助~

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐