T-vK/Termux-DeepSpeech

Error "ffmpeg": cannot locate symbol "_ZNSt6..." on speech2text script execution

Opened this issue · 2 comments

Hello,

First, thanks very much for this script creation, it's very interesting!

I have been able to solve the error, just i want to notify the proble and share the solution.

I have tryed to run, but i get the next error:


CANNOT LINK EXECUTABLE "ffmpeg": cannot locate symbol "_ZNSt6__ndk16__itoa8__u32toaEjPc" referenced by "/data/data/com.termux/files/usr/lib/libopenmpt.so"...
Unexpected type for ./tmp.wav: 0

The missing symbol should be supplied by the "libc+++_shared.so" library.
I have tryed preloading the lib from Termux lib dir before executing "speech2text" using the next command:


env LD_PRELOAD=/data/data/com.termux/files/usr/lib/libc++_shared.so ./Termux-DeepSpeech/speech2text

And now "speech2text" script runs fine.
So it seems that the libc++ version supplied by deepspeech is obsolete.

I have found two solutions:

  1. Set the LD_PRELOAD variable al the start of the "speech2text" script addinge the next line:
    LD_PRELOAD=/data/data/com.termux/files/usr/lib/libc++_shared.so
  2. Modify the script to update de lib in ".Termux-DeepSpeech/deepspeech-bin/" dir from the Termux one.

Thanks again.

Berbascum

dp0s commented

Hey Berbascum,

Thanks for sharing. I had the same error and your solution 1 fixed it for me. Now the script is running.

(On a side not, I didn't know how to add a line to the script from within Termux.. So I used root privileges to do it from another app.)

dp0s commented

And thanks @T-vK for porting this to Termux! It is hard to find a working offline speech recognition for it.