2015-04-01 3 views
1

Я видел несколько потоков с этой проблемой, но я не могу найти тот, который применим к моей ситуации. Я использую библиотеку под названием audiodiff, которая по существу говорит вам, имеют ли два аудиофайла одинаковое содержимое. Я записал ранее сохраненные файлы .wav, которые я хочу проверить. Вот код:errno 2: Нет такого файла или каталога

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 

объяснения, которые я видел здесь есть что-то делать с компакт-диска , но все мои файлы находятся в одной папке. Итак, я не уверен, как это применимо. Любое понимание этого было бы удивительным. ТИА.

+0

Вы уверены, что вы запускаете скрипт из каталога, содержащего оба файла? – KSFT

ответ

1

Вы можете сделать абсолютные пути к файлам с помощью языка 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

+0

Эти две строки кода - это буквально весь код. Только один .py файл с двумя двумя Wav-файлами в одном каталоге. Я не уверен, нужно ли мне учитывать, где хранится библиотека, которую я использую, или нет. – discodane

+0

Я думаю, проблема в том, что он не находит ваши двоичные файлы ffmpeg, а не то, что он не находит ваши аудиофайлы. –

+0

Это имеет смысл. Как это настроить? что я могу сказать, где найти бинарные файлы ffmpeg? – discodane

0

Вы проверили зависимости для audiodiff?

audiodiff требует установки FFmpeg в вашей системе. По умолчанию путь ffmpeg, но вы можете изменить его, используя следующие способы (более поздние правила имеют приоритет над более ранними).

  1. модуль audiodiff.FFMPEG_BIN свойство
  2. FFMPEG_BIN переменная среды
  3. ffmpeg_bin флаг (инструмент командной строки только)
Смежные вопросы