How to: Run Wyoming Satellite and OpenWakeWord on Android

Thanks for the reply. Ill try that on my fire tablet and see if i can get further.

As far as stability with the Lenovo TSV devices. Any tips or tricks? Mine seem to lose satellites and then nothing works. Unsure whats going on. Also the termux:boot apk doesnt seem to restart the service on the devices after rebooting. Unsure whats going on there. Would really love an enterprising android dev to hammer out a solid/stable wyoming apk or something similar to hassmic (GitHub - jeffc/hassmic: An application for Home Assistant that allows you to use an android device as a voice assist satellite) which i was hopeful for but also has instability issues. Could very well be the TSVs themselves but i have no idea how to tell.

Also, i get wakeword to trigger but then it just freezes at DEBUG:root:Unmuted microphone

That seems to have worked to get the satellite running! Thanks.

However the latest HA update seems to have broken my Assist… :stuck_out_tongue:

Cheers.

1 Like

Does anyone see a lot of “Server disconnected” logs? Are they talking about HA or are they talking about wyoming-satellite trying to connect to openwakeword? “Connected to server, waiting for wake word, loading alexa_v0.1, ping enabled, server disconnected” Seems like its openwakeword that is the problem?? This is on a fire hd 10. It works when it first starts up, but then stops after a while. Same goes with my TSVs but i havent looked at the logs for them to see if they’re similar.

I can confirm this solved the problem on my Amazon Fire 10 tablet 2021 release. Pipeline is working with OK Nabu!

Amazon Fire 8 working with this modification.

Thank you!

Hello,
Can i ask for help ?
I tryed many install script, manualy install everything but all time i get that error:

I dont have any more idea … in that folder python3 don’t exist

I had the same problem.
I needed “su” on a rooted phone.
I did not tried to change the installation script.

rooting tablet is not an option - still on warranty

Hello after some time. I tried both versions of wake word service. The udocker one and the installation from your script. I preferer your version because it’s native. It works well on my old phone with custom rom and Android 13. But my target device is NS Panel pro, which is powered by Android 8.

My issue is that, the sound recording doesn’t work well. The ouptut sounds like its 10x faster than original. I tried multiple commands like rec or parec. All od them ends the same. The only command, which works is the termux-microphone-record. But it’s not useful for the satellite. I also tried the version of pulse audio mentioned in this thread. Nothing changes. Went anyone of you to the same situation and were able to handle it?

For the record. I even tried the hass mic intgration. It works. But only from small distance and it doesn’t have the mic gain option. So it has potentional, but it’s not useful yet.

If the output is played faster or slower than it’s supposed to then the player is probably assuming a different sample rate than the recorder used. E. g. a raw audio file recorded at 22050 Hz and played at 44100 Hz will play at 2x speed. So make sure to use the appropriate flags to explicity set the recording and playback sample rate.

No root should be required to run Wyoming Satellite or OpenWakeword.

If it can’t find python in that directory then something went wrong during the installation where the venv is generated. Maybe try reinstalling.

As i mentioned i tryed many install scripts (your even 7 times) everytime same issue. I reinstalled it like 20 or 25 times already with no result

My screen is stuck at "(It might ask you for mic access now. Select ‘Always Allow’.) but nothing else happens. Has anyone else experienced this and been able to get around it???

Are you running the script via ssh or localy from Termux app? I had the same problem. Running it directly from Termux, not ssh, helped.

That’s what I actualy tried before posting. But it didn’t solve my problem.

This was on Android 13

So couple of things I learned as I finally got it working, these must be done before installation:

  1. You need to give termux microphone access, its disabled by default
  2. You should run ‘termux-setup-storage’ and give all file access
  3. Reboot

Install Wyoming then reboot the tablet.

After reboot launch termux and tail the log file (it’s in the directory your dropped into be default) - it will give provide you with valuable information. This is how I was able to figure it out.

My only qualm now is that it’s slow.

Is it expected behavior that every time you reboot the tablet it get’s discovered as a “New” Integration??

I just thought I’d come here to add, I’ve made a fork of this fantastic work that @randomuser123 has done, I’m currently testing it out primarily for the view assist project (but really it should work on any Android device). It features:

  • GUI based installer
  • Options to set your own device name
  • An event forwarder so events from and to the satellite are forwarded onto the HA event bus (full list of events is here GitHub - rhasspy/wyoming: Peer-to-peer protocol for voice assistants)
  • Configuration for different wakewords
  • Configuration file that is easy to modify in a single location ($HOME/wyoming.conf)
  • Command line interface to update components (wyoming-cli)
  • Squeezelite player
  • Disabled zeroconf to prevent HA from detecting as a new integration on each restart
  • Injected faulthandler (to prevent the SIGSYS:31 error on certain devices)

Rather than running a script on boot, it uses services too so each component can be updated and restarted independently of each other.

Current development branch: GitHub - pantherale0/wyoming-satellite-termux: A set of scripts allowing you to run wyoming-satellite on Android with Termux (modified for service usage)

Next plans will be to add an implementation of microwakeword for very low power devices (although I’ve had openwakeword working great so far).

None of this would have been possible without the work that @randomuser123 has done to get Wyoming even running in Termux in the first place. So big shout out!

10 Likes

Great work :+1:

Though the repo link currently goes to a 404. Maybe it should just go to the repository itself: GitHub - pantherale0/wyoming-satellite-termux: A set of scripts allowing you to run wyoming-satellite on Android with Termux (modified for service usage)

I just tried an install using your script and installer. However I encounter an issue of; fail: wyoming-eventsL unable to change to service directory: file does not exist.

I’d have created an issue on the repository, but it doesn’t have Issues enabled.

Yes, you are correct, I dropped the merged branch a little while ago. Have updated the comment.

There are some errors that are shown if you’ve never installed before. Providing it completes successfully at the end they can be ignored for the most part. It raises some errors around microphones at some point if they can’t be found, but I think they are pretty quiet.

Logging does need to be improved.

1 Like

Ah okay. Well, things seem to be working now.

I was confused why the wake word selection of “Alexa” did not work. However I found in wyoming.conf that it has repeated variables in there, so it was listening for “Ok Nabu”.

I believe this is from subsequent calls to --configure which I guess have just appended to the config file.