Re: [orca-list] orca command-line configuration question



Hello,

in Slint we also use dmix but another way: instead of including a setting in /etc/asound. conf we do it in 
/etc/pulse/default.pa, cf the four lines below:
### In Slint, we want to share audio resources between speech apps that
### rely on alsa and other apps that rely on pulseaudio.  
load-module module-alsa-sink device=dmix
load-module module-alsa-source device=dsnoop

I attach the whole file.

We do not ship an /etc/asound.conf by default, unless the user have chosen another card than the first one at 
the beginning of installation, in which case we set this one as default in /etc/asound.conf, cf. 
http://slackware.uk/slint/x86_64/slint-testing/source/localization/scripts/probe_sound_cards

Also, we allow he user to tell which card to use with espeakup and speechd-up editing their respective config 
file, with instructions in these code snippets:

1. In /etc/espeakup.conf:

# You only need to set the value of ALSA_CARD if you have several sound
# cards and want to specify which one espeakup should send the speech
# to, otherwise the default sound card will be used. The value should be
# a number in a range beginning with 0, like for instance ALSA_CARD=1 or
# the corresponding id, preferable as the sounds cards number can
# change, like ALSA_CARD=PCH. To know the number and id of your cards,#
# type: list-cards. To know more about your sound cards, type: aplay -l
# or aplay -L
# By default ALSA_CARD=0 (the first sound card), but if you used
# espeakup during installation, ALSA_CARD will be initially set to the
# id of the card you selected at the beginning of Slint installation
# 
#ALSA_CARD=0

2. In /etc/speechd-up.conf:

# You only need to set the value of ALSA_CARD if you have several sound
# cards and want to specify which one speechd-up should send the speech
# to, otherwise the default sound card will be used. The value should be
# a number in a range beginning with 0, like for instance ALSA_CARD=1
# If not uncommented the default sound card is used.
# to know the numeric id of your sound cards you can type:
# cat /proc/asound/cards
# For this setting to be effective, the file /etc/speechd.conf should
# include 'AudioOutputMethod "libao"' and the file /etc/libao.conf
# should include: 'default_driver=alsa'. This is the default in Slint.
# 
#ALSA_CARD=0

Maybe something like that could be included in /etc/fenrirscreenreader/settings/settings.conf ?

@ Chrys: what do you think?

Most audio apps in Slint use pulseaudio, but someone wanting to hear a youtube tune using alsa instead of 
pulseaudio can always type "apulse firefox" to start firefox <smile>

Best,

Didier


On 02/05/2019 11:09, Peter Vágner wrote:
Hello,

I am sorry I have overlooked this conversation mentions my earlier experiment with using espeak directly 
within orca through python-espeak.

I would recommend not to use this in production if you have that choice.

Originally I have assumed that I can get orca talking directly to eSpeak so I can make it work on termux 
for Android, on raspberry pi and other configurations where speech-dispatcher might not be required or 
can't be made to run at all.

I have managed to wrap up that quickly in a few hours. I have even posted it here to the list for tinkerers 
like I am to play with or possibly to look at.
However I have quickly discovered that this is much less responsive than orca talking to speech-dispatcher. 
And that turned to be something I was unable to resolve easily as python-espeak does not care about the 
audio handled by espeak. Audio is simply played to the default sound device using espeak runtime pulseaudio 
vs alsa detection the same way calling it via command line does.

Another experiment of such sort would be writing some wery basic gstreamer based player that would run in a 
background thread holding the audio device open all the time, using espeak via ctypes directly and feeding 
its audio to that gstreamer based player. It would have the same flav as speech-dispatcher has that it may 
not be possible to play multiple sounds at the same time on some devices.

Orca can now optionally produce progress bar update beeps via gstreamer so it would introduce no extra 
dependencies.

I have just not played with this more and since I can now run speech-dispatcher with proot on termux for 
android I am no longer motivated to experiment with that too much.

I haven't asked to apply these changes to orca master because I know they are not stable.

To talk a bit on the currently discussed audio output configuration:
There are single channel audio devices and multi channel audio devices.
Single channel devices only allow playing one sound at a time. For most audio devices alsa tries to 
compensate for not being to play more than one sound by automagically enabling dmix plugin.
This is not working on all hardware. If it's not, you can see the behaviour like this:
Espeakup is running as root it grabs the audio device and nothing can grab it and play another sound 
through it later.
See this part in the Arch wiki to see how to manually enable dmix: 
https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture#Dmix
I think this will apply to most other distributions as well.

Another way on how to compensate for this is by running pulse audio as it should naturally handle multiple 
streams.
Even while using pulseaudio user intervention might be needed as allowing multiple users to play sound at a 
same time is considered a security risk thus it's not configured by default.
I like this blog post on the matter to better explain how to do it. 
http://billauer.co.il/blog/2014/01/pa-multiple-users/
I am using this pulseaudio tweak and Chrys, Storm and other guys running Fenrir are doing the same thing I 
guess.

