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