欢迎光临散文网 会员登陆 & 注册

intro of audio splitor

2023-07-30 15:05 作者:Austin_Bri  | 我要投稿

import os

from pydub import AudioSegment

from pydub.silence import split_on_silence



input_folder = '/Users/ethanye/Downloads' # 输入文件夹路径

output_folder = '/Users/ethanye/Music/intentions' # 输出文件夹路径


# 获取输入文件夹中的所有.wav文件

wav_files = [file for file in os.listdir(input_folder) if file.endswith('.wav')]


# 遍历每个.wav文件并进行切割

for wav_file in wav_files:

# 构建完整的输入文件路径和输出文件路径

input_file = os.path.join(input_folder, wav_file)

output_file = os.path.join(output_folder, wav_file)


# 加载音频文件

audio = AudioSegment.from_file(input_file, format='wav')


# 定义切割参数

max_slice_length = 9000 # 最大切片长度,单位为毫秒(10秒)

silence_threshold = -22 # 静默阈值(以dB为单位),降低静默阈值以保留更多语句

min_silence_length = 500 # 最小间隔,单位为毫秒

silence_hop_size = 10 # 跳帧大小,单位为毫秒

max_silence_length = 1000 # 最大静默长度,单位为毫秒


# 切割音频文件

slices = split_on_silence(audio, min_silence_len=min_silence_length, silence_thresh=silence_threshold,

seek_step=silence_hop_size, keep_silence=max_silence_length)


# 遍历切割后的音频片段并保存到输出文件夹

for i, slice_audio in enumerate(slices):

# 限制切片长度不超过最大切片长度

if len(slice_audio) <= max_slice_length:

# 构建输出文件名

output_file_name = f"{os.path.splitext(wav_file)[0]}_{i}.wav"

# 替换文件名中的".wav_"为空格

output_file_name = output_file_name.replace(".wav_", "_")

# 保存切片到输出文件夹

slice_audio.export(os.path.join(output_folder, output_file_name), format='wav')


intro of audio splitor的评论 (共 条)

分享到微博请遵守国家法律