alphacep / vosk-api

Offline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node
Apache License 2.0
7.37k stars 1.04k forks source link

Undefined symbols from libks in freeswitch #1480

Closed cdisk closed 6 months ago

cdisk commented 6 months ago

I downloaded the mod_vosk source code from [https://github.com/alphacep/freeswitch/tree/master/src/mod/asr_tts/mod_vosk].

Then I downloaded the vosk-fix branch code from [https://github.com/alphacep/libks].

I have successfully installed libks-vosk-fix. I compiled mod_vosk.so successfully.

However, when I try to load mod_vosk in freeswitch, it gives an error: mod_vosk.so: undefined symbol: __ks_json_add_string_to_object**.

Could you please help me with a solution?

nshmyrev commented 6 months ago

You can use ldd mod_vosk.so to see which libks is actually loaded, most likely you have some other conflicting version of libks somewhere.

cdisk commented 6 months ago

root@debian-11:/usr/local/freeswitch/mod# ldd mod_vosk.so linux-vdso.so.1 (0x00007ffce6563000) libfreeswitch.so.1 => /usr/local/freeswitch/lib/libfreeswitch.so.1 (0x00007fb38fbd8000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb38f9f9000) libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fb38f9f0000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb38f9ce000) libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fb38f88b000) libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fb38f7c8000) libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x00007fb38f72a000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fb38f6b7000) libspeex.so.1 => /lib/x86_64-linux-gnu/libspeex.so.1 (0x00007fb38f69c000) libspeexdsp.so.1 => /lib/x86_64-linux-gnu/libspeexdsp.so.1 (0x00007fb38f687000) libedit.so.2 => /lib/x86_64-linux-gnu/libedit.so.2 (0x00007fb38f64e000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb38f648000) libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fb38f60c000) libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007fb38f579000) libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007fb38f285000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb38f0b8000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb38ef74000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb38ef5a000) libodbc.so.2 => /lib/x86_64-linux-gnu/libodbc.so.2 (0x00007fb38eee6000) /lib64/ld-linux-x86-64.so.2 (0x00007fb390025000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fb38eec9000) libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007fb38eebb000) libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007fb38ee8e000) libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007fb38ee6d000) librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007fb38ee4c000) libssh2.so.1 => /lib/x86_64-linux-gnu/libssh2.so.1 (0x00007fb38ee17000) libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007fb38ee03000) libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fb38edb0000) libldap_r-2.4.so.2 => /lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007fb38ed5a000) liblber-2.4.so.2 => /lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007fb38ed49000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007fb38ed18000) libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fb38ed01000) libltdl.so.7 => /lib/x86_64-linux-gnu/libltdl.so.7 (0x00007fb38ecf6000) libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007fb38ecd3000) libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007fb38eb51000) libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fb38e94f000) libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007fb38e906000) libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007fb38e8be000) libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fb38e83d000) libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fb38e71d000) libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fb38e643000) libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fb38e611000) libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fb38e60b000) libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fb38e5fc000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fb38e5e2000) libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fb38e5c5000) libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007fb38e5b8000) libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fb38e482000) libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fb38e46c000) libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fb38e446000) libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fb38e43f000) libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007fb38e433000) root@debian-11:/usr/local/freeswitch/mod#

This is the result printed by "ldd"

Can you help me check it.

Lhminggit commented 6 months ago

I also encountered the same problem, I used the freeswitch1.8.7 version, has been reporting this error, tried a lot of libks versions are not good, is it my operational error, I would like to ask how to solve. An invalid function is attached as follows. root@debian-11:/usr/local/freeswitch/mod# ldd -r mod_vosk.so linux-vdso.so.1 (0x00007ffd7dbd4000) libfreeswitch.so.1 => /usr/local/freeswitch/lib/libfreeswitch.so.1 (0x00007fecaa5d4000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fecaa3f5000) libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fecaa3ec000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fecaa3ca000) libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fecaa287000) libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fecaa1c4000) libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x00007fecaa126000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fecaa0b3000) libspeex.so.1 => /lib/x86_64-linux-gnu/libspeex.so.1 (0x00007fecaa098000) libspeexdsp.so.1 => /lib/x86_64-linux-gnu/libspeexdsp.so.1 (0x00007fecaa083000) libedit.so.2 => /lib/x86_64-linux-gnu/libedit.so.2 (0x00007fecaa04a000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fecaa044000) libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fecaa008000) libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007feca9f75000) libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007feca9c81000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007feca9ab4000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007feca9970000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007feca9956000) libodbc.so.2 => /lib/x86_64-linux-gnu/libodbc.so.2 (0x00007feca98e2000) /lib64/ld-linux-x86-64.so.2 (0x00007fecaaa21000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007feca98c5000) libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007feca98b7000) libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007feca988a000) libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007feca9869000) librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007feca9848000) libssh2.so.1 => /lib/x86_64-linux-gnu/libssh2.so.1 (0x00007feca9813000) libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007feca97ff000) libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007feca97ac000) libldap_r-2.4.so.2 => /lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007feca9756000) liblber-2.4.so.2 => /lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007feca9745000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007feca9714000) libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007feca96fd000) libltdl.so.7 => /lib/x86_64-linux-gnu/libltdl.so.7 (0x00007feca96f2000) libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007feca96cf000) libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007feca954d000) libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007feca934b000) libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007feca9302000) libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007feca92ba000) libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007feca9239000) libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007feca9119000) libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007feca903f000) libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007feca900d000) libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007feca9007000) libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007feca8ff8000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007feca8fde000) libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007feca8fc1000) libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007feca8fb4000) libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007feca8e7e000) libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007feca8e68000) libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007feca8e42000) libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007feca8e3b000) libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007feca8e2f000) undefined symbol: ks_json_add_string_to_object (./mod_vosk.so) undefined symbol: kws_read_frame (./mod_vosk.so) undefined symbol: ks_init (./mod_vosk.so) undefined symbol: kws_connect_ex (./mod_vosk.so) undefined symbol: ks_shutdown (./mod_vosk.so) undefined symbol: ks_json_create_object (./mod_vosk.so) undefined symbol: ks_json_delete (./mod_vosk.so) undefined symbol: kws_wait_sock (./mod_vosk.so) undefined symbol: ks_global_set_default_logger (./mod_vosk.so) undefined symbol: ks_pool_tagged_open (./mod_vosk.so) undefined symbol: ks_pool_close (./mod_vosk.so) undefined symbol: kws_destroy (./mod_vosk.so) undefined symbol: kws_close (./mod_vosk.so) undefined symbol: kws_write_frame (./mod_vosk.so)

nshmyrev commented 6 months ago

Ok, feels like you have trouble to link with libks. If you installed libks you need to make sure that pkg-config finds it in /usr/local/lib, you need to set PKG_CONFIG_PATH. Check config.log for details where it looks for libks and share it if needed.

cdisk commented 6 months ago

I understand what the problem was now. I hadn’t made any modifications to the configure.ac and freeswitch.spec files in the Freeswitch source code. Once I made modifications to these two files, the compilation was successful and it became usable. Thank you very much for your help.

nshmyrev commented 6 months ago

Ok, let us know how it goes