File not found
Compass816 opened this issue · comments
Calculating fingerprint by fpcalc for 754942426.wav
Traceback (most recent call last):
File "E:\...\compare.py", line 20, in <module>
correlate(SOURCE_FILE, TARGET_FILE)
File "E:\...\correlation.py", line 107, in correlate
fingerprint_source = calculate_fingerprints(source)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\...\correlation.py", line 30, in calculate_fingerprints
fpcalc_out = str(subprocess.check_output(['fpcalc', '-raw', '-length', str(sample_time), filename])).strip().replace('\\n', '').replace("'", "")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\***\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 465, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\***\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 546, in run
with Popen(*popenargs, **kwargs) as process:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\***\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 1022, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\***\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 1491, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] The system cannot find the file specified
Hi there, you also need to download the file chromaprint-fpcalc-1.5.1-windows-x86_64.zip (1.5 MB) from https://acoustid.org/chromaprint
Then please unzip the binary file (.exe) into the same folder with the compare.py
.
After that, you should see the fpcalc.exe is in the same place with compare.py
and correlation.py
. Hence in line 30 in correlation.py
, the subprocess can be able to call the fpcalc for your audio file
And if you found the same error as me while comparing audio files like:
...
File "H:\audio-compare\correlation.py", line 37, in calculate_fingerprints
fingerprints = list(map(int, fpcalc_out[fingerprint_index:].split(',')))
ValueError: invalid literal for int() with base 10: '3497912292\\r'
You can add the .replace("\\r", "")
to line 30 in correlation.py
. Your line 30 should end up like this:
fpcalc_out = str(subprocess.check_output(['fpcalc', '-raw', '-length', str(sample_time), filename])).strip().replace('\\n', '').replace("'", "").replace("\\r", "")