Espeakup and Speech-Dispatcher-git--Fighting again?

Janina Sajka janina at rednote.net
Mon Mar 25 02:01:22 EDT 2019


Hi Again, Didier:

Thanks for looking at all my sound related reporting data. I know it's
quite voluminous. Some responses below in line ...

Didier Spaier writes:
> Hello Janina.
> 
> Trying to match  your alsa.conf with alsareport, under:
> "Loaded ALSA modules"
> and
> "Soundcards recognized by ALSA", I think that alsa.conf can be simpler,
> as we know the module associated with each card. so we don't need
> aliases, just associating the id and the index should be enough.
> 
You're correct I can probably dispense with aliases. Or, maybe tetter
still, I should make more obvious aliases and actually learn to use
them?

I've been mulling this approach for the reason that I could perhaps then
adjust my various scripts to refer to an audio card by its alias name,
rather than its hw designation. If that could be gotten to work, I could
stop worrying about which card was assigned which hw value on a given
boot. Haven't tried this yet, though.

> Further, I don't see a snd_hdsp module loaded, but three snd_usb_audio.
> So trying to load this module fails because you don't have a hardware
> using it, hence these lines at the end of dmesg output:
> 
> [   74.585561] snd_hdsp 0000:03:01.0: no IO box connected!
> [   74.585736] snd_hdsp: probe of 0000:03:01.0 failed with error -5
> 

Ah, yes. It's a driver issue. That card has not worked with a series of
recent kernels, but began working again with the
linux-5.0.arch1-1-x86_64 kernel. I may downversion to it if the next
kernel doesn't fix whatever the problem is.

Here it is in lspci -v:

03:01.0 Multimedia audio controller: Xilinx Corporation RME Hammerfall
DSP (rev 0a)
        Flags: stepping, medium devsel, IRQ 17
	        Memory at f7d10000 (32-bit, non-prefetchable) [size=64K]
		        Kernel modules: snd_hdsp


> As a conclusion, here is the content I'd suggest for alsa.conf:
> 
> options snd-hda-intel id=PCH index=0
> options snd-usb-audio id=DEVICE  index=1 
> options snd-usb-audio id=Headset index=2
> options snd-ice1724 id=AV710 index=3
> options snd-usb-audio id=UR22mkII index=4
> 
> setting vid and pid is not necessary as we can distinguish the
> cards needing the same module by their id. 
> 

Actually, my experience was that ID isn't enough, because I could find
no way with just ID to know which of the USB audio devices will be
assigned which hw: identity on a given boot. And that matters because of
the directive in speechd.conf and in linphone.

I suppose I could lock this in with udev rules, but that's considerably
unfamiliar to me.

I found that providing PID and VID to be a reliable way to insure that my CE Media usb card
always took plughw:1, and my Sennheiser headset always took plughw:2.

> I attach to this email alsa.conf.reviewed.


Thanks, Didier!

Janina

