Страница 2 из 9

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

Добавлено: Пн дек 26, 2016 2:21 pm
savenko_egor
Понял. Тогда как будет время, буду сам развивать тему.
Как говорил ранее, с музыкой проблем не будет. А вот с голосом... Тут пока не понятно.

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

Добавлено: Пн дек 26, 2016 6:09 pm
vova5049
можно. Но у зеро нет аудиовыхода и микрофона надо будет подключать юсб звуковую карту.
Как это нет аудиовыхода?
Есть и выход и микрофонный вход, и вход для ИК приемника, и еще дополнительно 2 USB.
Только не распаяны разьемы. Все это и еще композитный видеовыход выведено на гребенку с 13 пинами.

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

Добавлено: Пн дек 26, 2016 8:49 pm
C_3AXAPOB
Вы правы.Я имел ввиду именно разъемы.

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

Добавлено: Пт дек 30, 2016 4:27 am
layet
КартинкаSPOILER_SHOW
Изображение
Тоже тестируют OrangePi Zero в качестве сетевых колонок. И Алиса через них вполне говорит [emoji1]

Отправлено с моего Nexus 4 через Tapatalk

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

Добавлено: Пт дек 30, 2016 10:47 am
savenko_egor
layet, рассказывайте как и спрячьте под спойлер изображение. :D

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

Добавлено: Пт дек 30, 2016 12:07 pm
chief
Тоже тестируют OrangePi Zero в качестве сетевых колонок. И Алиса через них вполне говорит
А можно подробнее (установленая система, приложения, выход на колонки ...).

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

Добавлено: Пт дек 30, 2016 5:05 pm
layet
  • Подключаем колонки к 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();
    
  • на этом пока все(( Новогодняя суета

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

Добавлено: Пт дек 30, 2016 5:22 pm
savenko_egor
Ааааа. Ну так и я могу сделать на MPD. Я думал там без костылей Алиса заговорила.
Но всё-равно спасибо за описание! Кому-то это точно будет полезным.

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

Добавлено: Пт дек 30, 2016 5:23 pm
layet
А где костыли?) Надо разобраться и модуль писать для вывода голоса)

Отправлено с моего Nexus 4 через Tapatalk

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

Добавлено: Пт дек 30, 2016 5:25 pm
savenko_egor
Костыль в виде дополнительной библиотеки для управления сквизом.
Я думал что получилось заставить говорить Алису без этого.