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:
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):
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,