Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assist on Wear OS TTS volume control #4317

Open
gianlucasullazzo opened this issue Apr 3, 2024 · 23 comments
Open

Assist on Wear OS TTS volume control #4317

gianlucasullazzo opened this issue Apr 3, 2024 · 23 comments
Labels
Assist enhancement New feature or request Wear OS

Comments

@gianlucasullazzo
Copy link

Is your feature request related to a problem? Please describe.
On my Galaxy Watch 4 (and presumably this applies to all Wear OS devices configured to use Assist as the default watch assistant), there is no option to adjust the volume level. This results in an extremely low voice volume (especially when compared to the "Hey Google" assistant on the same device). I'm utilizing Nabu Cloud for both Text-to-Speech (TTS) (using FabiolaNeural) and Speech-to-Text (STT) services. When I tested the TTS functionality through the mobile app notification service, the volume was significantly louder than that of the Assistant.

Describe the solution you'd like

I would like to have the ability to adjust volume level for HA:Assist.

Describe alternatives you've considered, if any

Additional context

@gianlucasullazzo gianlucasullazzo added the enhancement New feature or request label Apr 3, 2024
@dshokouhi
Copy link
Member

there is no option to adjust the volume level.

on my pixel watch

Settings > Sounds > Adjust media volume level

do you not have that on Samsung?

@gianlucasullazzo
Copy link
Author

do you not have that on Samsung?

Hi @dshokouhi and thanks for your reply. Yes the watch has the functionality to adjust the volume but it seems it does not have any effect on Assist volume.

@dshokouhi
Copy link
Member

and you tried adjusting every volume stream? specifically the media/music stream as that is used for TTS audio. There is more than 1 volume on the device.

@gianlucasullazzo
Copy link
Author

yes of course..all volumes are set to max level

@dshokouhi
Copy link
Member

is google assistant volume low?

adjusting volume level is not something the apps can do on Wear OS, its a special permission that is not offered on Wearables. So we have to look into what other options there are. Have you tried a different TTS service?

@gianlucasullazzo
Copy link
Author

Let me summarize:

  • Google Assistant is good, as it is loud enough to be heard in a noisy room.

  • Text-to-speech using the notify.mobile_app_galaxy_watch4 service with the media_stream: alarm_stream_max setting is quite acceptable, almost as loud as Google.

  • The text-to-speech by Samsung and the text-to-speech by Google (embedded in the watch OS) are the same in terms of volume.

  • However, the HA: Assistant is very low in volume. It is not able to be heard if other people are speaking in the room.

@gianlucasullazzo
Copy link
Author

I just recorded a short session beetween google assistant and HA:Assist. This is the "spectrum" of the audio trace:
image

@dshokouhi
Copy link
Member

what about a different Assist TTS service? Even though it works fine on the phone the audio file it provides may be low for a wearable.

@gianlucasullazzo
Copy link
Author

gianlucasullazzo commented Apr 3, 2024

I have deleted all other TTS providers because I was not satisfied with the quality of Italian pronunciation. However, I can try using Google Translate or Polly again.

EDIT: Just tried with Google Translate and the volume level is the same as Nabu Cloud TTS

@dshokouhi
Copy link
Member

unfortunately thats really the only thing you can do. Either change the TTS engine in Assist

image

or adjust the Media volume stream on the watch directly

image

the app does not control device volume and is not allowed to but if you hear the correct volume using Google Assistant then that points to an issue with the TTS engine thats providing the audio file.

@jpelgrom
Copy link
Member

jpelgrom commented Apr 3, 2024

Just tested this on a Galaxy Watch 4, with media volume at about 50% and they sound similar in volume to me - if I had to choose I'd even say Assist is louder. The speaker is easy to block with your arm though

Even with HA Cloud there are a lot of choices for TTS. Could you share your settings / try using the default to rule out the voice (Home Assistant Cloud + Italian (Italy) + ElsaNeural)?

watch volume setting

TTS setting

@gianlucasullazzo
Copy link
Author

Just tested this on a Galaxy Watch 4, with media volume at about 50%

in my watch it seems the media volume level does not affect at all Assist volume

The speaker is easy to block with your arm though

I exclude this because I also tried with watch not on body

Could you share your settings

Yes, of course. What settings do you need?
image
photo1712179668

@jpelgrom
Copy link
Member

jpelgrom commented Apr 3, 2024

Yes, of course. What settings do you need?

Can you try changing the voice from FabiolaNeural to ElsaNeural (default)? Does it make any difference?

Also which version of the app are you using? You can check on your watch when scrolling to the bottom of the main screen > Settings > version at the bottom. I'm using the beta which does include a change related to audio for Assist which may be causing the difference.

@gianlucasullazzo
Copy link
Author

Can you try changing the voice from FabiolaNeural to ElsaNeural (default)? Does it make any difference?

No difference

Also which version of the app are you using?

image

@dshokouhi
Copy link
Member

have you tried restarting the wear OS device to see if that helps?

@gianlucasullazzo
Copy link
Author

have you tried restarting the wear OS device to see if that helps?

Yes, but no success..Consider I'm a software engineer and restart saved my life many times..but not in this case🤣

@dshokouhi
Copy link
Member

yea were trying to think of what else to check because volume control in specific is not allowed on Wear OS because the permission to control DnD does not exist there and controlling volume will alter DnD status. It should be linked to media but thats not the case. I think at this point the best bet is to try different combinations of voices on the watch to see if any might be better or not. Try different languages and engines. This is not going to be easy to nail down unfortunately.

@gianlucasullazzo
Copy link
Author

Ok..I Just tried a full pipeline in english but still low volume. Tomorrow I will try other combinations. In the meantime, the only strange things I see are:

2 Nabu Cloud provider in TTS engine
Screenshot_20240404_001234_Home Assistant

Lot of error logs (2+ for each assist call from Watch):
Screenshot_20240404_001600_Home Assistant

@gianlucasullazzo
Copy link
Author

Try different languages and engines.

No luck with these tests.

@dshokouhi
Copy link
Member

@gianlucasullazzo we had some updates to Assist related to audio focus, can you update teh watch app and see if that makes the situation better for you?

@gianlucasullazzo
Copy link
Author

Hi @dshokouhi, thanks for reaching out on this. I just have updated the app but volume seems not louder..actually it seems lower :(

@NithinKumaraNT
Copy link

NithinKumaraNT commented Apr 10, 2024

Hi @dshokouhi , I also face the exact same issue as @gianlucasullazzo. For the Google engine TTS setting their seems to be an amplify option for the speech output for google assistant. You can find this under,

General > Text-to-speech > TTS engine settings > Amplify speech volume.

When this is enabled, the google tts volume is louder.

May be this hint would enable you to debug the issue :)

@jpelgrom
Copy link
Member

Assist does not use the watch TTS services but audio files generated on the server, so that toggle unfortunately seems irrelevant here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Assist enhancement New feature or request Wear OS
Projects
None yet
Development

No branches or pull requests

4 participants