> 
> As an aside I am a bit puzzled: you wrote that you use alsa only,
> however in alsareport under "Sound Servers on this system" I read:
> 
> Pulseaudio:
> 		  Installed - Yes (/usr/bin/pulseaudio)
> 		  Running - Yes
> 
> If you want to check that pulseaudio be running, just type:
> ps -ef|grep pulse
> 
> I don't know what having pulseaudio running changes, as that depends on
> its settings, though. It's possible that it be started "on demand" by
> an application that request it. An example that comes to my mind is the
> mixer that I have on the top panel of Mate. But that can be pretty much
> any app that tries to use it. But again I can't draw any conclusion not
> knowing how it is configured.
> 
> However, I can't rule out that pulse settings interfere with alsa
> settings: if a pulse daemon is spawned when you type startx this could
> explain some of the issues you reported, especially if in
> /etc/pulse/default.pa you have devices named as hw:<something>
> 
> To avoid that, in Slint the default /etc/pulse/default.pa includes these
> four lines:
> 
> ### 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 hope this helps at least a little.
> 
> Best,
> 
> Didier
> On 24/03/2019 12:23, Janina Sajka wrote:
> > Hi, Didier:
> > 
> > Sorry I forgot the attachment. Herewith three attached files as
> > requested.
> > 
> > Thank you for your help on this.
> > 
> > Best,
> > 
> > Janina
> > 
> > PS: I'll be away now most of the day. I have a church job where I'm in
> > charge of the music for worship.
> > 
> > Didier Spaier writes:
> >> Hi Janina,
> >>
> >> alsa.conf is not attached, please send it, as well as the full
> >> output of:
> >> aplay -L
> >>
> >> For a complete diagnose, please also do this:
> >> 1. Get the script alsa-info.sh:
> >> wget --no-check-certificate -nv http://www.alsa-project.org/alsa-info.sh
> >> 2. Run it:
> >> sh alsa-info.sh --no-upload --output alsareport
> >> 3. Send the file alsareport (maybe only to me, it will be huge).
> >>
> >> Anyway, my assumption from the information you already gave is that
> >> the sound modules for your cards are no loaded in the same order by
> >> udev at every boot, hence the changes in card numbering. This can
> >> probably be solved writing relevant commands in /etc/modprobe.d/alsa.conf.
> >>
> >> Best,
> >>
> >> Didier
> >>
> >>
> >> On 24/03/2019 10:25, Janina Sajka wrote:
> >>> Good Morning, Didier:
> >>>
> >>> I'm attaching my /etc/modprobe.d/alsa.conf which works, except that I
> >>> seem to have some kind of error in the vendor or product ID for the
> >>> Steinberg UR22mkII, which is why it's commented out for now. This config
> >>> actually does reliably load each of my audio devices usefully, most of
> >>> the time anyway.
> >>>
> >>> *	Espeakup is started by a systemctl enabled on boot
> >>>
> >>> *	Speech-Dispatcher is started by hand with a startx after I'm
> >>> *	confident hw:0 is correctly assigned. Sometimes on boot, it's
> >>> *	missed entirely and the above devices are scrambled. That
> >>> *	requires a reboot to get them correctly ordered.
> >>>
> >>> I have the Sennheiser headset set as alsa device in /etc/asound.conf for
> >>> the benefit of linphonec, which has started working again, though it seg
> >>> faults if I try to answer an incoming call.
> >>>
> >>> The HDSP device has had driver issues off and on in the past few years.
> >>> It's a 20-year old high end audio device. I have the first generation
> >>> RME Multiface card. The Steinberg UR22mkII is arguably its peer, though
> >>> it doesn't provide the same array of inputs and outputs, most regretably
> >>> no s/pdif.
> >>>
> >>> In any case, just to review, the problem of the moment is that doing the
> >>> startx to get the graphical desktop up with Orca sometimes kills all of
> >>> espeakup, and a restart puts espeakup on hw:2--making hw:2 unavailable
> >>> for linphonec which I use for teleconferences.
> >>>
> >>> So, sometimes the system can boot without discovering its builtin,
> >>> onboard Intel HDA hardware. That's annoying because I seem unable to fix
> >>> it without a reboot.
> >>>
> >>> And most recently, about half the time, startx is killing espeakup and a
> >>> restart of espeakup goes to the wrong card.
> >>>
> >>> Sounds to me like espeakup needs to expose more capabilities--like Slink
> >>> does! <grin>
> >>>
> >>> Didier, I want to thank you for providing the pulse to alsa translation,
> >>> i.e. pulse's sink equals alsa's pcm. It's a little tricky to intuit such
> >>> things sometimes.
> >>>
> >>> Best,
> >>>
> >>> Janina
> >>>
> >>> Didier Spaier writes:
> >>>> Hi again, Janina,
> >>>>
> >>>> Yes it's Sunday now form <smile>
> >>>>
> >>>> Maybe if you provide the output of aplay -L
> >>>> and what sink (in PulesAudio parlance) or PCM device
> >>>> (in Alsa parlance) you want to dedicate to a specific
> >>>> usage we could try to help you get there.
> >>>>
> >>>> Time to sleep now for me, see you tomorrow (Paris time).
> >>>>
> >>>> Best,
> >>>>
> >>>> Didier
> >>>>
> >>>> On 23/03/2019 23:49, Janina Sajka wrote:
> >>>>> Hi Again, Didier:
> >>>>>
> >>>>> Speaking of late Saturday, I suspect it's Sunday for you by now! <grin>
> >>>>>
> >>>>> I think you're correct that I've been misunderstanding libao. In any
> >>>>> case having the plughw:1 in the alsa stanza wasn't harming anything.
> >>>>>
> >>>>> I'm currently booted with speech-dispatcher using also, so that
> >>>>> directive may actually be working. It's also possible, of course, that
> >>>>> it's just the next available card, because espeakup is definitely using
> >>>>> plughw:0, so :0 is locked up tight for espeak's use. That makes :1 the
> >>>>> next available card.
> >>>>>
> >>>>> In my /etc/asound.conf I have the default set for hw:2, because linphone
> >>>>> is no longer allowing me to specify the particular alsa device that is
> >>>>> my headset.
> >>>>>
> >>>>> Best,
> >>>>>
> >>>>> Janina
> >>>>>
> >>>>>
> >>>>>
> >>>>> Didier Spaier writes:
> >>>>>> Hi Janina
> >>>>>>
> >>>>>> Setting these two directives like this in speechd.conf won't ever work,
> >>>>>> I think:
> >>>>>> AudioOutputMethod "libao"
> >>>>>> AudioALSADevice "plughw:1"
> >>>>>>
> >>>>>> In the first one you tell to use the libao audio output, but
> >>>>>> the second one is only used if you use the alsa audio output instead
> >>>>>> if I understand well.
> >>>>>>
> >>>>>> If initially the card # 1 used with speech-dispatcher thte is because
> >>>>>> of some other setting, I think. I don't know which one, you will
> >>>>>> need to a look ayour Arch configuration and sercice files to
> >>>>>> find oouT.
> >>>>>>
> >>>>>> So if you use the libao output (libao using in turn its alsa backend,
> >>>>>> I assume), you will have to find another way to set the card to use
> >>>>>> for speech managed by speech-dispatcher, than to do this setting in
> >>>>>> speechd.conf.
> >>>>>>
> >>>>>> One of the possibility would be a setting in /etc/asound.conf or
> >>>>>> in ~/.asoundrc
> >>>>>>
> >>>>>> Oh, and you can't take the config file I sent you as is and hope
> >>>>>> it will work in Arch, as the settings in it have to be read by
> >>>>>> some script managing espeakup. This is the case in Slint but
> >>>>>> not in Arch. So if you want to use these settings in Arch you
> >>>>>> will have to find out by why script they should be used,
> >>>>>> and maybe modify it to read them.
> >>>>>>
> >>>>>> I can't resist to suggest that you try Slint instead <smile>.
> >>>>>>
> >>>>>> Best,
> >>>>>>
> >>>>>> Didier
> >>>>>>
> >>>>>> PS I received the answer from Cris while typing. But I don't
> >>>>>> think our answers contradict each other, fortunately. 	
> >>>>>>
> >>>>>> On 23/03/2019 20:20, Janina Sajka wrote:
> >>>>>>> Hi, Didier:
> >>>>>>>
> >>>>>>> Once again you're providing some very helpful guidance. Thank you so
> >>>>>>> very much for that.
> >>>>>>>
> >>>>>>> Yes, I'm using arch, but I'm the other way around from what you're
> >>>>>>> saying. I'm using speech-dispatcher-git, but only the espeakup release
> >>>>>>> at the moment. The reason is that the current speech-dispatcher relase
> >>>>>>> isn't correctly accepting an alsa card designation, i.e. it won't honor
> >>>>>>> these two directives in speechd.conf:
> >>>>>>>
> >>>>>>
> >>>>>>>
> >>>>>>> I am now going to put your espeakup script in place on my machine and
> >>>>>>> try a reboot. I will report.
> >>>>>>>
> >>>>>>> Thank you for this script. I wasn't aware all these directives could be
> >>>>>>> included. This should solve my problem, I hope! <grin>
> >>>>>>>
> >>>>>>> Janina
> >>>>>>>
> >>>>>>> Didier Spaier writes:
> >>>>>>>> Hi Janina,
> >>>>>>>>
> >>>>>>>> IIRC you are running Arch. Right?
> >>>>>>>>
> >>>>>>>> If yes, looking at the PKGBUILD I see that it grabs a snapshot from
> >>>>>>>> git at the commit d25ed10d dated 22 nov. 2018:
> >>>>>>>> https://github.com/brailcom/speechd/commit/d25ed10d5ede8c0f747211928fbd5f742d753556
> >>>>>>>>
> >>>>>>>> So I am puzzled that you just get it, knowing the PKGBUILD was last updated
> >>>>>>>> on 24. Nov. 2018...
> >>>>>>>>
> >>>>>>>> So, I can't see a reason for speech-dispatcher be in concern for an issue
> >>>>>>>> occurring this week.
> >>>>>>>>
> >>>>>>>> And espeakup-git (if that's what you use) was last updated on
> >>>>>>>> 2019-01-03 18:14.
> >>>>>>>>
> >>>>>>>> So I am puzzled. I don't know what happened recently, but this issue should be
> >>>>>>>> reported to your distribution rather than to upstream IMHO.
> >>>>>>>>
> >>>>>>>> Also, a tip: you can set ALSA_CARD before starting espeakup, it will
> >>>>>>>> honor this setting. This how we now do in Slint, cf. attached file
> >>>>>>>> /etc/espeakup.conf.
> >>>>>>>>
> >>>>>>>> To know which files are involved in Arch, have a look at the bottom
> >>>>>>>> of https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=espeakup-git
> >>>>>>>>
> >>>>>>>> Sorry I can't provide further guidance, not running Arch.
> >>>>>>>>
> >>>>>>>> Best,
> >>>>>>>>
> >>>>>>>> Didier
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On 22/03/2019 15:43, Janina Sajka wrote:
> >>>>>>>>> I tend to update globally about once a week, usually on Fridays. With
> >>>>>>>>> today's update of Speech-Dispatcher-git Espeakup is broken.
> >>>>>>>>>
> >>>>>>>>> 1.)	I boot to a console login. Works as expected. Speakup speaks
> >>>>>>>>> with Espeak on hw:0. Yes, I'm using alsa, not pulse.
> >>>>>>>>>
> >>>>>>>>> 2.)	I launch the graphical desktop with startx and Orca comes up
> >>>>>>>>> over Speech-Dispatcher using libao on hw:1 as specified in speechd.conf.
> >>>>>>>>>
> >>>>>>>>> 3.)	Switching back to any console, speech is gone. Doing a systemctl
> >>>>>>>>> restart espeakup puts speech on hw:2.
> >>>>>>>>>
> >>>>>>>>> This is bonkers.
> >>>>>>>>>
> >>>>>>>>> PS: Isn't it time we could control what device the soft synth driver
> >>>>>>>>> speaks to with a configuration option? Perhaps an additional parameter
> >>>>>>>>> in /etc/conf.d/espeakup?
> >>>>>>>>>
> >>>>>>>>> Or is it supposed to be in /etc/speakup/espeakup?
> >>>>>>>>>
> >>>>>>>>> Both those configs say basically the same thing, but they're not
> >>>>>>>>> symlinked. Why?
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>>
> > 

> options snd-hda-intel id=PCH index=0
> options snd-usb-audio id=DEVICE  index=1
> options snd-usb-audio id=Headset index=2
> options snd-ice1724 id=AV710 index=3
> options snd-usb-audio id=UR22mkII index=4


-- 

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



More information about the Speakup mailing list