尝试使用pydub.silence在python中将长音频剪切成更小的片段(小于12秒)

尝试使用pydub.silence在python中将长音频剪切成更小的片段(小于12秒),python,wav,pydub,Python,Wav,Pydub,尝试使用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" filenam

尝试使用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
输出是基于指定条件的剪辑的压缩。 如果我使用这样的“如果”条件:

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, 
          name=filename, 
          count=i), format="wav")

        print ('They are splited into {number} files'.format(number=i + 1))
        i+=1
i=0
对于i,枚举中的块(块):
if(len(chunk)/1000)