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

Bug#1027762: Regression Pipewire 0.63 breaks underruns breaking emacspeak accessibility



package: pipewire-pulse
severity: important
tags: accessibility
x-debbugs-cc: debian-accessibility@lists.debian.org

Hi.  I use emacspeak, a screen reader/desktop on top of emacs for access
to terminal applications.
I noticed that the upgrade from pipewire 0.59 to pipewire 0.63 broke
speech.
I'd get the initial output from emacspeak but  not anything else.
After some digging around, I've reduced things to a much simpler use of
libespeak-ng.

Emacspeak will generate streams that underrun frequently.  In
particular, it generates audio only when it it has something to say.
That used to work.
In particular, under pipewire 0.59, the following program says 'begin'
and 'end now' a few seconds later.
However under pipewire 0.63, I only get the 'begin' message.

// link against -lespeak-ng
#include <string.h>
#include <assert.h>
#include <unistd.h>
#include <espeak-ng/speak_lib.h>
const char * a_str = "Begin";
const char * b_str = "end now";
int main() {
  unsigned int unique_identifier = 0;
  espeak_Initialize(AUDIO_OUTPUT_PLAYBACK, 512, NULL, 0);
  assert(espeak_SetParameter(espeakRATE, 550, 0) == EE_OK);
  espeak_Synth(a_str, strlen(a_str)+1, 0, POS_CHARACTER, 0,
                     espeakCHARS_UTF8 , &unique_identifier, NULL);
  sleep(3);
  espeak_Synth(b_str, strlen(b_str), 0, POS_CHARACTER, 0,
                     espeakCHARS_UTF8 , &unique_identifier, NULL);
  sleep(3);
}

________________________________________

I've also filed an upstream issue with libespeak-ng:
https://github.com/espeak-ng/pcaudiolib/issues/23

And there's a thread on debian-accessibility starting at
https://lists.debian.org/debian-accessibility/2022/12/msg00054.html

Attachment: signature.asc
Description: PGP signature


Reply to: