• Stars
    star
    122
  • Rank 292,031 (Top 6 %)
  • Language
    Shell
  • Created over 6 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Instructions, scripts, tools and files to install, setup and run the SEPIA-Framework on Raspberry Pi, Windows, Mac and other Linux systems.

Installation + Setup Tools and Bundles

This repository includes instructions, scripts, tools and files to install, setup and run SEPIA on Windows, Mac, Raspian (Raspberry Pi) and other Linux systems.
You can choose one of the release packages below to get right into the game :-)

Downloads can be found on the release page: https://github.com/SEPIA-Framework/sepia-installation-and-setup/releases
For the source code of every component in a bundle please browse the project page: https://github.com/SEPIA-Framework

SEPIA-Home - SEPIA Framework release bundle for private home server

This bundle includes everything you need to get started with the SEPIA-Framework and your own, personal, open-source voice-assistant on Windows, Mac and Linux.
NOTE: Setup and scripts included in this bundle assume you are using the framework with default settings (server ports etc.) in "custom" mode.

Quick start

If you are using a Raspberry Pi check out the more detailed guide.
The easiest way to get started is to use the setup script and follow the instructions (optimized for Raspberry Pi OS but any Debian based Linux might work):

wget https://sepia-framework.github.io/install/sepia-home-rpi.sh
bash sepia-home-rpi.sh

Installation without script (any platform):

  • Make sure you have Java JDK 11 installed. For Debian Linux use sudo apt-get install openjdk-11-jdk-headless, for other platforms check Eclipse's Adoptium Project.
  • Place the content of the SEPIA-Home bundle in any folder you like. On Linux "~/SEPIA/" (no root!) is highly recommended if you want to use the boot and SSL scripts later: unzip SEPIA-Home.zip -d ~/SEPIA.
  • Run setup.bat (Windows) or bash setup.sh (Mac, Linux) to setup your SEPIA servers
  • Inside the setup choose 4 to start Elasticsearch and then 1 to setup the SEPIA-Framework. Remember the passwords you set! Optionally install the TTS engine (recommended for Linux). You can skip the other options for now.
  • Optional (Linux): Update your local clock for precise timers, e.g. (Debian): sudo timedatectl set-ntp true
  • If everything worked out (check console for errors) you can use "run-sepia" (.bat for Windows, .sh for Linux/Mac) to start all servers.
  • The run-script will ping the servers to see if everything started as planned. You can repeat this test with test-cluster.bat/test-cluster.sh to make sure. If you see errors check sepia-*/log.out.
  • You should be able to reach the web-app of SEPIA via one of the URLs suggested at the end of the run-script, e.g.: http://localhost:20721/app/index.html (replace 'localhost' with the server IP if you are on a different machine).
  • Extend the now visible login-box to verify the hostname field. The hostname should point to your SEPIA server (e.g. localhost or an IP like 192.168.0.10).
  • For testing purposes (only!) you can use the admin-acount to log-in, by default the ID is [email protected] or uid1003 (don't use the "assistant" account!). The password has been set during setup. Check out the 'next steps' section to learn how to create new users.

NOTE: Using the web-app via local network IPs (except 127.0.0.1 aka localhost) will limit the functionality of some features like the speech-recognition, geo-location and notifications due to security reasons (browser restriction, requires HTTPS to work). See the "Secure server" section below for further instructions on how to set up your own HTTPS web-server, BUT if you are just using your own local servers there is another solution that will work fine. You can add exceptions to your browser as well :-) see this guide.

Next steps

If your local tests worked well it is time to create your own (non-admin) account:

  • To create new users (detailed tutorial) use the SEPIA Control-HUB (aka tools page or admin-tools): http://localhost:20721/tools/index.html (registration via 'real' e-mail is possible in theory but not fully implemented in the clients right now).
  • Login to the Control-HUB using your admin account (default username and email are uid1003 and [email protected]). By extending the login-box you can check if the right server for authentication is selected (very similar to the hostname above) it should look like this 'http://localhost:20721' or this 'http://192.168.0.10:20721' for example.
  • Open the menu (top-left) and go to the "User Management" page. Choose an email (can be fake, but a real address could come in handy later for password reset etc.) then press "put on whitelist", add a password and finally press "create". Note the message in the result-box indicating your new ID.
  • You should now be able to log-in with your new account (use the ID received during "create" or the email you chose).

Secure server

