【问题标题】:How can i split an Audio file into multiple audio wav files from folder如何从文件夹中将音频文件拆分为多个音频 wav 文件
【发布时间】:2021-04-27 16:15:21
【问题描述】:

我有一个文件夹,里面有大约 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") 

上面的代码适用于一个文件,而我需要它从文件夹中获取文件并将它们全部拆分

【问题讨论】:

  • 你能分享你的文件夹结构和你试过的代码吗?
  • from pydub import AudioSegment from pydub.utils import make_chunks myaudio = AudioSegment.from_file("a0007.wav", "wav") chunk_length_ms = 8000 # pydub 以毫秒为单位计算 chunks = make_chunks(myaudio,chunk_length_ms) #为i制作一秒的块,枚举中的块(块):块名=“{0}.wav”.format(i)打印(“导出”,块名)块.导出(块名,格式=“wav”)上面的代码适用于一个文件,而我需要它从文件夹中获取文件并拆分所有文件
  • 请修改您的问题以添加代码。它在评论中不可读。
  • @Epsi95 完成

标签: python audio wav pydub


【解决方案1】:

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

您可以使用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)

【讨论】:

  • 好吧,它只是拆分第一个文件并在第二个文件上给出错误,而不是拾取任何其他文件。它给出以下错误 FileNotFoundError: [Errno 2] No such file or directory: 'a0002.wav'
  • 您的 python 脚本是否在所有音频文件所在的文件夹中?这个文件夹有没有这个文件a0002.wav.
  • 我已经修改了代码,分块文件将存储在另一个名为chunked的文件夹中。
  • 脚本在同一个文件夹中,包含所有文件,但它只拾取第一个文件
  • 你现在可以检查一下吗,我在我的电脑上运行,它工作正常。
猜你喜欢
  • 2019-11-26
  • 2017-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多