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