Hi,
I am trying to run a native client in an Asus Thinkerboard card that has an architecture similar to Raspberry Pi3 (armv7l 32 bit).
But I am a bit stuck now.
The steps I followed are:
-
Create a clean OS SD with ThinkerOS (Debian), install Miniconda3 (because some python packages are available without compilation there), create a conda environment deep-spech with python 2.7.
-
Install DeepSpeech with the instructions from README.md, except for tensorflow that has to be compiled because no package is availabe neither in pip nor in conda, and anyway I need the compilation for native client.
Obviously the download native_client from taskcluster is not working, because it is the linux 64bit one. -
Compile bazel an tensorflow from scratch with these instructions:
https://github.com/samjabrahams/tensorflow-on-raspberry-pi/blob/master/GUIDE.md
WARNING: tensorflow code is retrieved from mozilla/tensorflow not from tensorflow site -
Compile DeepSpeech native_client with the instructions here (not language bindings, just custom decoder):
https://github.com/mozilla/DeepSpeech/blob/23c8dcffcf9337c394301d2756976b234729cc9b/native_client/README.md
NOTE: those steps were made in both cards, Thinkerboard and RaspberryPi3 -
Finally, try to run a pretrained toy spanish model (that I have used before in my Mac with success) with native client and some test wav files
This same error appears in both cards RP3 and Thinker:
Invalid argument: No OpKernel was registered to support Op āSparseToDenseā with these attrs. Registered devices: [CPU], Registered kernels:
device=āCPUā; T in [DT_STRING]; Tindices in [DT_INT64]
device=āCPUā; T in [DT_STRING]; Tindices in [DT_INT32]
device=āCPUā; T in [DT_BOOL]; Tindices in [DT_INT64]
device=āCPUā; T in [DT_BOOL]; Tindices in [DT_INT32]
device=āCPUā; T in [DT_FLOAT]; Tindices in [DT_INT64]
device=āCPUā; T in [DT_FLOAT]; Tindices in [DT_INT32]
device=āCPUā; T in [DT_INT32]; Tindices in [DT_INT64]
device=āCPUā; T in [DT_INT32]; Tindices in [DT_INT32]
[[Node: SparseToDense = SparseToDense[T=DT_INT64, Tindices=DT_INT64, validate_indices=true](CTCBeamSearchDecoder, CTCBeamSearchDecoder:2, CTCBeamSearchDecoder:1, SparseToDense/default_value)]] -
I found this post Error with sample model on Raspbian Jessie
And I download the precompiled raspberry libraries from here: https://index.taskcluster.net/v1/task/project.deepspeech.deepspeech.native_client.master.arm/artifacts/public/native_client.tar.xz
Those libraries do not include libctc_decoder_with_kenlm.so, and I kept the compiled one I had. -
With the raspberry libraries, the model at the raspberry card is working FINE :-), but the thinkerboard throws a new error:
Thread 1 ādeepspeechā received signal SIGILL, Illegal instruction.
0xb692de84 in tensorflow::(anonymous namespace)::GraphConstructor::TryImport() () from /home/ftx/fonotexto/herramientas/DeepSpeech/libdeepspeech.so -
I run out of ideas and post a question to you to get any new hint that can unblock me.
This is the overview of the history, if you need additional details let me know.
Thanks a lot for your help,
Mar