razzo04 / rhasspy-mobile-app

A simple mobile app for rhasspy.
MIT License
118 stars 13 forks source link

Wear OS App? #4

Open joeduck opened 3 years ago

joeduck commented 3 years ago

Hi,

it would be nice if this app works also on Wear OS like this:

Press a Watch Button, while press the button, the App streams the Audio to Rhasspy base and do there the processing of the command. So we can use the Watch as satelitte and can speak to Rhasspy base without the need of an satelitte in the room.

razzo04 commented 3 years ago

This could be done but since I don't have access to a physical device to test on, development is not easy. if you have a smartwatch with wear OS I could initially try the development thanks to the emulator and then release a beta so you can try the app and if it doesn't work properly you could open an issue.

joeduck commented 3 years ago

Thanks for your reply. This time i have only a Pebble Time Steel :-) . But if there will be an App i will buy a Wear OS Watch. This App would be great, always a Satellite on the Wrist. If you realize this App, it would be amazing if the Wake Up of the App is triggered by the Movement from the Watch to the Mouth by the accelerometer of the Watch.

You should really think about an Donate Page, i think many People will donate for such a App (me too :-) ).

I can post a Link to this Issue in the Rhasspy Forum. Perhaps one of the Users has a Watch with Wear OS. I will look this Days online for a Watch ond order one.

razzo04 commented 3 years ago

I could add a donation page to keep myself even more motivated to the development of the app and perhaps in the future, I will be able to run the app on Wear OS. Anyway, nice idea of using the accelerometer to wake up the app, when I manage to make it work on a smartwatch I’ll add this functionality.

joeduck commented 3 years ago

Is it for the Development much work to create a Tizen App for the Galaxy watch? Is there a Cross Platform development possible? Or Wear OS is near by Android so that a Watch with Wear OS is better?

razzo04 commented 3 years ago

This app was developed thanks to the flutter framework this allows the application to run on various platforms such as Android, iOS, Web, Windows, Linux and macOS but does not officially support Tizen OS this leads to having to do a lot of work in case you want to support it.

joeduck commented 3 years ago

Have now a Wear OS Watch. I am ready for testing if you want.

Greetings

razzo04 commented 3 years ago

Okay, I don’t think I can produce anything this week, but by the next week, I should be able to share an experimental version. Could you tell me what model of smartwatch you have?

joeduck commented 3 years ago

Don´t rush :-). My Watch is a Ticwatch Pro3. Had installed the Flutter Framework an do a look. Perhaps i can help.

But this time im Program only with Perl, PHP, Python... Thanks a lot.

razzo04 commented 3 years ago

I have created a new branch where it is the new code for the wear os app. I have tried with the emulator and it seems to work pretty well obviously the UI doesn't fit well on a small screen but this can be fixed later.

from what I read on the internet to run the app on a smartwatch you need to set up ADB wireless and then you can do flutter run. Thanks in advance for your time

joeduck commented 3 years ago

Hi, many thanks for Your time 😊

Got it running on the watch, but cant test it because dont reach the setting to insert ip adress etc. Is there a remote tool in the Android studio to insert the settings? 2021-01-14 17_15_24-Window

razzo04 commented 3 years ago

As I except there are differences between the emulator and real devices, on the emulator I could still click to navigate between pages. Anyway, with the last update, a swipe is enough to navigate between pages.

joeduck commented 3 years ago

Hi, sorry cant swipe. Only below the blue bar in can scroll down. But dont reach the settings.

  Von: razzo04 notifications@github.com Gesendet: Freitag, 15. Januar 2021 21:06 An: razzo04/rhasspy-mobile-app rhasspy-mobile-app@noreply.github.com Cc: Jochen Entenmann jochen@entenmann.info; Author author@noreply.github.com Betreff: Re: [razzo04/rhasspy-mobile-app] Wear OS App? (#4)

  As I except there difference between the emulator and real devices, on the emulator I could still click to navigate between pages. However, with the last update, a swipe is enough to navigate between the pages.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

razzo04 commented 3 years ago

In the latest version, I removed the blue bar because it didn’t fit right on the screen. Did you download the latest version?

joeduck commented 3 years ago

Have still the blue bar. Uninstalled App on Watch. Deleted "C:\src\rhasspy-mobile-app". In git changed branch to "wear_os_app". Then copied Link and in src Dir "git clone https://github.com/razzo04/rhasspy-mobile-app.git".

Started Android studio with the project, connected watch with adb and run. Anything wrong? :-)

razzo04 commented 3 years ago

I guess git isn’t taking into account the branch change so you could try to pass on git clone the branch name.

git clone -b wear_os_app https://github.com/razzo04/rhasspy-mobile-app.git

