crontab с espeak не работает, когда звуковая карта занята тусовками в гугле

Там может быть не решение этой проблемы, но вот проблема, тем не менее:)

  1. Я нахожусь на Ubuntu 14.04, использую последнюю версию Chrome в качестве браузера
  2. Моя звуковая карта занята в Google Hangouts
  3. Мой crontab настроен так:

    * * * * * espeak "hello" > /path/to/my/error.log 2>&1
    

Отслеживая журнал ошибок, я не вижу ошибок. Но я тоже не слышу ни звука. Когда я выхожу из видеовстречи, я начинаю каждую минуту слышать громкий "привет" из моих динамиков.

Так может ли espeak или любая другая программа обойти тот факт, что звуковая карта занята? Спасибо за чтение проблемы:)

2 ответа

Решение

Попробуйте что-то вроде этого:

* * * * * export DISPLAY=:0 ; espeak "hello" > /path/to/my/error.log 2>&1

espeak, похоже, нужен X-сервер.

Вероятно, espeak пытается получить доступ к звуковой карте напрямую, а не через общесистемный аудиосервер (pulseaudio). Pulseaudio может принимать несколько потоков из приложений и объединять их в один выход.

Использование:

espeak -v en "Hello i am espeak" --stdout | aplay

Смотрите этот ответ: espeak возвращает ошибку на сервере Ubuntu

Вы также можете попробовать прибегнуть к помощи "espeak pulseaudio" для получения дополнительной информации.

Другие вопросы по тегам