Так получилось, что с появлением телевидения и интернета, радио никуда не исчезло, а ушло в совершенно новый — иной формат, в формат потокового вещания.
У меня давно появилась идея создать приёмник онлайн радио, который был бы всегда доступен, и не зависел от компьютера. Для этого идеально подошёл мини компьютер Raspberry Pi B и старые, уже не нужные, 20-ваттные колонки.
В простейшем виде онлайн-радио было готово спустя полчаса после начала работы над ним. Для этого я:
- Установил на Raspberry Pi дистрибутив Raspbian
- Установил на Raspberry Pi, медиаплеер MPD
- Настроил конфигурацию MPD под себя
- Установил клиенты: на Raspbian, на компьютеры, на смартфон и планшет
- Добавил несколько радиостанций. Поиск которых занял больше всего времени
На первое время, меня полностью устраило это решение, но хотелось иметь возможность управлять радио с помощью пульта дистанционного управления.
Я пытался подключить пульт управления к TSOP 1838, и бесполезно-валяющийся пульт управления, но мои познания в электронике потерпели фиаско. Я не смог подключить пульт от телевизора к этому фотоприёмнику.
После таких мытарств было принято решение купить пульт и фотоприёмник. И, о чудо! С ним не возникло никаких проблем! :)
Необходимо было установить демон lirc, поправить его конфиги, и определить коды клавиш пульта управления.
После этого, у меня появилась возможность запрограммировать поведение в появившемся уровне между сигналом с пульта управления, и непосредственным управлением MPD.
Прочитав эту серию статей, я понял что можно серьёзно изменить способ общения с приёмником, а именно, можно также добавить голосовые ответы на свои команды.
Управлять через BASH скрипты мне показалось неудобным, поэтому я переписал команды управления на PHP, и хочу показать вам этот небольшой проект.
Что он умеет сейчас:
- Включение/Выключение радиостанции по номеру, перемотка вперёд / назад
- Сообщает текущее время, текущий трек (Артист - Трек), при переключении между станциями - текущую станцию
- Установка таймера авто-выключения (ставлю на ночь голоса птичек и они сами выключаются)
- Управление громкостью
Что не умеет, и что хотелось бы, что бы умел:
- Определение языка куска текста, что бы подключать нужный голосовой движок
- Выбор голосового движка, в том числе и из OSS альтернатив, например Festival
- Сохранение дополнительной информации о радиостанции в метатегах MPD
- Много спагетти-кода, хочется отрефакторить
- А ещё, хочется вынести часть кода для управления MPD в отдельный подпроект
- Нет документации, очень хочется подробную документацию по настройке на английском и русском языках
Как я вижу потенциал подобного проекта огромен. Можно сообщать текущую погоду, зачитывать заголовки новостей или сообщать о новой почте.
А что бы вам хотелось реализовать в своём онлайн-радио?