When you encode in one hardware and try to decode on a different machine it will fail to decode even using the same versions for all libraries.
It should decode as both machines are using encodec 0.1.1 and torch 2.4.1 and python 3.9.13
PS E:\voice_notes\decode> python.exe -m encodec .\20241009121035.wav.ecdc
Traceback (most recent call last):
File "C:\Users\Paulo\scoop\apps\python39\current\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\Paulo\scoop\apps\python39\current\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\__main__.py", line 123, in <module>
main()
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\__main__.py", line 92, in main
out, out_sample_rate = decompress(args.input.read_bytes())
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\compress.py", line 185, in decompress
return decompress_from_file(fo, device=device)
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\compress.py", line 143, in decompress_from_file
code = decoder.pull(q_cdf)
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\quantization\ac.py", line 255, in pull
sym, self.low, self.high, self.current = bin_search(0, len(quantized_cdf) - 1)
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\quantization\ac.py", line 250, in bin_search
return bin_search(mid + 1, high_idx)
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\quantization\ac.py", line 250, in bin_search
return bin_search(mid + 1, high_idx)
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\quantization\ac.py", line 252, in bin_search
return bin_search(low_idx, mid - 1)
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\quantization\ac.py", line 252, in bin_search
return bin_search(low_idx, mid - 1)
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\quantization\ac.py", line 252, in bin_search
return bin_search(low_idx, mid - 1)
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\quantization\ac.py", line 250, in bin_search
return bin_search(mid + 1, high_idx)
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\quantization\ac.py", line 250, in bin_search
return bin_search(mid + 1, high_idx)
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\quantization\ac.py", line 250, in bin_search
return bin_search(mid + 1, high_idx)
[Previous line repeated 1 more time]
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\quantization\ac.py", line 252, in bin_search
return bin_search(low_idx, mid - 1)
File "C:\Users\Paulo\scoop\apps\python39\current\lib\site-packages\encodec\quantization\ac.py", line 238, in bin_search
raise RuntimeError("Binary search failed")
RuntimeError: Binary search failed
It has happened multiple times using different machines. I have old encoded files that I am unable to decode on any machine now.
🐛 Bug Report
When you encode in one hardware and try to decode on a different machine it will fail to decode even using the same versions for all libraries.
To Reproduce
Expected behavior
It should decode as both machines are using encodec 0.1.1 and torch 2.4.1 and python 3.9.13
Actual Behavior
The decoding fails with this error:
It has happened multiple times using different machines. I have old encoded files that I am unable to decode on any machine now.
Your Environment
machine A - encoder) 16gb, notebook, Intel(R) Pentium(R) CPU 4405U @ 2.10GHz
machine B - decoder) 48gb, AMD Ryzen 5 3600 6-Core Processor