Orange Pi Zero в качестве терминала?
Модератор: immortal
-
- Сообщения: 33
- Зарегистрирован: Чт май 19, 2016 8:43 pm
- Откуда: Украина, Черкассы
- Благодарил (а): 6 раз
- Поблагодарили: 1 раз
Re: Orange Pi Zero в качестве терминала?
Попробовал на WIN7, не хочет коннектиться, выдает ошибку:
Warning: fsockopen(): in C:\_majordomo\htdocs\lib\squeezephpapi\class.SqueezeConnection.php on line 222
192.168.0.5 - как я понимаю, это IP терминала со сквизом?
9090 - это порт, он фиксированый или меняется?
Warning: fsockopen(): in C:\_majordomo\htdocs\lib\squeezephpapi\class.SqueezeConnection.php on line 222
192.168.0.5 - как я понимаю, это IP терминала со сквизом?
9090 - это порт, он фиксированый или меняется?
- savenko_egor
- Сообщения: 705
- Зарегистрирован: Вс авг 03, 2014 8:17 pm
- Откуда: Украина, Запорожье
- Благодарил (а): 108 раз
- Поблагодарили: 147 раз
- Контактная информация:
Re: Orange Pi Zero в качестве терминала?
Добавлю для "потомков"... Обсуждали на канале в Телеграме.
Как воспроизвести голос Алисы на терминале.
...Из своего скрипта мы заставляем заговорить Алису и тем самым закешировать необходимый нам файл. Например:
В переменной $weather хранится информация о погоде в текстовом виде. Этот текст можно получить как угодно, например из какого либо погодного модуля.
Система проговаривает эту инфу на сервере и тем самым кеширует аудио файл в папку cms/cached/voice/. Теперь для того чтобы узнать имя файла, нам достаточно выполнить функцию:
То есть в переменной $md5hash будет хранится md5 хеш нашего текста о погоде.
Теперь для того чтобы сформировать ссылку на mp3 файл достаточно такой строки:
Прошу заметить что у меня Яндекс TTS, потому в конце "_yandex.mp3". Как там для других TTS, смотрите у себя в папке cms/cached/voice/.
Теперь имея ссылку на файл с нашим продиктованым текстом, мы можем эту ссылку отправить на проигрование на нужном нам терминале. Например так:
В переменной $terminal хранится имя терминала на котором необходимо воспроизвести файл. Можно задать ранее, можно передавать в скрипт как параметр, можно просто вместо имени переменной вручную вписать имя терминала или задать переменную перед запросом:
$terminal = "phone";
Так же для того чтобы сократить код вызова URL, то есть код отправки команды на проигрывание, можно вызвать ссылку кодом:
То есть конечный вид сценария будет иметь вид:
Ссылка на заметку в блоге: Проговаривание сообщений Алисы на терминалах(MPD, VLC, etc.)
Как воспроизвести голос Алисы на терминале.
...Из своего скрипта мы заставляем заговорить Алису и тем самым закешировать необходимый нам файл. Например:
Код: Выделить всё
$weather = "Погода такая погодная. Всё будет супер и солнечно.";
say($weather,1);
Система проговаривает эту инфу на сервере и тем самым кеширует аудио файл в папку cms/cached/voice/. Теперь для того чтобы узнать имя файла, нам достаточно выполнить функцию:
Код: Выделить всё
$md5hash = md5($weather);
Теперь для того чтобы сформировать ссылку на mp3 файл достаточно такой строки:
Код: Выделить всё
$link_on_mp3_file = "http://domain.com/cms/cached/voice/".$md5hash."_yandex.mp3";
Теперь имея ссылку на файл с нашим продиктованым текстом, мы можем эту ссылку отправить на проигрование на нужном нам терминале. Например так:
Код: Выделить всё
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$url = "http://domain.com/popup/app_player.html?ajax=1&play_terminal=$terminal&command=refresh&play=".urlencode($link_on_mp3_file);
curl_setopt($ch, CURLOPT_URL, $url);
curl_exec($ch);
curl_close($ch);
$terminal = "phone";
Так же для того чтобы сократить код вызова URL, то есть код отправки команды на проигрывание, можно вызвать ссылку кодом:
Код: Выделить всё
getURLBackground($url);
Код: Выделить всё
$weather = "Погода такая погодная.";
say($weather,1);
$md5hash = md5($weather);
$link_on_mp3_file = "http://domain.com/cms/cached/voice/".$md5hash."_yandex.mp3";
$terminal = "phone";
$url = "http://domain.com/popup/app_player.html?ajax=1&play_terminal=$terminal&command=refresh&play=".urlencode($link_on_mp3_file);
getURLBackground($url);
Всё работает. Проверил только что.
При этом работает на:
1. MPD на OPi Zero.
2. Majordorid.
3. MPD на Android.
Последний раз редактировалось savenko_egor Ср дек 20, 2017 10:54 pm, всего редактировалось 4 раза.
- За это сообщение автора savenko_egor поблагодарил:
- Руслан (Пт мар 30, 2018 1:27 pm)
- Рейтинг: 1.16%
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: Orange Pi Zero в качестве терминала?
А штатный getURL() не работает? (вместо curl)
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
- savenko_egor
- Сообщения: 705
- Зарегистрирован: Вс авг 03, 2014 8:17 pm
- Откуда: Украина, Запорожье
- Благодарил (а): 108 раз
- Поблагодарили: 147 раз
- Контактная информация:
Re: Orange Pi Zero в качестве терминала?
Не пробовал. Но думаю будет работать.skysilver писал(а):А штатный getURL() не работает? (вместо curl)
UPD:
Проверил. Работает. Обновил пост.
-
- Сообщения: 148
- Зарегистрирован: Ср июл 25, 2018 10:37 pm
- Благодарил (а): 43 раза
- Поблагодарили: 8 раз
Re: Orange Pi Zero в качестве терминала?
Я так понимаю, этот вариант на сегодня уже не работает? Как тогда заставить говорить и петь в терминал? 3 дня поисков не дал рабочего варианта.
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
- savenko_egor
- Сообщения: 705
- Зарегистрирован: Вс авг 03, 2014 8:17 pm
- Откуда: Украина, Запорожье
- Благодарил (а): 108 раз
- Поблагодарили: 147 раз
- Контактная информация:
Re: Orange Pi Zero в качестве терминала?
Плохо ищите. Парни давно сделали модуль mdmpiterminal. https://github.com/devoff/mdmPiTerminal/lihodeev писал(а):Я так понимаю, этот вариант на сегодня уже не работает? Как тогда заставить говорить и петь в терминал? 3 дня поисков не дал рабочего варианта.
-
- Сообщения: 148
- Зарегистрирован: Ср июл 25, 2018 10:37 pm
- Благодарил (а): 43 раза
- Поблагодарили: 8 раз
Re: Orange Pi Zero в качестве терминала?
именно это и не работает. Ответа голосом от алисы на терминал добиться не смог(только на сервере), петь тоже не хочет. Управление голосом девайсами - работает.
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
- savenko_egor
- Сообщения: 705
- Зарегистрирован: Вс авг 03, 2014 8:17 pm
- Откуда: Украина, Запорожье
- Благодарил (а): 108 раз
- Поблагодарили: 147 раз
- Контактная информация:
Re: Orange Pi Zero в качестве терминала?
Ну так задавайте вопросы. Или пишите в Телегу: https://t.me/mdmPiTerminal
-
- Сообщения: 148
- Зарегистрирован: Ср июл 25, 2018 10:37 pm
- Благодарил (а): 43 раза
- Поблагодарили: 8 раз
Re: Orange Pi Zero в качестве терминала?
я даже не знаю как задать.. попробую - Алиса живет в малине есть два терминала на апельсине и на WIN7. Говорю в терминал - давай включим getURL('http://localhost/popup/app_101ru.html?a ... tion&id=88', 0); алиса отвечает на сервере ОК и так же послушно выполняет команду НО на сервере. как будто не понимает что мне надо в терминал или просто издевается.
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
-
- Сообщения: 1566
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 40 раз
- Поблагодарили: 578 раз
Re: Orange Pi Zero в качестве терминала?
Конечно не понимает. Терминал он для общения - ввод/вывод звука. Всякие команды выполняются на сервере. Отправить файл на проигрывание на терминале можно командой playMedia($path, $host ), вроде бы текущая версия mdmPiTerminal позволяет это сделать. Файл должен быть виден на терминалеlihodeev писал(а): ↑Чт сен 06, 2018 2:20 pmя даже не знаю как задать.. попробую - Алиса живет в малине есть два терминала на апельсине и на WIN7. Говорю в терминал - давай включим getURL('http://localhost/popup/app_101ru.html?a ... tion&id=88', 0); алиса отвечает на сервере ОК и так же послушно выполняет команду НО на сервере. как будто не понимает что мне надо в терминал или просто издевается.