GithubHelp home page GithubHelp logo

eeak / lvterminal Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mosave/lvterminal

0.0 0.0 0.0 28.21 MB

Lite Voice Terminal, an "offline smart speaker" solution powered by on-premise ASR server (vosk API / kaldi engine)

License: Other

Shell 1.70% Python 98.20% Batchfile 0.10%

lvterminal's Introduction

Lite Voice Terminal

Free, open source, offline, DIY smart speaker platform oriented to Russian language.

Disclaimer: MVP alpha version. Минимально жизнеспособный продукт, версия альфа

Lite Voice Terminal это клиент-серверная платформа с открытым исходным кодом для создания "легких" смарт колонок, не требующих использования онлайн-сервисов для распознавания голоса.

"Легкий" означает что смарт колонка (LVT клиент) может быть собрана на Raspberry Pi Zero или подобном маломощном одноплатном компьютере с достаточно чувствительным микрофоном и возможностью вывода звука.

Распознавание голоса и обработка команд выполняется на установленном в локальной сети kaldi/vosk API сервере. В целом можно сказать что Intel Core i3 / 16Gb достаточно для обеспечения работы 10-20 терминалов, 5-7 из которых могут одновременно поддерживать диалог с пользователем "в реальном времени".

Архитектура сервера LVT в целом предполагает расширение функциональности ассистента за счет отдельных модулей-скилов, однако реализация ориентирована в первую очередь на совместную работу с платформами автоматизации умного дома, таких как Home Assistant, для которого предусмотрен свой модуль интеграции

Запланированные изменения:

  • Отказ от избыточной универсальности, поддержка только русского языка.
  • Упрощение и оптимизация серверной части
  • Интеграция с Logitech Media Server (Squeezebox)) на уровне сервера.
  • Расширение протоколов управления LVT и разработка модуля интеграции с Home Assistant.
  • Оптимизация клиента LVT

Возможности (реализованные и планируемые к реализации)

  • Клиент LVT может работать как под unix (RaspberryPi с микрофоном) так и на windows платформе
  • Не требует использования внешних онлайн сервисов
  • Обмен между клиентской и серверной частью реализовано по протоколу websock с поддержкой SSL
  • Не требует специальной настройки голосовой активации, имя (несколько имен) ассистента задается в файле настройки.
  • Идентификация говорящего по голосу (работает только на достаточно длинных фразах, на текущий момент отключено)
  • Возможность расширения функций ассистента за счет написания своих модулей
  • Совместная работа LVT клиента и squeezebox lite (плеер-клиент Logitech Media Server)
  • Интеграция в Home Assistant
  • Запуск сервера LVT на Unix
  • Запуск сервера LVT на Windows
  • RHVoice TTS
  • Windows TTS
  • Docker-образ LVT сервера

При реализации LVT использованы сторонние компоненты и модули:

  • kaldi: офлайн-распознавание речи
  • vosk API: программный интерфейс для kaldi
  • pymorphy2: морфологический анализатор для русского и украинского языков
  • RHVoice: синтез голоса для русского языка
  • APA102: управление светодиодной лентой
  • WebRTC VAD: Определение наличия голоса во входном потоке
  • ReSpeaker components: Взаимодействие с микрофоном и методы обработки звуков
  • mdmTerminal2: Много идей и кода позаимствовано из реализации голосового терминала MajorDoMo

Документация

License

LVT is distributed under LGPL v2.1 or later. Components and API used may be a subject of other licenses.

lvterminal's People

Contributors

app avatar mosave avatar sa-egor avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.