The good news…there will be a bit of new, active development on the squeezebox plug-in!
The bad news…I will be doing a bit of new, active development of the Squeezebox plug-in.
I just about have what I need to get started:
[ul][li]Access to the latest code that was maintained by primarily garrettwp[/li]
[li]I have successfully installed the Logitech Media Server and the latest Squeezeplay binary so I can test[/li]
[li]I have a UI5 and a UI7 vera-lite for testing[/li]
[li]I have lolodomo’s blessing to re-use his TTS library (used in his Sonos / DLNA plugins) [/li]
[li]Ap15e has pointed me in the direction of the “SAD” wiki as a starting point for integrating TTS functions with the plug-in[/li][/ul]
Here are my plans for development:
[ol][li]Start with garrettwp’s last committed code, perform only minor tweaks and ensure proper operation on UI5 and UI7. Get that published to the app store as the new official Squeezebox app. Additional revisions will be based on that code-base.[/li]
[li]From there, build out native Text to Speech functionality. This will be based on the same library that Sonos / DLNA uses, to allow for the use of GOOGLE tts server, or a local OSX TTS server. (I don’t have a local OSX server, so that will remain untested…but should work providing I get GOOGLE to work.)[/li]
[li]TTS will be exposed as an action…probably of the child player devices, but not decided yet. I’m not familiar with how squeezebox does audio sync over multiple devices. Depending on how that works, that may dictate whether the “Say” action is exposed on the parent (server) device or on individual players.[/li]
[li]No other changes planned, but that could change, particularly for bug fixes.[/li][/ol]
I have no formal interest in Squeezebox…I’m a Sonos guy myself. But there have been requests for my SayTheWeather plug-in to interface with Squeezebox as a render target…and I’ve seen similar desires for formal TTS support here in the squeezebox forum, so I figured I’d give it a shot.
Right now I’m inquiring on how to gain control over (or get the redaction of) the current app available from the app store, which is out of date.
I have been able to successfully “test” Ap15e’s SAD functions on my local squeezebox. The primary limitation of that code (which prevents me from pretty much just “plugging that in” as a native function within the plug-in), is that Google’s TTS “api” only allows 100 characters to be processed. So there needs to be a mechanism with longer strings of text to break it into chunks, receive the multiple audio streams from google, and then stitch them together as one single audio file to be sent to be “played.”. That’s what lolodomo’s library does, so my job is primarily taking that resultant audio file and playing it as an “alert” to Squeezebox.
By “alert”, that means
- Interrupting the currently playing audio (if any)
- Playing the announcement
- restoring the original audio.
Ap15e’s functions attempt to do this (“alert”), though I did run into a bug where if the current audio stream was “paused” (not playing), after the TTS statement, the audio stream started playing again.
So in short…much of the code is already laid out in front of me by other authors…I’ll just be trying to stitch it together.