Как использовать путь к файлу в качестве параметров функции - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь создать функцию, которая удаляет вокал из нескольких файлов 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\normalized\201901150009_Proxy.wav')

возвращает ошибку:


IndexError Traceback (последний вызов был последним) в ----> 1 voalremover (r'C: \ Users \Джейн \ OneDrive - Jeli Media Ltd \ clearcast \ normalized \ 201901150009_Proxy.wav ')

в режиме удаления вокала (advertaudio)

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

IndexError: индекс списка вне диапазона

1 Ответ

0 голосов
/ 10 апреля 2019
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")

это сработало, но файл, похоже, ничего не воспроизводит, попробуйте сами и сообщите

...