Orange Pi Zero в качестве терминала?

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
savenko_egor
Сообщения: 696
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 102 раза
Поблагодарили: 138 раз
Контактная информация:

Re: Orange Pi Zero в качестве терминала?

Сообщение savenko_egor » Пн дек 26, 2016 2:21 pm

Понял. Тогда как будет время, буду сам развивать тему.
Как говорил ранее, с музыкой проблем не будет. А вот с голосом... Тут пока не понятно.
vova5049
Сообщения: 64
Зарегистрирован: Пт фев 21, 2014 10:56 am
Откуда: Днепропетровск
Благодарил (а): 1 раз
Поблагодарили: 5 раз

Re: Orange Pi Zero в качестве терминала?

Сообщение vova5049 » Пн дек 26, 2016 6:09 pm

можно. Но у зеро нет аудиовыхода и микрофона надо будет подключать юсб звуковую карту.
Как это нет аудиовыхода?
Есть и выход и микрофонный вход, и вход для ИК приемника, и еще дополнительно 2 USB.
Только не распаяны разьемы. Все это и еще композитный видеовыход выведено на гребенку с 13 пинами.
2*MegaD328, Система на Raspberry Pi 2
C_3AXAPOB
Сообщения: 507
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 123 раза
Поблагодарили: 100 раз

Re: Orange Pi Zero в качестве терминала?

Сообщение C_3AXAPOB » Пн дек 26, 2016 8:49 pm

Вы правы.Я имел ввиду именно разъемы.
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
layet
Сообщения: 75
Зарегистрирован: Чт янв 16, 2014 2:47 pm
Благодарил (а): 3 раза
Поблагодарили: 29 раз

Re: Orange Pi Zero в качестве терминала?

Сообщение layet » Пт дек 30, 2016 4:27 am

КартинкаПоказать
Изображение
Тоже тестируют OrangePi Zero в качестве сетевых колонок. И Алиса через них вполне говорит Изображение

Отправлено с моего Nexus 4 через Tapatalk
Последний раз редактировалось layet Пт дек 30, 2016 4:29 pm, всего редактировалось 2 раза.
Аватара пользователя
savenko_egor
Сообщения: 696
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 102 раза
Поблагодарили: 138 раз
Контактная информация:

Re: Orange Pi Zero в качестве терминала?

Сообщение savenko_egor » Пт дек 30, 2016 10:47 am

layet, рассказывайте как и спрячьте под спойлер изображение. :D
chief
Сообщения: 33
Зарегистрирован: Чт май 19, 2016 8:43 pm
Откуда: Украина, Черкассы
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Orange Pi Zero в качестве терминала?

Сообщение chief » Пт дек 30, 2016 12:07 pm

Тоже тестируют OrangePi Zero в качестве сетевых колонок. И Алиса через них вполне говорит
А можно подробнее (установленая система, приложения, выход на колонки ...).
layet
Сообщения: 75
Зарегистрирован: Чт янв 16, 2014 2:47 pm
Благодарил (а): 3 раза
Поблагодарили: 29 раз

Re: Orange Pi Zero в качестве терминала?

