Этот вопрос может показаться дубликатом: Python: ufunc 'add' не содержит цикла с сигнатурой, соответствующей типам dtype('S21') dtype('S21') dtype('S21') Но представленное выше решение не работает.
В настоящее время я работаю над https://github.com/executable16/audio-fingerprint-identifying-python, поэтому я не стал вставлять сюда весь код. Я получаю ошибку в основном:
Traceback (most recent call last):
File "recognize-from-microphone.py", line 139, in <module>
matches.extend(find_matches(channel))
File "recognize-from-microphone.py", line 132, in return_matches
yield (sid, offset - mapper[hash])
numpy.core._exceptions.UFuncTypeError: ufunc 'subtract' did not contain a loop with signature matching types (dtype('S21'), dtype('S21')) -> dtype('S21')
sqlite - connection has been closed
make: *** [Makefile:22: recognize-listen] Error 1
На мой взгляд, это исключение на самом деле очень мало говорит о том, в чем здесь дело. Я пробовал другие решения от SO, но они, похоже, не работали.
Точная строка ошибки: yield (sid, offset - mapper[hash])
Типы sid, offset и mapper[hash] равны <class 'int'> <class 'bytes'> and <class 'numpy.int64'>
соответственно.
Любое решение этой проблемы с надлежащим объяснением было бы действительно полезно.
S21
dtype, т.е. байтовыми строками. - person hpaulj   schedule 20.04.2020