Онлайн радио на Raspberry Pi

Radio apparatus and unidentified operator circa 1930

Так получилось, что с появлением телевидения и интернета, радио никуда не исчезло, а ушло в совершенно новый — иной формат, в формат потокового вещания.

У меня давно появилась идея создать приёмник онлайн радио, который был бы всегда доступен, и не зависел от компьютера. Для этого идеально подошёл мини компьютер Raspberry Pi B и старые, уже не нужные, 20-ваттные колонки.

В простейшем виде онлайн-радио было готово спустя полчаса после начала работы над ним. Для этого я:

  • Установил на Raspberry Pi дистрибутив Raspbian
  • Установил на Raspberry Pi, медиаплеер MPD
  • Настроил конфигурацию MPD под себя
  • Установил клиенты: на Raspbian, на компьютеры, на смартфон и планшет
  • Добавил несколько радиостанций. Поиск которых занял больше всего времени

На первое время, меня полностью устраило это решение, но хотелось иметь возможность управлять радио с помощью пульта дистанционного управления.

Я пытался подключить пульт управления к TSOP 1838, и бесполезно-валяющийся пульт управления, но мои познания в электронике потерпели фиаско. Я не смог подключить пульт от телевизора к этому фотоприёмнику.
После таких мытарств было принято решение купить пульт и фотоприёмник. И, о чудо! С ним не возникло никаких проблем! :)

Необходимо было установить демон lirc, поправить его конфиги, и определить коды клавиш пульта управления.

После этого, у меня появилась возможность запрограммировать поведение в появившемся уровне между сигналом с пульта управления, и непосредственным управлением MPD.

Прочитав эту серию статей, я понял что можно серьёзно изменить способ общения с приёмником, а именно, можно также добавить голосовые ответы на свои команды.

Управлять через BASH скрипты мне показалось неудобным, поэтому я переписал команды управления на PHP, и хочу показать вам этот небольшой проект.

Что он умеет сейчас:

  • Включение/Выключение радиостанции по номеру, перемотка вперёд / назад
  • Сообщает текущее время, текущий трек (Артист — Трек), при переключении между станциями — текущую станцию
  • Установка таймера авто-выключения (ставлю на ночь голоса птичек и они сами выключаются)
  • Управление громкостью

Что не умеет, и что хотелось бы, что бы умел:

  • Определение языка куска текста, что бы подключать нужный голосовой движок
  • Выбор голосового движка, в том числе и из OSS альтернатив, например Festival
  • Сохранение дополнительной информации о радиостанции в метатегах MPD
  • Много спагетти-кода, хочется отрефакторить
  • А ещё, хочется вынести часть кода для управления MPD в отдельный подпроект
  • Нет документации, очень хочется подробную документацию по настройке на английском и русском языках

Как я вижу потенциал подобного проекта огромен. Можно сообщать текущую погоду, зачитывать заголовки новостей или сообщать о новой почте.

А что бы вам хотелось реализовать в своём онлайн-радио?

Read more posts by this author.