Python-音频补齐(即对不同长度的音频用数据零对齐补位)
由于有同学后台私信我如何音频补齐(就是6s的音频怎么变10s),我在我的工作中也碰到这类问题,想着那今天就干脆写一篇博客吧,一起学习~1.如何实现?:可以先设置我需要输出的音频时长值X和获取输入音频的时长len(sound1),然后计算输入音频时长与输出的音频时长值X的差值Y(即X-len(sound1)),运用 AudioSegment.silent生成时长为Y的静音片段,最后拼接输入音频和静音
·
由于有同学后台私信我如何音频补齐(就是类似于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") # 保存文件
希望对你有帮助~
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)