gpt4 book ai didi

python - 使用 pydub 处理 24 位 wavs

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:25 26 4
gpt4 key购买 nike

我正在尝试编写一个基本程序,随机选择 2 个音频文件,将它们分层,然后将其作为一个新文件写出。我正在使用 pydub,一切正常,但结果失真。我怀疑这是因为据我了解,pydub 无法处理 24 位 wavs,而这恰好是样本包中的标准。

因此需要一些小的代码在进入 pydub 之前将 wav 转换为 16 位。希望不需要先将其写入光盘。

from pydub import AudioSegment
import os
import random
import shutil


def process(user_folder):

new_library_folder = user_folder + " Generated Combo Samples"
files_list = []
for root, directory, files in os.walk(user_folder):
for file in files:
if file_is_valid_ext(file):
filepath = str(root) + "/" + str(file)
# print filepath
files_list.append(filepath)

# removes previously created folder
shutil.rmtree(new_library_folder)
os.makedirs(new_library_folder)

i = 0
for number in range(gen_count): # global at 100
i = i + 1

file1 = random.choice(files_list)
file2 = random.choice(files_list)

sound1 = AudioSegment.from_file(file1)
sound2 = AudioSegment.from_file(file2)
sound1 = match_target_amplitude(sound1, -20)
sound2 = match_target_amplitude(sound2, -20)

combinedsound = sound1.overlay(sound2)
combinedsoundnormalised = match_target_amplitude(combinedsound, -6)

combinedsound_path = new_library_folder + "/" + "Sample " + str(i) + ".wav"

combinedsoundnormalised.export(combinedsound_path, format='wav')

最佳答案

您发布此问题已经有几个月了,但我会为可能需要解决方案的其他人回答。据我所知,PySoundFile 是唯一可以处理 24 位音频的 python 包(我相信还有其他包,但我没有找到)。我的建议是最初使用 PySoundFile 读取音频,然后使用该数据创建一个 pydub.AudioSegment

关于python - 使用 pydub 处理 24 位 wavs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48847933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com