#python-3.x #librosa
#python-3.x #librosa
Вопрос:
Я загружаю файл на Python, чтобы испортить его звук.
Я нашел библиотеку librosa для этого — пока работает отлично, но для загрузки файла требуется некоторое время.
Я хотел бы предоставить пользователю живую обратную связь о ходе загрузки, чтобы они знали, что ничего не сломано.
Кто-нибудь знает, откуда я могу получить такое значение прогресса загрузки?
Вот мой пример кода:
import time
import librosa
start = time.time()
audio_path = r'C:Users....some_music_video_3_min_long.mp4'
audio, sampleRate = librosa.load(audio_path)
end = time.time()
print(f'Elapsed time: {round(end - start, 4)} s')
Мой вывод:
C:Users...venvlibsite-packageslibrosacoreaudio.py:162:
UserWarning: PySoundFile failed. Trying audioread instead.
warnings.warn("PySoundFile failed. Trying audioread instead.")
Elapsed time: 9.3724 s
Мой конечный результат между предупреждением и временем выглядит примерно так:
1%
2%
....
100%
Комментарии:
1. Это не отвечает на вопрос, но обратите внимание, что librosa по умолчанию выполняет повторную дискретизацию звука до 22,05 кГц, и этот процесс повторной дискретизации происходит медленно. Вы можете предотвратить это, добавив
sr=None
вload
функцию, что должно значительно ускорить ее.2. @xdurch0 вау, это только что заставило его загружаться в 10 раз быстрее! Так что, я думаю, это не отвечает на него, но делает его почти «устаревшим», что для меня даже лучше — спасибо
Я оставляю этот вопрос здесь, хотя, кто знает, может быть, однажды мне понадобится это для гораздо больших файлов.