From unknown Thu Mar 28 10:53:42 2024 X-Loop: owner@bugs.devuan.org Subject: bug#496: devuan-project: request to fork speech-dispatcher package from debian Reply-To: Gregory Nowak , 496@bugs.devuan.org Resent-From: Gregory Nowak Resent-To: devuan-bugs@lists.dyne.org Resent-CC: Devuan Developers X-Loop: owner@bugs.devuan.org Resent-Date: Sun, 26 Jul 2020 05:03:01 +0000 Resent-Message-ID: Resent-Sender: owner@bugs.devuan.org X-Devuan-PR-Message: report 496 X-Devuan-PR-Package: devuan-project X-Devuan-PR-Keywords: Received: via spool by submit@bugs.devuan.org id=B.159573902214786 (code B); Sun, 26 Jul 2020 05:03:01 +0000 Received: (at submit) by bugs.devuan.org; 26 Jul 2020 04:50:22 +0000 Delivered-To: devuanbugs@dyne.org Received: from tupac3.dyne.org [195.169.149.119] by doc.devuan.org with IMAP (fetchmail-6.4.0.beta4) for (single-drop); Sun, 26 Jul 2020 04:50:22 +0000 (UTC) Received: from vserver.gregn.net (vserver.gregn.net [174.136.110.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by vm6.ganeti.dyne.org (Postfix) with ESMTPS id A7E68F60481 for ; Sun, 26 Jul 2020 06:41:36 +0200 (CEST) Authentication-Results: vm6.ganeti.dyne.org; dkim=pass (2048-bit key; unprotected) header.d=gregn.net header.i=@gregn.net header.b="wSKdE4kr"; dkim-atps=neutral Received: from pegasus.gregn.net (unknown [IPv6:2607:fb90:4a3c:fa1d:4110:bf3d:451d:2162]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by vserver.gregn.net (Postfix) with ESMTPSA id F203E1EAA; Sat, 25 Jul 2020 21:41:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=gregn.net; s=default; t=1595738495; bh=Jl/QGzyVVg0gH5O1YwNq5dGLqPYQfeoj5tcojFBRsoU=; h=From:To:Subject:Date:From; b=wSKdE4krSut3Ok1LXiTyFxruSkt/udWgdJ1K0x03iT+4mN4P59zWmc45GjlHY3v9g ytZXlUBVibfznwh8qpc1ZqZ3gtBAlJAjyc3C/MQnEpKPOd/70wvHRsEm1xdWDXw6kT 9aAuqR4ekNMmP3XDPJY4l4RSNjpeBv3IICeZMNawBuXjzX/V8XGtGvROUHurPlLkef O4/HBtmkpnPaBwbLWu4WLbQliO5E+CUG8b4BYLSuawxBlHEpkf31o6MiVBoyKG46bx xNTBYKQtT9ldkz+XOLzDQfxjUyUJmCvEG5HDILx5NcnJLge3xi0jgFuaFgnmeKN7Vo nI818bRcvHbIA== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Gregory Nowak To: Devuan Bug Tracking System Message-ID: <159573846886.13963.13548811663893514592.reportbug@pegasus.gregn.net> X-Mailer: reportbug 7.5.3+devuan3 Date: Sat, 25 Jul 2020 21:41:08 -0700 X-Virus-Scanned: clamav-milter 0.102.3 at vserver X-Virus-Status: Clean X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_PASS autolearn=disabled version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tupac3.dyne.org Package: devuan-project Severity: grave Tags: a11y Justification: renders package unusable This is a request to fork the speech-dispatcher package from debian, and modify speech-dispatcher's configuration. -- background: There are two methods to access a devuan system with speech output. The first method is to use the text console. On a devuan system installed with accessibility, the text console is accessed through the speakup screen reader, espeakup, and espeak/espeak-ng. The speakup screen reader is part of the linux kernel. Since speakup lives in kernel space, it cannot access a software speech synthesizer like espeak directly. On a devuan system installed with speech output, the connector between speakup and espeak is a piece of software called espeakup. Espeakup monitors speakup for text to be spoken, and uses espeak to process the text for speech to be output through the sound card. The espeakup program uses ALSA to access the sound card. ALSA is used so that espeakup has a minimal number of dependencies, and so that those who don't want to use pulseaudio aren't forced to do so. The second method to access a devuan system with speech is to use the orca screen reader at the graphical console. To produce speech output, orca uses a program called speech-dispatcher. The aim of speech-dispatcher is to accept text to speak from multiple clients, and pass it to one of multiple speech synthesizers for speech output. The speech-dispatcher program can output speech to a sound card in multiple ways, or it can even output speech over the network. On a devuan system installed with speech, the speech-dispatcher program inherited from debian uses pulseaudio to drive the sound card. Since pulseaudio doesn't autospawn on devuan, this means that speech-dispatcher by default can't output speech to the sound card. This in turn means that users don't get speech at the graphical console in devuan 3.0 by default. Users do however get speech at the text console, since as I mentioned above, espeakup uses ALSA to output to the sound card. In debian pulseaudio is autospawned by systemd, so the opposite is true; users have speech at the graphical console, but not at the text console, since pulseaudio holds the sound card, preventing espeakup from accessing the sound card through ALSA. -- proposed solution: The solution I'm proposing is to fork debian's speech-dispatcher package, and change speech-dispatcher's configuration so it uses libao instead of pulseaudio by default for speech output. As long as devuan's default is not to autospawn pulseaudio, this means that both espeakup and speech-dispatcher will use ALSA to drive the sound card. This in turn means that users requiring speech output in devuan will have it both at the text and the graphical consoles by default. If devuan does however change to autospawn pulseaudio by default in the future, the change I'm proposing means that users would not have speech at either text or graphical consoles. Configuring speech-dispatcher to use libao for output is done in the /etc/speech-dispatcher/speechd.conf file. In that file, the line which reads: # AudioOutputMethod "pulseaudio" should be changed to read: AudioOutputMethod "libao" This change is also suggested in the troubleshooting section of the debian accessibility wiki. I'm planning to fork and maintain the speech-dispatcher package for devuan once I'm able to take on that responsibility, assuming no one does so first. There are other ways to fix this situation. However, the method I'm proposing is the most straightforward, and should be welcomed by most users requiring speech output at the text and graphical consoles. -- System Information: Distributor ID: Debian Description: Devuan GNU/Linux 3 (beowulf) Release: 3 Codename: beowulf