A portal for speech synthesis #1570
eeejay
started this conversation in
New Portals
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Background
Speech synthesis is typically implemented as a desktop service. Spiel is a new speech framework that takes advantage of the distributed nature of D-Bus to allow speech providers to ship as separate services. A client library is used to collate all of the providers, and the "voices" they support into a unified interface for client applications to use. In order to do this, the client needs to have access to the session bus to search for services, and activatable services. This is discouraged in sandboxed apps, so we need a portal. Some discussion about this started in a libspiel issue (project-spiel/libspiel#19).
Proposal
I propose the speech providers portal API have a
Providers
property that is an array of object paths to provider proxies. Each provider proxy would implement theorg.freedesktop.Speech.Provider
interface and would be an intermediate between the sandboxed app and the real speech provider.Voices
property to the sandboxed app, and notify of changes to it.Synthesize
method and associated file descriptor from the app the the actual provider.Providers
property when a speech provider is removed or installed (viaActivatableServicesChanged
andNameOwnerChanged
on the host side).This kind of design would allow the client library (libspiel) to work in an almost identical way as talking to the session bus directly. This will minimize duplication and offer predictable behavior for the app whether it is sandboxed or not.
Beta Was this translation helpful? Give feedback.
All reactions