Then if you want to run the app you can use android studio or flutter run.

cd rhasspy-mobile-app
flutter run
joeduck commented 3 years ago

Hi. Thanks This did the Trick. I can go to the settings and insert values. But it is very hard to insert the values. After that it works. Sadly very, very, very slow. But it works :-)

razzo04 commented 3 years ago

I’m glad it works. What problem did you encounter when entering values? What are your tips for improving the UI? At least for future people who will try to set-up the application, the process will be easier.

joeduck commented 3 years ago

Hi, sorry fort he late answer. Entering Values on the watch is only possible with write with the fingers on the screen. Using oft he on screen keyboard ist not really usable cause you dont see what you are enter.

  I send you some screenshots. I think for display on the watch the ui should be 50 percent from the normal ui.

  What i see when i use the app:

 

  The app can only work over WLAN. I had to disconnect bluetooth on the phone to get the app working.

Think the better way would be to have a companion app to the smartphone app. But this is sure to much work.

  Another way perhaps is to have a MQTT Audio streamer that only streams the audio to the server over a companion app over bluetooth.

  Greetings and thanks for your Work!

razzo04 commented 3 years ago

Thank you for sharing your experience.

Most likely the app is slow because it was compiled in debug mode and not release and so you could try to run the command "flutter run --release" or change the settings on Android studio.

I will try to resize the UI again to make visible what you are typing. Where did you send the images? I couldn’t find them.

I think that is too much work to develop any kind of companion app even for streaming only the audio. I will investigate why the app doesn't work if Bluetooth is enabled. Thanks again for your time.

joeduck commented 3 years ago

Hi, had to set up my pc new. Actual no flutter installed. Can youd compile the apk? With the mails it seem there are no images treansfered to github.

I load it up here, hope it helps :-)

screen0 screen1 screen2 screen3

razzo04 commented 3 years ago

Thank you for sending the images, I will try to improve the UI.

I compiled the app in release mode and I realized that its size is 48 Mb so I guess I’ll have to do some optimizations but in the meantime, if you want to try it. app-release.zip

joeduck commented 3 years ago

Hi. Had installed the apk and it is mutch more quick. But cant connect to Rhasspy. IP and Port are right and the watch has connected to the WLAN.

What a shame, it would have been a great solution to always have Rhaspy on your wrist.

thank you anyway for your effort

razzo04 commented 3 years ago

Sorry that it doesn’t work. in this period I’m very busy with various other projects which precludes me from being able to work on the app. As soon as I have some time I will try to improve it and apply the Bloc pattern.

erd82 commented 3 years ago

Hi, I followed this thread a little and was also quite interested about this app for a smart watch. Are there any updates about this topic? Cheers, red

razzo04 commented 3 years ago

Unfortunately, I have been very busy, I haven’t been able to work on it, and I haven’t used Flutter in a while, now for rhasspy I am developing a skill system to allow more easily to create and execute skills when I will finish, I will continue developing the app.

erd82 commented 3 years ago

Hello razzo04, amazing! Thanks so much for your feedback! Let me know once we can do or test anything. Thanks, red

joeduck commented 3 years ago

Hi razzo04, thanks for the feedback. It would be great if this will working some day :-) . I have searched also for a "Mic App". With Rhasspy we only need a "remote mic" that streams the Audio with to the Server. So we dont had to speak loud across the room to the installed Rhasspy.

razzo04 commented 3 years ago

Sooner or later, I’ll be able to get back to it. However, I think maintaining two different code bases one for the phone version and another for Wear OS would take longer. I’ll see if I can bring back most of the features using the same code base if this doesn’t work I think I’ll separate the code of the two apps.

erd82 commented 2 years ago

In the meantime Samsung released their Galaxy Watch4 which also runs with WearOS. Maybe there will be more interested people asking for this rhasspy satellite app.

Are there any news about this topic?

Red

bogus83 commented 2 years ago

In the meantime Samsung released their Galaxy Watch4 which also runs with WearOS. Maybe there will be more interested people asking for this rhasspy satellite app.

Are there any news about this topic?

Red

Gw4 user here, I'd definitely be interested in this functionality.

Ulrar commented 2 years ago

Same, also just got a Gw4 and this would be a perfect use for it. Maybe a bounty on this issue ?

Ulrar commented 2 years ago

A Tasker plugin might do it. That way going through autowear -> tasker -> rhasspy on the phone would do the trick.

In the meantime I think it should be doable to re-setup phrases in AutoWear and have Tasker call homeassistant directly, bypassing rhasspy. It's more work but it's a way to get this working today, at least if your intents are going to HA.

bogus83 commented 2 years ago