Creating your own web-server with SSL encryption will make sure that you can use all features of the app without problems via HTTPS. There are 2 major options supported via SEPIA setup scripts:

  • Self-signed SSL with non-SSL fallback to secure your private network. Recommended if you're planning to use SEPIA inside your home.
  • Letsencrypt SSL with a dynamic DNS provider (e.g. Duck-DNS). This will make your server reachable from outside your network (e.g. when you're using the mobile app and want to check your shopping-list inside a supermarket) and give you "official" SSL certificates.

To get started you can use the Nginx setups script in your SEPIA folder: bash setup-nginx.sh.
To learn more about SSL setup check the SEPIA-Wiki entry: how to secure your server, use all features and open it to the world.

SEPIA DIY Client - Raspberry Pi Smart-Speaker, Smart-Display etc.

When you've successfully installed SEPIA-Home you can use the web-based SEPIA-Client right away from your web browser or via the official app, but there is more ^^.
Check out the DIY section to find out about custom clients.

Other SEPIA Projects

  • SEPIA STT Server - Offline speech-recognition server with customizable language models
  • micro:bit Bluetooth remote - BLE beacon based remote for SEPIA client to trigger microphone and other controls
  • There is much more to discover, just browse the project pages ;-)

Build-your-own release (for experts)

Since everything in SEPIA is open-source you can always build the whole framework from scratch using the Github repositories. A rough list of the requirements to do so can be found here.

There is a setup script that helps to setup a build environment on Debian based Linux and there is another script to check the environment (except Java) and build SEPIA-Home (custom bundle release). You can run the first using a Debian based Linux:

wget https://raw.githubusercontent.com/SEPIA-Framework/sepia-installation-and-setup/master/scripts/install-debian-build-environment.sh
sudo bash install-debian-build-environment.sh

You can run the latter (if you have Java already installed) via:

wget https://raw.githubusercontent.com/SEPIA-Framework/sepia-installation-and-setup/master/build_sepia_home_release_apt.sh
sudo bash build_sepia_home_release_apt.sh

You can also build the dev branch if you want to test the latest changes (may have more bugs or other issues ^^):

sudo bash build_sepia_home_release_apt.sh dev

You will get a ZIP-file in the end with the new release build (as well).

Version history

For a detailed list of updates and new features please see the CHANGELOG

More Repositories

1

sepia-docs

Documentation and Wiki for SEPIA. Please post your questions and bug-reports here in the issues section! Thank you :-)
237
star
2

sepia-stt-server

SEPIA server to support open-source speech recognition via WebSocket connection.
Python
120
star
3

sepia-assist-server

Core server of the SEPIA Framework responsible for NLU, conversation, smart-service integration, user-accounts and more.
Java
93
star
4

sepia-html-client-app

Application to communicate with SEPIA via browser, iOS and Android. Works as chat messenger with personal-assistant, ASR and TTS integration.
JavaScript
62
star
5

sepia-web-audio

Create modular, cross-browser, web audio pipelines to record and process audio in background threads. Comes with modules for VAD, ASR, resampling and much more...
JavaScript
44
star
6

sepia-sdk-java

Java SDK for SEPIA services
Java
11
star
7

sepia-mesh-nodes

SEPIA Mesh Nodes are small, lightweight servers that can be distributed in your network to run tasks securely.
Java
9
star
8

sepia-admin-tools

Tools to connect to your SEPIA servers, change settings, organize users, test the APIs and more.
JavaScript
8
star
9

sepia-extensions

Extensions (the "E" in SEPIA) are plugins and smart services that enhance SEPIA's capabilities.
Java
7
star
10

SEPIA-Framework.github.io

SEPIA framework website: https://sepia-framework.github.io/
JavaScript
6
star
11

sepia-core-tools-java

The Core-Tools repository contains classes and methods shared by SEPIA servers and e.g. the SDK. It also has useful tools to simplify HTTP calls, file and database access, JSON stuff and more.
Java
4
star
12

sepia-wakeword-tools

Wake-word tools and implementations for S.E.P.I.A.
Python
4
star
13

sepia-teach-server

The teach-API is responsible for adding new stuff to the assistant like answers and commands and it collects feedback.
Java
3
star
14

sepia-open-hardware

A collection of open hardware projects or tutorials useful for voice assistants etc.
3
star
15

sepia-node-js-client

Basic Node.js client for SEPIA with Node-RED support
3
star
16

sepia-reverse-proxy

Tiny reverse proxy for SEPIA-Framework
Java
3
star
17

sepia-websocket-server-java

Java server for SEPIA WebSocket communication interface.
Java
2
star
18

sepia-browser-extensions

Browser extensions that add additional features when using SEPIA in Chromium kiosk-mode etc.
JavaScript
2
star
19

sepia-python-bridge

The Python-bridge-server connects other SEPIA components to the Python runtime.
Python
2
star