pulseaudio and espeakup

john doe johndoe65534 at mail.com
Wed May 2 09:06:42 BST 2018


On 5/2/2018 1:40 AM, Samuel Thibault wrote:
> Hello,
> 
> I had a closer look at all of this.
> 
> Felipe Sateler, le ven. 02 févr. 2018 20:38:43 -0300, a ecrit:
>> There are two mechanisms by which pulseaudio coordinates device access.
>>
>> The first one is the `uaccess` mechanism provided by udev. Pulseaudio
>> monitors the device for ACL changes, and releases it when the device
>> is no longer accessible to the user. This is how pulseaudio drops
>> access to the device when switching VT.
>>
>> The second one is a dbus negotiation protocol. It is described
>> here[1]. Currently it is respected by at least pulseaudio, jack2 and
>> kodi. The pulseaudio support is implemented in src/modules/reserve*.
>>
>> [1] http://git.0pointer.net/reserve.git/tree/reserve.txt
> 
> Ok, thanks for the details.
> 
> AIUI, the dbus negotiation protocol can only be used inside a given
> user's session, which makes sense anyway since it's cooperative.
> 
> Concerning uaccess, AIUI it wouldn't do anything if e.g. the user is
> both logged in the Linux console and the Xorg console.
> 
> Now, given that:
> 
> - in Xorg, speech needs to be emitted by speech-dispatcher through
> pulseaudio, so it can e.g. mix with firefox' pulseaudio use,
> 
> - on the console, espeakup needs to be run even before users log in,
> either as root or another user which can somehow access the audio card.
> It needs to keep that access whatever happens on the console,
> 
> I'm afraid the only solution we have is that both espeakup and
> speech-dispatcher just release the audio device when they think they
> won't have anything to speak in the close future.
> 

Or the user let them know using command line option.

> - That way, when switching from the Linux console to Xorg, pulseaudio
> can reacquire the audio card for speech-dispatcher, and conversely from
> Xorg to the Linux console, pulseaudio will release the audio card so
> that espeakup can take it. Of course if an application in Xorg is still
> using the audio card, pulseaudio will keep running the card and espeakup
> won't be able to take it. I don't think we have any solution against
> that.
> 

Can't a new option be added in pulseaudio to force the release of the 
soundcard?

> - determining when to release the audio device is tricky. We don't want
> to just do it as soon as speech is over, as it'd permanently bring ugly
> clicks and such. We could do it after some idle time. Ideally we'd know
> when switching between Xorg and the Linux console. espeakup could be
> notified by speakup to shut up immediately when the console switches to
> graphical mode. I however don't think Orca has a way to know and tell
> speech-dispatcher that the Xorg server has lost focus, so we'd have to
> introduce the idle feature in speech-dispatcher.  The delay can be made
> configurable of course.  A short delay means more potential for clicks,
> but also a shorter speak switch time when going back to the console.
> 
> 

Given the above this sound reasonable.
This option should also be available from the command line (--delay=0).


> How do users think about it?
> 

I would like to thanks every one that is working to find a way to get 
this fixed.
Most of the time I will know when I want to switch from console mode to 
the desktop manager. By reading this e-mail what I will be doing is 
scripting those command so I would be able to switch back and forth when 
needed.

Given that the delay option is not ideal an other thing that could be 
done would be to implement a shortcut that would do the necessary 
step(s) to be able to switch back and forth between the DM and the console.

-- 
John Doe



More information about the pkg-pulseaudio-devel mailing list