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

Add PiperTTS to the list of recommended add-ons #3006

Open
jimtng opened this issue Jan 12, 2025 · 6 comments
Open

Add PiperTTS to the list of recommended add-ons #3006

jimtng opened this issue Jan 12, 2025 · 6 comments
Labels
enhancement New feature or request main ui Main UI

Comments

@jimtng
Copy link
Contributor

jimtng commented Jan 12, 2025

I recently discovered PiperTTS (yes I know, it's been there for a while now) and found it quite nice. The only wrinkle is that one needs to manually download a specific voice model so it's not just as easy as intalling the add-on.

I am thinking that PiperTTS can be added to the list of recommended add-ons, and we either pre-install one specific voice, or present the users with samples of various voices and let them pick and download the voice(s) for them. The easiest would be just to pre-install one or more voices, and give them a link to the docs detailing how to install more.

It would be a nice initial experience if the user can install a TTS, some sort of audio sink, then have it play some sample things out their speaker. Maybe install a sample rule (blockly?) that does it.

What I don't know is how it performs on a Pi4 with say 4GB of RAM (is this the most / minimum specs people would go for?)

@mherwege @rkoshak

@jimtng jimtng added enhancement New feature or request main ui Main UI labels Jan 12, 2025
@mherwege
Copy link
Contributor

I am running my OH installation on an RPi 4 with 4Gb. But it is hidden and away from my living room. I don't have an always on speaker anywhere.
So I would think a condition for this to be a good recommendation is a check that there actually is a speaker that can be used to output to. And of course, we need to check if it will feasibly work on the hardware.
While it could be nice, it wouldn't be a valid recommendation for me.

@rkoshak
Copy link

rkoshak commented Jan 12, 2025

I know that the size of the OH distro is a concern. openhba-js had to forego shipping with all the date time localization libraries because they were too big so that would be a concern with including it with OH itself.

If that's the case, maybe it could be added to openHABian as an option. But even there, I suspect few who are running openHABian actually have speakers connected to the machine running openHAB given it's designed to run headless in a closet somewhere out of the way.

I can't comment on the performance. I believe, as of OH 4, an RPi 4 with 4 GB is the minimum recommended hardware.

I don't have a speaker connected to my OH servers but can't you make a MainUI instance and audio sink? Lack of a speaker connected to the machine shouldn't be too much of a problem. But this is looking more and more like a separate wizard than an install and go kind of situation.

@jimtng
Copy link
Contributor Author

jimtng commented Jan 12, 2025

I'd be surprised if anyone had their computer be it a pi or an x64 server directly hooked up to an actual amplifier and speakers at a good location in the house.

I'd imagine most people would use a google home, Sonos, ikea, or some other audio sink over the network.

So the idea of first probing for that and only recommend TTS along with an audio sink is great.

How does HA do it?

@kaikreuzer
Copy link
Member

kaikreuzer commented Jan 12, 2025

I'd be surprised if anyone had their computer be it a pi or an x64 server directly hooked up to an actual amplifier and speakers at a good location in the house.

Then please be surprised - I have my server directly feeding its audio to an AmpliPro, which has speakers in all rooms of the house connected. 😄

While PiperTTS might be nice, it is likely not a recommendation for everyone and the size of the voices is definitely an aspect that speaks against pre-bundling it in any way.

What could actually a quick win is to suggest macTTS for installations that run on macOS. But this is clearly a much smaller group than RPi users.

@jimtng
Copy link
Contributor Author

jimtng commented Jan 12, 2025

Nice setup! I'm impressed but not surprised that you have such a system! I only have cheap google nest minis around the house, bought when they're on sale for A$19 a pop. They work as TTS or MP3 audio sinks to play some announcements or alerts.

So if detecting possible sinks won't always work with directly connected systems. We could just offer it anyway?

I don't understand the concern about package size. I think I didn't convey my meaning correctly in my first post. I'm not suggesting to include the binaries for either the TTS addon nor the voices. What I meant was to download them at the time of installation - if the user chose pipertts - in the same way the user would have had to do it manually. So the only burden is extra waiting time.

The benefit is a much more impressive initial result of what the user can do when playing around with their new toy (openhab) without them having to dig deep into the add-ons list to find TTS.

I have a Mac Pro, and 3 MacBook pros but never tried marytts because my openhab runs on a Linux server.

Pipertts is the first decent offline TTS I've come across that's easy to install and setup.

@rkoshak
Copy link

rkoshak commented Jan 13, 2025

If it's download on request then the size issue shouldn't be too much of a problem. But the last time I messed with TTS downloading the engine was not the most onerous part of setting it up. Even now, I had to search through the docs just to find a list of the audio sinks I have available to me.

That's what I mean by maybe this needs to be a wizard, maybe a "side quest" on the main first time wizard or accessible from the developer sidebar. It can walk you through getting the TTS download, even download it for you, and help the user configure and use it. Personally, the whole voice and multimedia parts of OH are pretty opaque to me. A wizard to walk me through how to set it up and use it would be a huge improvement.

But one of the challenges is if you are just setting up OH for the first time, the only audio sink you have is the system speaker. With a few more steps you could have an instance of MainUI become an audio sink. But you won't have your smart speakers etc. until you install some bindings and accept some Things from the inbox which is going to happen post initial installation wizard.

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

No branches or pull requests

4 participants