Unless I'm mistaken, I don't think it's currently possible to give voice commands to AutoWear/Tasker on the GW4 since the Google Assistant is still MIA and Bixby isn't compatible. The AutoWear Voice Screen just brings up "Please wait" and does nothing.

Ulrar commented 2 years ago

Well there is a way to get GA on the GW4 but I didn't realize AutoWear depended on it, you're right that's not a great solution. Guess for now I'll just have the watch trigger rhasspy on the phone

Ulrar commented 2 years ago

Actually, I hadn't bothered trying since @joeduck reported it not working, but it does. I just installed the apk in the zip published above (using Wear Installer), it's a bit tough to configure as the keyboard seems to be really bugged with this app but after multiple tries I got the correct values in the fields and it works pretty well.

A secondary app that would automatically go in record mode would be a great addition, that way we could bind the double home button to it and we'd be all set ! I'm sure I can get AutoWear to launch the app and simulate a button tap for now.

EDIT: It looks like DNS (at least for local domains) is a bit hit and miss on this, I suspect it might depend on if it's going through wifi or proxying through bluetooth. Either way it seems to work well only if I'm using IPs for both rhasspy and mqtt, not domains.

bogus83 commented 2 years ago

Well there is a way to get GA on the GW4

The only current solution is a paid third party app that routes your authentication and all commands through a third party server. And it doesn't work with AutoWear anyway because it isn't the native implementation of the assistant.

razzo04 commented 2 years ago

Before continuing to improve the compatibility with wear os I have to migrate the all code base to null safety and refactor most of the code ( This is what happens when using a new and rapidly developing framework ) this will require some time to do it. Anyway, it is difficult to develop without a physical device so in any case will be a slow development.

I don’t know if the standards android widget is a thing in wear os but if it this the app include a widget that when clicked it will start immediately recording.

Ulrar commented 2 years ago

I don't believe widgets exist, the equivalent would be either a complication (little circle you can display on some watch faces for things like step counts) or a tile. I know tiles weren't open to all developers until very recently so that's probably not the easiest route.

But I don't think either of these would be that useful for rhasspy, the ideal IMHO would be a secondary app in the menu, like tasker or autowear have. That secondary app could then be bound to a physical button in the watch settings, so that pressing that button would bring up rhasspy in recording mode immediately.

Still, I'm using it now and pressing the microphone is fine, perfectly usable. I had to tick the checkmark to use an external dialogue manager to get it to be a bit more reliable. With the local manager the app randomly stops understanding any commands, with the remote manager sometimes pressing the microphone doesn't do anything until the app restarts. Behavior is essentially the same but with the remote manager it's easy to see when the app needs to be restarted since the microphone doesn't turn red. I'm guessing that's probably a network issue, not sure, but it doesn't happen that often.

Thanks for the app anyway, very handy on the watch I have to say !

razzo04 commented 2 years ago

I’m glad that works.

Shouldn’t be difficult to create a secondary app that as soon as you start the app it begins listening, when I have some free time I will try to make the necessary changes.

it’s very probably a network issue as you said because with the local manager it doesn’t have to wait for a response from rhasspy to start listening, in fact, everything is handled by the app but with the external manager, I will start recording if rhasspy send a message to do so. Still, it is strange that the app didn’t notice that it lost connection to rhasspy. Have you been able to see the app logs?

brad999 commented 2 years ago

Has there been any updates on this? I'm very interested in getting this on my watch. Where am I able to get the latest verison?

Riffcaster commented 1 year ago

Im also very interested. Got the new Galaxy Watch 5 and a WearOS app would be really handy to control Home Assistant, without placing speakers all over my house.

erd82 commented 1 year ago

@razzo04, is this project dead in the meaintime (last update v1.7.0 Dec 31,2020) or are there any further plans?

razzo04 commented 1 year ago

The project isn't dead but needs to be redesigned from scratch because when I initially started I haven't developed with maintainability in mind but it was more like a side project. I don't have much free time but if there will be enough requests I can start working on it again and try to make a stable wear os app, now should be simpler because I have a Galaxy Watch 4.

wired-dev commented 1 year ago

looking forward to seeing one.

wired-dev commented 1 year ago

https://github.com/BigBoot/GW4Remap will be a bit useful once you get it working.

Doni49 commented 1 year ago

I don't have a WearOS watch (yet) but something like this would be a motivating factor in deciding to buy one. As to the comment about the UI not fitting on the watch. Maybe make it so that the watch UI consists of nothing more than a microphone icon that the user can press (and maybe a couple smaller buttons to mute the microphone and speaker in case you happen to need to silence it temporarily).

Configuration could be done on the user's phone.