如何解决尝试使用pydub.silence在python中将长音频切成较小的片段少于12秒
基于pydub.silence的python静音,尝试将较长的音频切成较小的片段(少于12秒)。 我已经尝试过了:
from pydub import AudioSegment
from pydub.silence import split_on_silence
sound = AudioSegment.from_wav("path_to_the_file.wav")
output_directory="path_to_output_file"
filename="output_filename"
chunks = split_on_silence(sound,# must be silent for at least half a second
min_silence_len = 1000,# consider it silent if quieter than -50 dBFS
silence_thresh = -50,keep_silence=500
)
i=0
for i,chunk in enumerate(chunks):
chunk.export("{dir}{name}_{count}.wav".format(
dir=output_directory,name=filename,count=i),format="wav")
print ('They are splited into {number} files'.format(number=i + 1))
i+=1
输出是基于指定条件的剪辑片段。 如果我使用“ if”条件,例如:
i=0
for i,chunk in enumerate(chunks):
if (len(chunk)/1000)<12:
#chunk = chunk_silent+chunk+chunk_silent
chunk.export("{dir}{name}_{count}.wav".format(
dir=output_directory,format="wav")
print ('They are splited into {number} files'.format(number=i + 1))
i+=1
那我显然失去了我不想要的超过12秒的剪辑。 而是通过更改“ min_silence_len”和“ silence_thresh”的值来进一步处理这些剪辑超过12秒并将它们进一步修剪到12秒以内的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。