Страница 1 из 1

Прерывается звук

Добавлено: Вс июн 21, 2020 1:27 pm
enzo0508
Проблема такая, majordomo прерывает все звуки примерно на 0.5сек раньше чем нужно, будь то простой звук уведомления или голосовой файл от YandexTTS. Раньше такого не было, после очередного обновления (на альфа ветке). Подскажите, пожалуйста, куда копать?

Из консоли "mplayer dingdong.mp3" проигрывает звук правильно, без прерывания в конце

Re: Прерывается звук

Добавлено: Вт июл 07, 2020 8:56 am
chaoba
RHVoice - Настройки. Если стоит галочка Использовать кэширование - снимите.

Re: Прерывается звук

Добавлено: Вт июл 07, 2020 9:11 am
tarasfrompir
enzo0508 писал(а):
Вс июн 21, 2020 1:27 pm
Проблема такая, majordomo прерывает все звуки примерно на 0.5сек раньше чем нужно, будь то простой звук уведомления или голосовой файл от YandexTTS. Раньше такого не было, после очередного обновления (на альфа ветке). Подскажите, пожалуйста, куда копать?

Из консоли "mplayer dingdong.mp3" проигрывает звук правильно, без прерывания в конце
проверьте ффмпег
настройки в конгфиге
- и его работу

Re: Прерывается звук

Добавлено: Пн июл 13, 2020 7:48 pm
enzo0508
Звук, насколько я понял, проигрывается через mplayer, он работает как нужно.

Но я вот что заметил, что если останавливать cycle_execs (в Xray) и отдельно запускать cycle_execs.php из консоли, то все прекрасно работает, пока не остановить цикл в консоле и не запустить в Xray системный, тогда все сообщения произносятся короче на 0,5 сек примерно.

Аналогично прерывается звук, если в консоле выполнять вот так:
sudo nice --10 mplayer dingdong.mp3

Проблема, видимо, вот в чем, если запускать из консоли, без "nice" (НЕ прерывается):
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 44100 Hz, 2 ch, s16le, 64.0 kbit/4.54% (ratio: 8000->176400)
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
AO: [pulse] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 1.3 (01.2) of 1.0 (01.0) 1.0%

Если из консоли с nice, то (ПРЕРЫВАЕТСЯ):
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 44100 Hz, 2 ch, s16le, 64.0 kbit/4.54% (ratio: 8000->176400)
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'

AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 1.1 (01.0) of 1.0 (01.0) 1.2%

Как это можно исправить?

Re: Прерывается звук

Добавлено: Пн июл 13, 2020 10:00 pm
enzo0508
В итоге решение - запускать mplayer от пользователя pi, тогда все работает правильно, так как звук через "pulse" не выводится под рутом.

common.class.php:

if (!$ignoreSound) {
if (file_exists($filename)) {
if (IsWindowsOS())
safe_exec(DOC_ROOT . '/rc/madplay.exe ' . $filename, $exclusive, $priority);
else {
if (defined('AUDIO_PLAYER') && AUDIO_PLAYER!='') {
safe_exec(AUDIO_PLAYER.' ' . $filename . " >/dev/null 2>&1'", $exclusive, $priority);
} else {
safe_exec("runuser -l pi -c 'mplayer " . $filename . " >/dev/null 2>&1'", $exclusive, $priority);
}
}
}
}