如何使用文件路径作为函数参数

How to use file path as function parameters

我正在尝试创建一个函数,该函数将从文件夹中的多个 wav 文件中删除人声,但将 运行 保留在索引错误中。我是 python 的新手,所以不确定问题出在哪里,但我认为这可能源于我在函数调用中引用文件路径的方式,尽管我实际上无法确定。有什么建议吗?

from pydub import AudioSegment
from pydub.playback import play


def vocalremover(advertaudio):

sound_stereo = AudioSegment.from_wav(advertaudio)
sound_monoR = sound_stereo.split_to_mono()[1]
sound_monoL = sound_stereo.split_to_mono()[0]


sound_monoR_inv = sound_monoR.invert_phase()


sound_CentersOut = sound_monoL.overlay(sound_monoR_inv)


sound_CentersOut.export(str(advertaudio), format="wav")





vocalremover(r'C:\Users\Jan\OneDrive - Media 
Ltd\normalized1901150009_Proxy.wav')

它returns错误:


IndexError Traceback(最后一次调用) 在 ----> 1 vocalremover(r'C:\Users\Jane\OneDrive - Jeli Media Ltd\clearcast\normalized1901150009_Proxy.wav')

在 vocalremover(advertaudio)

----> 9 sound_monoR = sound_stereo.split_to_mono()[1]

IndexError: 列表索引超出范围

def vocalremover(advertaudio):

    sound_stereo = AudioSegment.from_wav(advertaudio)
    sound_monoR = sound_stereo.split_to_mono()[0][1]
    sound_monoL = sound_stereo.split_to_mono()[0][0]


    sound_monoR_inv = sound_monoR.invert_phase()


    sound_CentersOut = sound_monoL.overlay(sound_monoR_inv)


    sound_CentersOut.export(str(advertaudio), format="wav")

这样做有效,但文件似乎没有播放任何内容,请自己尝试并报告