Closed some-vec-byte closed 3 years ago
hi,
in theory it should work (as Raspberry Pi is Linux system). I just gave it a quick try on my Raspberry Pi 3b. The first difference is in prereqs:
sudo apt-get update
sudo apt-get install clang build-essential libssl1.0.2 libasound2 wget
sudo apt-get install libclang1-3.9
i.e. different version of libssl lib + I had to install libclang1-3.9
Then I tried to compile and got this error:
pi@raspberrypi:~/cognitive-services-speech-sdk-rs $ cargo build
Compiling cognitive-services-speech-sdk-rs v0.1.2 (/home/pi/cognitive-services-speech-sdk-rs)
error[E0308]: mismatched types
--> src/audio/pull_audio_input_stream.rs:191:25
|
191 | value as *mut i8,
| ^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
|
= note: expected raw pointer `*mut u8`
found raw pointer `*mut i8`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0308`.
error: could not compile `cognitive-services-speech-sdk-rs`
To learn more, run the command again with --verbose.
pi@raspberrypi:~/cognitive-services-speech-sdk-rs $ ^C
All it took to compile was really to change the line https://github.com/jabber-tools/cognitive-services-speech-sdk-rs/blob/main/src/audio/pull_audio_input_stream.rs#L191
I changed i8 to u8. No comments on that yet, I need to investigate more why this is needed. Anyway then it compiled.
When I try to compile the examples though, it fails (not during compilation but during linking) :
pi@raspberrypi:~/cognitive-services-speech-sdk-rs $ cargo run --example recognizer
Compiling cognitive-services-speech-sdk-rs v0.1.2 (/home/pi/cognitive-services-speech-sdk-rs)
error: linking with `cc` failed: exit code: 1
|
= note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-Wl,--eh-frame-hdr" "-L" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.0.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.1.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.10.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.11.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.12.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.13.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.14.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.15.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.2.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.3.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.4.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.5.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.6.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.7.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.8.rcgu.o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.recognizer.5bkkhskd-cgu.9.rcgu.o" "-o" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/examples/recognizer-4f3b5c58e8f96487.r0ueaxrm11irf6g.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps" "-L" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/build/cognitive-services-speech-sdk-rs-1194593321c53af6/out/SpeechSDK/linux/lib/x64" "-L" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib" "-Wl,-Bstatic" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libenv_logger-beb2484e44a15bb5.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libatty-6379ac8f780e365c.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libtermcolor-a305625d34e35270.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libhumantime-7e978838208ce956.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libregex-32c5482bb00e1c70.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libregex_syntax-4f1a25c1a9a2163a.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libaho_corasick-995d1499d505f3e3.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libcognitive_services_speech_sdk_rs-3653471aedb81b13.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libtokio-392ebbbf898672dc.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libsignal_hook_registry-d36a526090fe44ee.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libnum_cpus-134da4bdb3e11751.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libmemchr-196babfb663d0582.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libonce_cell-a213c076f00811ee.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libbytes-fc1a83c319c049b5.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libmio-4880ac575d448f3d.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libpin_project_lite-b91e8539804b0703.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libparking_lot-b76cdab12ea71e6f.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libparking_lot_core-22da37e3c86ef3fc.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/liblibc-3bf16083963a3615.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libsmallvec-dc5df693e963ab44.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/liblock_api-c34d421b07472ca8.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libscopeguard-87a7faa7f6125051.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libinstant-b7a0ec56d72f1a12.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/liblog-3d1d491ac4d350ef.rlib" "/home/pi/cognitive-services-speech-sdk-rs/target/debug/deps/libcfg_if-bb6f2256888cea0c.rlib" "-Wl,--start-group" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libstd-85737748b88fdb0c.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libpanic_unwind-5f30322e02cdba81.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libminiz_oxide-66e6453c2c9f3133.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libadler-89ef23770d36ddae.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libobject-f370ec13ab09536f.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libaddr2line-6025682b9782653b.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libgimli-4c4d80e5d0e6d364.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/librustc_demangle-12d79adf0a84df87.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libhashbrown-2be7398cd27b971e.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/librustc_std_workspace_alloc-14eb01f327f4faf1.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libunwind-0ecf14c724bd27c7.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libcfg_if-85d17447bbfdc6e3.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/liblibc-c098ab12ade5141a.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/liballoc-5e9abecb59bcebc8.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/librustc_std_workspace_core-8a8905ab7c778227.rlib" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libcore-c6377c18ec6480a5.rlib" "-Wl,--end-group" "/home/pi/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libcompiler_builtins-253133ce567fc061.rlib" "-Wl,-Bdynamic" "-lMicrosoft.CognitiveServices.Speech.core" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc"
= note: /home/pi/cognitive-services-speech-sdk-rs/target/debug/build/cognitive-services-speech-sdk-rs-1194593321c53af6/out/SpeechSDK/linux/lib/x64/libMicrosoft.CognitiveServices.Speech.core.so: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
error: aborting due to previous error
error: could not compile `cognitive-services-speech-sdk-rs`
To learn more, run the command again with --verbose.
pi@raspberrypi:~/cognitive-services-speech-sdk-rs $
It seems there is some issue with linking MS speech libraries (libMicrosoft.CognitiveServices.Speech.core.so), for now I did not undertake any further investigation. Do you feel like helping with this? I think the issue is this shared library is simply not indented for ARM, not sure whether MS Speech SDK libraries are available for ARM, this must be checked.
based on this it does not relally see ARM is supported: https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/speech-sdk?tabs=windows%2Cubuntu%2Cios-xcode%2Cmac-xcode%2Candroid-studio
closing as ARM is not supported by underlying Speech SDK hence we cannot really support it.
Hey, Is there a possibility that there will be support for the raspberry pi 4?