Я видел несколько потоков с этой проблемой, но я не могу найти тот, который применим к моей ситуации. Я использую библиотеку под названием audiodiff, которая по существу говорит вам, имеют ли два аудиофайла одинаковое содержимое. Я записал ранее сохраненные файлы.wav, которые я хочу проверить. Вот код:
import audiodiff
print audiodiff.audio_equal('output1.wav', 'output2.wav', ffmpeg_bin=None)
Вот результат, который я получаю в терминале, когда я его запускаю:
File "/usr/local/lib/python2.7/dist-packages/audiodiff/__init__.py", line 51, in audio_equal
return checksum(name1, ffmpeg_bin) == checksum(name2, ffmpeg_bin)
File "/usr/local/lib/python2.7/dist-packages/audiodiff/__init__.py", line 86, in checksum
stderr=subprocess.PIPE)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
Объяснения, которые я видел здесь, имеют какое-то отношение к компакт-диску, но все мои файлы находятся в одной папке. Итак, я не уверен, как это применимо. Любое понимание этого было бы удивительным. ТИА.
Вы можете создавать абсолютные пути к файлам с os.path
инструментов Python os.path
:
import os
fname = os.path.join(path_to_output1, 'output1.wav')
Если вам нужно захватить путь в начале приложения, прежде чем делать какой-либо каталог изменений, вы можете это сделать:
path = os.getcwd() # Get the current path where the application was started
Не зная полного исходного кода, макета каталога и точного вызова программы, трудно сказать больше.
Больше информации:
https://docs.python.org/3.4/library/os.path.html?highlight=path#module-os.path
Вы проверяли зависимости для audiodiff?
audiodiff требует, чтобы FFmpeg был установлен в вашей системе. По умолчанию путь ffmpeg, но вы можете изменить его, используя следующие способы (более поздние правила имеют приоритет над более ранними).
- Свойство модуля audiodiff.FFMPEG_BIN
- Переменная среды FFMPEG_BIN
- флаг ffmpeg_bin (только для командной строки)