如何从文件夹中将音频文件拆分为多个音频 wav 文件

How can i split an Audio file into multiple audio wav files from folder

我有一个文件夹,里面有大约 2000 个具有不同时间间隔的 wav 格式的音频文件,比如一些在 30 秒或 40 秒内,我想使用 python 拆分所有这些文件,我尝试了 pydub和不同的库,它们都只为 1 个文件工作,我想在 python.

中使用简单代码的循环来拆分它们

示例代码:

from pydub import AudioSegment 
from pydub.utils import make_chunks 

myaudio = AudioSegment.from_file("a0007.wav", "wav") 
chunk_length_ms = 8000 # pydub calculates in millisec 
chunks = make_chunks(myaudio,chunk_length_ms) #Make chunks of one sec 
for i, chunk in enumerate(chunks): 
    chunk_name = "{0}.wav".format(i) 
    print ("exporting", chunk_name) 
    chunk.export(chunk_name, format="wav") 

上面的代码适用于一个文件,而我需要它从文件夹中取出文件并拆分所有文件

您必须获取目录中的所有文件名,然后迭代所有文件名。

您可以使用 os 模块获取当前目录中所有文件的列表。

from pydub import AudioSegment 
from pydub.utils import make_chunks
import os

def process_sudio(file_name):
    myaudio = AudioSegment.from_file(file_name, "wav") 
    chunk_length_ms = 8000 # pydub calculates in millisec 
    chunks = make_chunks(myaudio,chunk_length_ms) #Make chunks of one sec 
    for i, chunk in enumerate(chunks): 
        chunk_name = './chunked/' + file_name + "_{0}.wav".format(i) 
        print ("exporting", chunk_name) 
        chunk.export(chunk_name, format="wav") 

all_file_names = os.listdir()
try:
    os.makedirs('chunked') # creating a folder named chunked
except:
    pass
for each_file in all_file_names:
    if ('.wav' in each_file):
        process_sudio(each_file)