OpenFest 2018 - Радослав Колев, Леон Анави
В последните няколко години милиони умни говорители с Google Assistant и Amazon Alexa бяха продадени и пазарът им продължава да се разширява. В тази презентация Леон Анави и Радо Колев ще разгледат новите екосистеми за гласови асистенти и ще анализират съществуващите SDK за интеграцията им във вградени устройства с Linux. Освен Google Assistant и Amazon Alexa ще бъде разгледана и open source алтернативата MyCroft. Ще бъдат предоставени практически примери и демонстрации с Raspberry Pi и Orange Pi Zero с Allwinner SoC.
Free and Open Source Software Tools for Making Open Source Hardware
Вграждане на умни гласови асистенти в устройства с Linux
1. Вграждане на умни гласови
асистенти в устройства с Linux
Леон Анави
leon.anavi@konsulko.com
leon@anavi.org
Радослав Колев
radoslav@kolev.info
2. OpenFest 2018
Съдържание
Въведение в умните високоговорители с вграден гласов
асистент
Технолигии със свободен код за TTS и STT
Преглед на SDK-та на Amazon Alexa, Google Assistant и
тяхната алтернатива с отворен код MyCroft
Демонстрации и изводи
3. OpenFest 2018
Виртуални гласови асистенти
AliGenie
Amazon Alexa
Yandex Alice
Samsung Bixby
Braina
Clova
Mirosoft Cortana
Google Assistant
Mycroft
Apple Siri
Voice Mate
Други ...
6. OpenFest 2018
Основни софтуерни съставки
Изкуствен интелект
Засичане на дума за събуждане (активация)
Text to speech (TTS)
Speech to text (STT)
Драйвери и интеграция с хардуера
Софтуерни приложения
7. OpenFest 2018
Преобразуване на текст в глас (TTS)
Различни алгоритми - конкатенация, параметрични,
Wave net
Решения с отворен код:
Festival / eSpeak
Mary TTS
Mimic
Само Festival/еSpeak поддържа български, но с доста
роботски глас.
8. OpenFest 2018
Преобразуване на глас в текстс (STT)
Речеви корпус
Акустичен модел
Модел на езика
Машинно самообучение/невронни мрежи
Решения с отворен код:
CMU Sphinx/Pocketsphinx
Kaldi
Deep speech
Никое от горните няма поддръжка на български език
10. OpenFest 2018
Amazon Alexa
Виртуален асистент с изкуствен интелект разработен от
Amazon
Наличен за Fire OS, iOS and Android
Вграден в Amazon устройства като серията Echo
Пуснат ноември 2014
Изисква Amazon Alexa приложение на смартфон, за да се
конфигурират умните устройства на Amazon
11. OpenFest 2018
Alexa функционалностти
Многоезичност
Поддържа няколко думи за събуждане (wake word) от
предефиниран списък
Гласови профили за персонализация
Alexa към Alexa обаждания
Телефонни обаждания за САЩ, Канада и Мексико
12. OpenFest 2018
Amazon Alexa за програмисти
Интеграция на Amazon Alexa в специализирани
хардуерни устройства чрез SDK
Разширяване на функционалността на съвместими с
Алекса устройства чрез разработване на софтуерни
приложения наречени Skills
13. OpenFest 2018
Amazon умни високоговорители
Amazon Echo
Amazon Echo Dot
Amazon Echo Spot
Amazon Echo Tap
Amazon Echo Show
Amazon Echo Plus
14. OpenFest 2018
Alexa устройства от други
производители
Ecobee4 Smart Thermostat
Element EL4KAMZ17 (Amazon Fire TV Edition)
Eufy Genie
Fabriq Chorus and Riff
Garmin Speak
C by GE Sol Smart Lamp
iHome AVS16 Alarm Clock
LG Hub Robot
и други ...
15. OpenFest 2018
AVS SDK
Alexa Voice Service (AVS)
Лесно за ползване SDK за производители на комерсиални
устройства, за да интегрират Alexa в продукти за крайни
клиенти
В GitHub под Apache License 2.0
https://github.com/alexa/avs-device-sdk
71 git commit-а, 25 , 23 разработчика
Предоставя C++ базирани библиотеки
Съвместим с Android, macOS, Windows 64-bit, GNU/Linux
дистрибуции като Ubuntu и Raspbian
17. OpenFest 2018
AVS на Raspberry Pi
Сглобяване на Raspberry Pi с микрофон и високоговорител
Инсталация на Raspbian OS на microSD карта
Сваляне на AVS Device SDK
Добавяне на AVS credentials
Компилиране на AVS Device SDK
Снабдяване с Refresh токен за връзка с облака
Пускане на примерното приложение
За повече информация:
https://developer.amazon.com/docs/alexa-voice-service/set-up-raspberry-pi.html
18. OpenFest 2018
Комплекти за разработчици
Препоръчителни комплекти за разработване на прототипи:
XMOS VocalFusion 4-Mic Kit
Synaptics AudioSmart 2-Mic Dev Kit for Amazon AVS with NXP
SoC
Intel Speech Enabling Developer Kit
Amlogic A113X1 Far-Field Dev Kit for Amazon AVS
Allwinner SoC-Only 3-Mic Far-Field Dev Kit for Amazon AVS
DSPG HDClear 3-Mic Development Kit for Amazon AVS
19. OpenFest 2018
Пускане на комерсиални устройства
с Amazon Alexa на пазара
Съгласие с “AVS Terms and Agreements”
Тестване на продукта с “self-test checklists”, за да се
гарантира, че се доставя познато Alexa преживяване на
потребителя
“Alexa Built-in badge” за съвместимост с изиквания за
сигурност и функционалност
За повече информация:
https://developer.amazon.com/alexa-voice-service/launch
21. OpenFest 2018
Google Assistant
Виртуален гласов асистент с изкуствен интелект
разработен от Google
Наличен за можество платформи, мобилни телефони и
умни устройства
Пуснат на 18 May 2016
Написан на C++
Изисква Google Home приложения on a smartphone to
setup a smart speaker with Google Assistant
22. OpenFest 2018
Google Assistant функционалностти
Многоезичност
Щест различни гласа (включително мъжки и женски)
Продължителен разговор чрез последващи въпроси без
повтаряне на думата за активация
Гласово разпознаване на до 6 потребителя на умен
говорител
Google Duplex разширение за изпълнение на задачи чрез
естествени разговори по телефона
23. OpenFest 2018
Google Assistant за програмисти
Интеграция на Google Assistant в специализирани
хардуерни устройства чрез SDK
Разширяване на функционалността на съвместими с
Google Assistant устройства чрез разработване на
софтуерни приложения наречени Actions
24. OpenFest 2018
Google Assistant SDK
Google Assistant Library написана на Python за
архитектури linux-armv7l и linux-x86_64
Google Assistant Service за пълен контрол на
интеграцията чрез API на всички платформи поддържани
от модерния open source RPC механизъм gRPC
25. OpenFest 2018
Съвместимост и функционалности
Library Service
Хардуерни архитектури linux-armv7l и linux-
x86_64
Всички gRPC платформи
Програмни езици Python Всички gRPC езици
Активиране без ръце Да Не
Записване и възпроизвеждане
на звук
Вграден Предоставени за примери
Управление на състоянието на
разговорите
Вграден Предоставени за примери
Тимери и аларми Да Не
Новини и подкасти Да Не
Разпространение на гласови
съобщения
Да Не
Визуализация (HTML5) на
отговори на асистента
Не Да
26. OpenFest 2018
Google Smart Speakers
Google Home – пуснат на пазара на 4 ноември 2016
Google Home Mini – обявен на 4 октомври 2017, пуснат
на пазара на 9 октомври 2017
Google Home Max - обявен на 4 октомври 2017, пуснат
на пазара на 11 декември 2017
Google Home Hub - обявен на 9 октомври 2018
27. OpenFest 2018
Още устройства с Google Assistant
Panasonic GA10
Sony LF-S50G
TicHome Mini
Polk Assist
Hogar Milo
LG ThinQ WK7
JBL Link
Lenovo Smart Display
И други...
28. OpenFest 2018
Направи си сам Google Assistant (1/5)
Евтини хардуерни опции с достъпни компоненти от
любителски клас:
Google Voice Kit за Raspberry Pi:
https://aiyprojects.withgoogle.com/voice/
Raspberry Pi, Adafruit I2S MEMS Microphone Breakout –
SPH0645LM4H и Adafruit I2S 3W Class D Amplifer Breakout –
MAX98357A
https://www.adafruit.com/product/3421
https://www.adafruit.com/product/3006
OrangePi Zero Set 6 (включва кутия и допълнителна платка
с микрофон и аудио вход) + Speaker
http://www.orangepi.org/orangepizero/
29. OpenFest 2018
Направи си сам Google Assistant (3/5)
Активирайте виртуалната Python среда и инсталирайте
Google Assistant SDK:
python -m pip install --upgrade google-assistant-library
Инсталирайте и пуснете Google authorization tool:
python -m pip install --upgrade google-auth-oauthlib[tool]
google-oauthlib-tool --client-secrets
~/client_secret_xxxx.apps.googleusercontent.com.json --scope
https://www.googleapis.com/auth/assistant-sdk-prototype --
save --headless
Пуснете Google Assistant:
google-assistant-demo --device_model_id "my-speaker"
30. OpenFest 2018
Направи си сам Google Assistant (4/5)
Създайте systemd услуга /etc/systemd/system/google-
assistant-demo.service за Google Assistant:
[Unit]
Description=google assistant service
After=network.target ntpdate.service
[Service]
Type=simple
Environment=VIRTUAL_ENV=/home/pi/env/
Environment=PATH=/home/pi/env/bin:/usr/local/sbin:/usr/local
ExecStart=/home/pi/env/bin/google-assistant-demo --device_model_id "orangepi"
WorkingDirectory=/home/pi
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
Alias=google-assistant.service
31. OpenFest 2018
Направи си сам Google Assistant (5/5)
Пуснете и активирайте systemd услугата, за да се
стартира автоматично при пускане на системата:
sudo systemctl daemon-reload
sudo systemctl enable google-assistant-demo.service
sudo systemctl start google-assistant-demo.service
32. OpenFest 2018
Пускане на комерсиални устройства
с Google Assistant на пазара
Комерсиалните продукти с Google Assistant трябва да
бъдат сертифицирани от Google
Започнете като попълните форма с обща информация за
техническите спецификации на продукта:
https://developers.google.com/assistant/sdk/interest
34. OpenFest 2018
Mycroft
Проект за гласов асистент изцяло с отворен код
https://mycroft.ai/
Git хранилища в GitHub
https://github.com/MycroftAI
Лицензът на софтуера е Apache License 2.0
Лицензът на хардуера е CERN Open Hardware Licence
https://github.com/MycroftAI/hardware-mycroft-mark-1
Сертифициран хардуер с отворен код UID US000049
35. OpenFest 2018
Mycroft AI Inc.
Американска старт-ъп компания от Канзас, основана
през 2015 от Джошуа Монтгомъри
Първоначално всички продукти са финансиани чрез
кампании в Kickstarter и IndieGoGo
В момента приема инвестиции в StartEngine
36. OpenFest 2018
Mycroft
Mycroft Core, платформата на Майкрофт за изкуствен
интелект https://github.com/MycroftAI/mycroft-core
Написана на Python
2820 промени, 90 версии, 89 разработчика
8 разработчика с по повече от 100 промени
Skills, хранилище за споделяне и съвместна разработка
на Mycroft умения от външни доставчици
https://github.com/MycroftAI/mycroft-skills
965 промени, 65 разработчика (към 17 октомври)
37. OpenFest 2018
Възможности на Mycroft
Официалната версия работи само на английски език,
има поддръжка за други езици добавена от общността
Поддържа разширения на функционалността, чрез
разработка на приложения наречени skills (умения)
Mycroft Skills Manager (msm) е хранилище с умения
разработени от трети страни
Система за управление на потребителски профили и
устройства наречена Mycroft Home
Позволява употребата на устройства и без Mycroft Home
услуга
38. OpenFest 2018
Mycroft думи за събуждане
По подразбиране - “Hey Mycroft”
Позволява задаване на думи за събуждане от потребителя
Precise – софтуер за засичане на дума за събуждане
ползван във версиите след март 2018, написан на Python,
наличен в GitHub под Apache License 2.0:
https://github.com/MycroftAI/mycroft-precise
PocketSphinx предишният инструмент за разпознавана на
думи за събуждане, все още наличен като опция в Mycroft,
написан на C, наличен в GitHub под BSD-подобен лиценз:
https://github.com/cmusphinx/pocketsphinx
39. OpenFest 2018
Разпознаване на глас в Mycroft
Поддържат се следните системи за разпознаване на
глас (Speech to Text/STT):
Google STT (по подразбиране)
IBM Watson Speech to Text (изисква регистриран
потребител и парола)
wit.ai Speech to Text (необходим wit.ai API ключ)
DeepSpeech (в процес на разработка, като част от
OpenSTT инициативата в партньорство с Mozilla)
40. OpenFest 2018
DeepSpeech
Система за разпознаване на глас разработвана от Mozilla
Налична в GitHub под Mozilla Public License 2.0
https://github.com/mozilla/DeepSpeech
Съдържа части на C++, Python и шел скриптове, ползва
Google's TensorFlow
50 разработчика, 1220 промени, 19 версии
41. OpenFest 2018
Mozilla common voice
Свободно достъпен речеви корпус и наобри от данни
Уеб инструменти за обучение и валидация
DeepSpeech & Mozilla TTS
42. OpenFest 2018
Mycroft системи Текст към глас (TTS)
Поддържат се следните системи за преобразуване на
текст към глас:
Mimic (default)
eSpeak
MaryTTS
Google TTS
FATTS
43. OpenFest 2018
Mimic
Бърза и лека система за Text to Speech (TTS) разработена
от Mycroft.AI и VocaliD
Базирана на софтуера от Carnegie Mellon University FLITE
Налична в GitHub под BSD подобен лизенз (като FLITE):
https://github.com/MycroftAI/mimic
348 промени, 6 версии, 14 разработчика
Написана на C
Работи под GNU/Linux, Mac OS X и MS Windows
44. OpenFest 2018
Mycroft устройства
Mycroft Mark 1 (финансиран през 2015, доставен - 2017)
Mycroft Mark 2 (очакван през December 2018)
Направи си сам умен говорител с Raspberry Pi 2 & 3
(очакване поддръжка на 3 B+) с PiCroft (GNU/Linux
дистрибуция базирана на Raspbian Jessie Lite).
46. OpenFest 2018
Google Voice Kit за Raspberry Pi
Направи си сам комплект за Raspberry Pi
https://aiyprojects.withgoogle.com/voice/
Има две версии, първата беше разпространена със
списанието MagPi
Картонена кутия
48. OpenFest 2018
Raspberry Pi+Микрофон+Високооворител
Raspberry Pi
Adafruit I2S MEMS Microphone Breakout – SPH0645LM4H
https://www.adafruit.com/product/3421
Adafruit I2S 3W Class D Amplifer Breakout – MAX98357A
https://www.adafruit.com/product/3006
49. OpenFest 2018
Orange Pi Zero Set6
Orange Pi Zero с Allwinner H2 SoC и 512MB RAM
Разширителна платка с аудио вход, микрофон, инфраред
приемник и два допълнителни USB порта
Високоговорител
Кутия
5V microUSB захранване
Armbian GNU/Linux дистрибуция
https://www.armbian.com/orange-pi-zero/
50. OpenFest 2018
Home Assistant и Alexa
Home assistant е популярна система
за домашна автоматизация с
отоворен код написан на Python и
стотици компоненти
Emalutated Hue Bridge позволява не-
Philips Hue устройства да бъдат
контролирани чрез Amazon Echo
emulated_hue:
type: alexa
expose_by_default: true
51. OpenFest 2018
Raspberry Pi
Как работи?
Mosquitto
MQTT
Broker
Home
Assistant
MQTT client for
controlling the
RGB LED strip
User 1
MQTT
User 2
User N
MQTT
...
Emulated
Hue Bridge
MQTT
JSON Light
Cloud
ANAVI Light pHAT
12V RGB LED strip
53. OpenFest 2018
Заключения
Има голямо търсене на пазара за интеграция на
изкуствен интелект и гласови асистенти в продукти и
услуги за крайни потребители
Лидерите на пазара, Amazon и Google, предоставят SDK
за лесно внедряване в устройства, но изискват сложна
сертификация
Mycroft комбинира безплатен отворен код с отворен
хардуер
На практика всички разгледани опции изискват
Интернет връзка с облака
54. OpenFest 2018
Заключения
Нека добавим български език в Mozilla Common
Voice! За това е необходимо:
Да се преведе уеб сайта на български:
https://pontoon.mozilla.org/bg/common-voice/
Да се съберат 5000 фрази
Да се прегледат и валидират