Files
songyi/silent_remover.py
2025-04-16 09:38:48 +08:00

37 lines
1.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- 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)