Сообщение layet » Пт дек 30, 2016 5:05 pm

  • Подключаем колонки к OrangePi Zero. Распиновку однорядной колодки (уже впаяна) посмотреть можно здесь. Нас интересуют пины 7,8 - это левый/правый канал и пин 2 - земля. Первый пин всегда обозначен квадратной контактной площадкой.
  • Я установил обычный Armbian отсюда
  • Устанавливаем дополнительный библиотеки:

    Код: Выделить всё

    sudo apt-get install -y libflac-dev libfaad2 libmad0
  • Скачиваем squeezelite

    Код: Выделить всё

    mkdir squeezelite
    cd squeezelite
    wget -O squeezelite-armv6hf http://ralph_irving.users.sourceforge.net/pico/squeezelite-armv6hf-noffmpeg
     
  • Копируем в bin и делаем исполняемым

    Код: Выделить всё

    sudo mv squeezelite-armv6hf /usr/bin
    sudo chmod a+x /usr/bin/squeezelite-armv6hf
  • Качаем alsa-oss для программного микширования

    Код: Выделить всё

    sudo apt-get install alsa-oss
  • Настраиваем программный микшер (создаем файл /etc/asound.conf и пишем конфиг)

    Код: Выделить всё

    pcm.ossmix {
        type dmix
        ipc_key 1024
        ipc_key_add_uid false
        slave {
    pcm "hw:0,0"
    period_time 0
    period_size 2048
    buffer_size 32768
        }
        bindings {
    0 0
    1 1
        }
        pcm.dsp0 {
    type plug
    slave.pcm "ossmix"
        }
        ctl.mixer0 {
    type hw
    card 0
        }
    }
    
  • Смотрим на какое устройство будем выводить звук

    Код: Выделить всё

    squeezelite-armv6hf -l

    Код: Выделить всё

    Output devices:
      null                           - Discard all samples (playback) or generate zero samples (capture)
      ossmix                        
      default:CARD=audiocodec        - audiocodec,  - Default Audio Device
      sysdefault:CARD=audiocodec     - audiocodec,  - Default Audio Device
      dmix:CARD=audiocodec,DEV=0     - audiocodec,  - Direct sample mixing device
      dsnoop:CARD=audiocodec,DEV=0   - audiocodec,  - Direct sample snooping device
      hw:CARD=audiocodec,DEV=0       - audiocodec,  - Direct hardware device without any conversions
      plughw:CARD=audiocodec,DEV=0   - audiocodec,  - Hardware device with all software conversions
      default:CARD=sndhdmi           - sndhdmi,  - Default Audio Device
      sysdefault:CARD=sndhdmi        - sndhdmi,  - Default Audio Device
      dmix:CARD=sndhdmi,DEV=0        - sndhdmi,  - Direct sample mixing device
      dsnoop:CARD=sndhdmi,DEV=0      - sndhdmi,  - Direct sample snooping device
      hw:CARD=sndhdmi,DEV=0          - sndhdmi,  - Direct hardware device without any conversions
      plughw:CARD=sndhdmi,DEV=0      - sndhdmi,  - Hardware device with all software conversions
    
    Нашли -> dmix:CARD=audiocodec,DEV=0
  • Запускаем 2 копии плеера: один для музыки, второй для голоса Алисы:

    Код: Выделить всё

    squeezelite-armv6hf -o dmix:CARD=audiocodec,DEV=0 -n test1 -m 00:00:00:00:00:01 & squeezelite-armv6hf -o dmix:CARD=audiocodec,DEV=0 -n test2 -m 00:00:00:00:00:02 & 
  • Параметры -n и -m - обязательно указывать разные (это имя плеера и мак-адрес)
  • Тест я проводил пока только проигрывая mp3 из папки cached/voice с одновременным проигрывании музыки. Библиотеку PHP для Logitech Media Server'а смотрим во вложении. Код тестового файла:

    Код: Выделить всё

    <?php
    
    include('lib/squeezephpapi/class.SqueezeConnection.php');
    include('lib/squeezephpapi/class.SqueezeCenter.php');
    include('lib/squeezephpapi/class.SqueezePlaylist.php');
    
    $mySqueezeConnection = new SqueezeConnection("192.168.0.5","9090","","");
    if ($mySqueezeConnection->connect())
    {
        $mySqueezeCenter = new SqueezeCenter($mySqueezeConnection);
    }
    
    echo("<pre>");
    $myPlaylist = new SqueezePlaylist($mySqueezeConnection, "00:00:00:00:00:02");
    $filename = md5(urlDecode($_GET['ph'])).'_yandex.mp3';
    //$myPlaylist->save("temp");
    $myPlaylist->play("http://192.168.0.5/cached/voice/".$filename);
    //sleep(5);
    //$myPlaylist->clear();
    echo("</pre>");
    $mySqueezeConnection->disconnect();
    
  • на этом пока все(( Новогодняя суета
Вложения
SqueezePHPAPI_v0.1.tar.gz
(78.87 КБ) 604 скачивания
За это сообщение автора layet поблагодарили (всего 3):
savenko_egor (Пт дек 30, 2016 5:22 pm) • skysilver (Пн янв 09, 2017 2:48 pm) • C_3AXAPOB (Пн янв 16, 2017 10:14 pm)
Рейтинг: 3.7%
Аватара пользователя
savenko_egor
Сообщения: 696
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 102 раза
Поблагодарили: 138 раз
Контактная информация:

Re: Orange Pi Zero в качестве терминала?

Сообщение savenko_egor » Пт дек 30, 2016 5:22 pm

Ааааа. Ну так и я могу сделать на MPD. Я думал там без костылей Алиса заговорила.
Но всё-равно спасибо за описание! Кому-то это точно будет полезным.
layet
Сообщения: 75
Зарегистрирован: Чт янв 16, 2014 2:47 pm
Благодарил (а): 3 раза
Поблагодарили: 29 раз

Re: Orange Pi Zero в качестве терминала?

Сообщение layet » Пт дек 30, 2016 5:23 pm

А где костыли?) Надо разобраться и модуль писать для вывода голоса)

Отправлено с моего Nexus 4 через Tapatalk
Аватара пользователя
savenko_egor
Сообщения: 696
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 102 раза
Поблагодарили: 138 раз
Контактная информация:

Re: Orange Pi Zero в качестве терминала?

Сообщение savenko_egor » Пт дек 30, 2016 5:25 pm

Костыль в виде дополнительной библиотеки для управления сквизом.
Я думал что получилось заставить говорить Алису без этого.
Ответить