Luke has developed a different solution for Vinux 5.0 which I think is working on that version but is not 
easily portable to other setups.

Greetings

Peter


Dňa 26. 4. 2019 o 12:23 Didier Spaier napísal(a):
Hello,

Some information and corrections.

spd-say is part of speech-dispatcher, so if speech-dispatcher is not
installed, neither is spd-say, or if it is "standalone", it won't work.
This has nothing to do with espeakup grabbing alsa.

espeakup being a bridge between speakup, and espeak or espeak-ng,
has nothing to do with alsa anyway, at least directly.

If alsa is properly set, there is no reason that espeak or espeak-ng
grabs alsa. It doesn't here

Sorry, AFAIK there is no other available option currently than
speech-dispatcher for Orca (Joanie, please correct me if that's wrong).

I am not optimistic about the use of Peter's patch, as it is against
an old Ora version but again. Peter, is it right?

Last libao can use a lot of audio backends, but you can set the default
driver in /etc/libao.conf. Here I set: default_driver=alsa

But esd, pulse and oss are also available as they are installed when I
configure libao.

So, I think that in case speech-dispatcher relies on libao, the audio
card used depends on the backend of libao rather than libao itself.

Best,

Didier

On 26/04/2019 11:45, Willem van der Walt wrote:
Thanks both to Zahari and Janina.
Yes, I am running espeakup/speakup.
Yes, spd-say does not work, likely because espeakup grabs alsa.
Yes, I am using alsa, not pulseaudio.
I do not really want to run speechd_up, but I suppose that might be another option.
No, I do not have the luxury of a second sound device, so that one cannot work here.
I might look at Peter's patch.
Kind regards, Willem


On Fri, 26 Apr 2019, Janina Sajka wrote:

Hi, Willem:

You need to get speech-dispatcher working. In that effort spd-say is
your friend from the cli. If you can pass it a string and hear speech,
you should be good to go with Orca.
You don't say, but I presume you're also running Speakup on this same
machine? If so, espeakup could be blocking speech-dispatcher. At least,
that's how things work on my machines and it's the reason I use a second
audio card for speech-dispatcher. If using alsa in such a configuration
you'll want to identify the appropriate device in
/etc/speech-dispatcher/speechd.conf. Here's the relevant line from my
file:

#AudioALSADevice "plughw:1"

Note this line is commented because I'm using libao, not alsa, which is
slected higher up in that file. libao simply chooses the first available
audio card when launched. In my case that turns out to be hw:1.

People using pulseaudio will have a different approach. I can't speak to
that, it's never worked for me.

hth

Janina

Willem van der Walt writes:
Good day,
I have revived my x-windows system, but still need to get orca running.
Actually, it seem to be running, but it is not talking as my
speech-dispatcher is not working.
I kind of remember that one had a choice to either directly use espeak or
use it through speech-dispatcher.
OK, so I am trying to run orca from a console, to set it up to use espeak
directly, but it wants to connect to the x server.
How can I make this change from the command line?
I am happy to edit configuration files if I know which one and where to look
for it.
I am running ubuntu 18.04, reached through an upgrade.
The orca version is 3.28.0
TIA, Willem


_______________________________________________
orca-list mailing list
orca-list gnome org
https://mail.gnome.org/mailman/listinfo/orca-list
Orca wiki: https://wiki.gnome.org/Projects/Orca
Orca documentation: https://help.gnome.org/users/orca/stable/
GNOME Universal Access guide: https://help.gnome.org/users/gnome-help/stable/a11y.html
Log bugs and feature requests at http://bugzilla.gnome.org
-- 

Janina Sajka

Linux Foundation Fellow
Executive Chair, Accessibility Workgroup:    http://a11y.org

The World Wide Web Consortium (W3C), Web Accessibility Initiative (WAI)
Chair, Accessible Platform Architectures    http://www.w3.org/wai/apa


_______________________________________________
orca-list mailing list
orca-list gnome org
https://mail.gnome.org/mailman/listinfo/orca-list
Orca wiki: https://wiki.gnome.org/Projects/Orca
Orca documentation: https://help.gnome.org/users/orca/stable/
GNOME Universal Access guide: https://help.gnome.org/users/gnome-help/stable/a11y.html
Log bugs and feature requests at http://bugzilla.gnome.org

_______________________________________________
orca-list mailing list
orca-list gnome org
https://mail.gnome.org/mailman/listinfo/orca-list
Orca wiki: https://wiki.gnome.org/Projects/Orca
Orca documentation: https://help.gnome.org/users/orca/stable/
GNOME Universal Access guide: https://help.gnome.org/users/gnome-help/stable/a11y.html
Log bugs and feature requests at http://bugzilla.gnome.org

Attachment: default.pa
Description: Text document



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]