Проблема такая, majordomo прерывает все звуки примерно на 0.5сек раньше чем нужно, будь то простой звук уведомления или голосовой файл от YandexTTS. Раньше такого не было, после очередного обновления (на альфа ветке). Подскажите, пожалуйста, куда копать?
Из консоли "mplayer dingdong.mp3" проигрывает звук правильно, без прерывания в конце
Прерывается звук
Модератор: immortal
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: Прерывается звук
проверьте ффмпегenzo0508 писал(а): ↑Вс июн 21, 2020 1:27 pmПроблема такая, majordomo прерывает все звуки примерно на 0.5сек раньше чем нужно, будь то простой звук уведомления или голосовой файл от YandexTTS. Раньше такого не было, после очередного обновления (на альфа ветке). Подскажите, пожалуйста, куда копать?
Из консоли "mplayer dingdong.mp3" проигрывает звук правильно, без прерывания в конце
настройки в конгфиге
- и его работу
- За это сообщение автора tarasfrompir поблагодарил:
- enzo0508 (Пн июл 13, 2020 6:23 pm)
- Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
-
- Сообщения: 8
- Зарегистрирован: Ср май 23, 2018 12:52 pm
- Благодарил (а): 6 раз
- Поблагодарили: 0
Re: Прерывается звук
Звук, насколько я понял, проигрывается через 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%
Как это можно исправить?
Но я вот что заметил, что если останавливать 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%
Как это можно исправить?
-
- Сообщения: 8
- Зарегистрирован: Ср май 23, 2018 12:52 pm
- Благодарил (а): 6 раз
- Поблагодарили: 0
Re: Прерывается звук
В итоге решение - запускать 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);
}
}
}
}
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);
}
}
}
}