# -*- coding: utf-8 -*- from pydub import AudioSegment from pydub.silence import split_on_silence def remove_silent_parts(input_file_path, output_file_path, min_silence_len=1000, silence_thresh=-40): """ 函数功能:删除音频文件中的无声部分,并将处理后的音频保存到指定输出路径 参数: input_file_path: 输入音频文件的路径 output_file_path: 输出音频文件的路径 min_silence_len: 最小静音长度,单位为毫秒,默认值为1000毫秒 silence_thresh: 静音阈值,单位为dBFS,默认值为-40dBFS,低于此阈值的部分被视为静音 """ # 从文件中读取音频 audio_segment = AudioSegment.from_file(input_file_path) # 根据静音阈值和最小静音长度拆分音频 chunks = split_on_silence(audio_segment, min_silence_len=min_silence_len, silence_thresh=silence_thresh) # 将拆分后的非静音部分重新拼接在一起 final_audio = AudioSegment.empty() for chunk in chunks: final_audio += chunk # 将处理后的音频保存到输出文件路径 final_audio.export(output_file_path, format="wav") if __name__ == "__main__": # 首先使用命令行umx audio.wav来将音频拆分为 input_file_path = "vocal/this is water_umxl/vocals.wav" output_file_path = "vocal/this is water_umxl/vocals_process.wav" remove_silent_parts(input_file_path, output_file_path)