Bug 54326

Summary: Не запускается синтез речи espeakup
Product: Sisyphus Reporter: Olga <urozhaevaoo>
Component: espeakupAssignee: Artem Semenov <savoptik>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: amakeenk, kotjuhovma, savoptik
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Olga 2025-05-16 14:09:40 MSK
Версия программы:
=================
espeakup-0.90-alt2

Стенды с ошибкой, обновлен. до Sisyphus:
========================================
Alt Workstation K 
Alt Workstation
Alt Server 
Alt Education
Alt Education KDE

Шаги, приводящие к ошибке:
==========================
1. Установить пакеты:
# apt-get install espeakup espeak-ng
2. Запустить espeakup и проверить статус:
# espeakup && systemctl status espeakup

Ожидаемый результат:
====================
Демон espeakup запущен командой

Фактический результат:
======================
Демон espeakup не запускается командой. При этом можно руками стартовать, после чего синтез речи начинает работать:
# systemctl start espeakup
Comment 1 Artem Semenov 2025-05-16 15:32:30 MSK
(Ответ для Olga на комментарий #0)
> Шаги, приводящие к ошибке:
> ==========================
> 1. Установить пакеты:
> # apt-get install espeakup espeak-ng
Это экранный диктор для текстовой консоли. Про шаг для перехода в текстовую консоль вы ничего не написали.
> 2. Запустить espeakup и проверить статус:
> # espeakup && systemctl status espeakup
1. А почему демон должен быть запущен, если никто его не запускал?
# systemctl start espeakup
2. Что вернул вам:
# systemctl status espeakup
> 
> Ожидаемый результат:
> ====================
> Демон espeakup запущен командой
Почему сервис systemd должен быть запущен без systemd start?

Описывайте проблемы подробнее. Штатный телепат в отпуске.
Comment 2 Olga 2025-05-16 17:59:49 MSK
(Ответ для Artem Semenov на комментарий #1)

> Почему сервис systemd должен быть запущен без systemd start?
Из-за наличия бинарника:
-rwxr-xr-x 1 root root 31008 мая 16 13:08 /usr/bin/espeakup
Я предположила, что он будет запускать сервис. 

Закрываю как Not a bug
Comment 3 Котюхов Михаил Андреевич 2026-01-26 16:13:32 MSK
Ошибка воспроизводится в Sisyphus и P11 - Не запускается синтез речи
В p11 не работает в версиях espeakup-0.90-alt2 и espeakup-0.90-alt3.
В p10 с версией espeakup-0.90-alt2 все отлично работает.
Проверено на реальном железе в p11 и p10, ситуация аналогичная.
Comment 4 Artem Semenov 2026-01-26 16:18:49 MSK
(Ответ для Котюхов Михаил Андреевич на комментарий #3)
> Ошибка воспроизводится в Sisyphus и P11 - Не запускается синтез речи
> В p11 не работает в версиях espeakup-0.90-alt2 и espeakup-0.90-alt3.
> В p10 с версией espeakup-0.90-alt2 все отлично работает.
> Проверено на реальном железе в p11 и p10, ситуация аналогичная.

Ошибка в сборке пакета espeak-ng, дополнительные словари не прилагаются к libespeak-ng1, а лежат в пакете с бинарём espeak-ng. Задание проверяется, скоро будет готово.

Конкретно в espeakup ошибки нет:
# apt-get install espeak-ng
Решит эту проблему.
Comment 5 Котюхов Михаил Андреевич 2026-01-26 16:52:18 MSK
Не решит. Везде проверялось с 
# apt-get install espeakup espeak-ng
Comment 6 Artem Semenov 2026-01-26 16:58:48 MSK
(Ответ для Котюхов Михаил Андреевич на комментарий #5)
> Не решит. Везде проверялось с 
> # apt-get install espeakup espeak-ng

Если установлен пайпваер, конечно не решит... Пайпваер не разрешает от рута выводить звук...

Не случайно это консольный читатель экрана, если гуй установлен, он работать не будет по текущим политикам работы пайпваер.

Для обхода используется
# cat /root/.asoundrc
pcm.!default pcm.sysdefault
ctl.!default ctl.sysdefault
Comment 7 Alexander Makeenkov 2026-01-28 22:33:45 MSK
Ответ для Artem Semenov
> # systemctl start espeakup

> Пайпваер не разрешает от рута выводить звук...

Нельзя ли в таком случае сделать сервис пользовательским (systemctl --user start espeakup)? Тогда и проблемы с pipewire быть не должно. Но будет ли espeakup работать в таком виде?
Comment 8 Artem Semenov 2026-01-29 00:28:06 MSK
(Ответ для Alexander Makeenkov на комментарий #7)
> Ответ для Artem Semenov
> > # systemctl start espeakup
> 
> > Пайпваер не разрешает от рута выводить звук...
> 
> Нельзя ли в таком случае сделать сервис пользовательским (systemctl --user
> start espeakup)? Тогда и проблемы с pipewire быть не должно. Но будет ли
> espeakup работать в таком виде?

У espeakup есть два сценария использования:
1. Режим без gui, на пример альт сервер без gui.
В нём как показывает моя практика espeakup заводится из под рута без проблем. Т.Е, пользователь слышет приглашение, и может ввести логин и пароль, и работать собственно без проблем, Т.К. пайпваер не устанавливается, и ничто не мешает.
Если в таком режиме сделать espeakup запускаемым из-под пользователя, то пользователь не услышит приглашение.

2. Установлен GUI, пользователь переключается в текстовую консоль и слышет приглашение ввести логин и пароль. Мало ли какие причины его побудили, заглючило что-то в GUI, или ещё что.
Опять же в таком случае пользователь не услышит приглашение, если espeakup запускать из под пользователя.

Если нужны примеры дистрибутивов, где есть и применяется espeakup, обратите внимание на дебиан. Там он используется для озвучивания текстового установщика, и озвучивает текстовую консоль после выполнения установки в консольном режиме.

В режиме с GUI на сколько я знаю по профильным рассылкам у них схожие проблемы.

По Пайпваер у нас есть бага, можно отслеживать: https://bugzilla.altlinux.org/52388

Так же у меня есть мысли усовершенствовать espeakup чтобы можно было ему передавать устройство, через которое звук выводить, тогда можно при запуске espeakup передавать ему sysdefault. Потому что переменные окружения вроде ALSA_CARD и подобные, которые он может обрабатывать в случае отсутствие пайпваера, не производят никакого эфекта.