Snipek

Rating: 
5
Your rating: None Average: 5 (5 votes)

Voice assistant for Sailfish OS based on Snips software

Release 2.0 highlights:
- Support for Snips installation on the Sailfish OS phone. It gives truly offline voice assistant.
- Built-in skills: Date & Time, Call History
- Works on Jolla 1

Snipek is a Sailfish OS app that provides remote microphone and speaker capability for Snips voice platform.

Snips is unique because it doesn’t require external cloud service. All processing (including voice) is entirely done locally, on a device where Snips is installed.

To make this app works you have to separately install Snips software on your Sailfish OS phone or on any another device in your local network (e.g. Raspberry Pi, Debian computer).

Snips installation

Two installation options are supported:

  • Local (Snips is installed on Sailfish OS phone together with Snipek)
  • Remote (Snips is installed on a different device in your local network)

When Snipek and Snips are running on the same device (on Sailfish OS phone), no network connectivity is required. Your phone can be in off-line mode and the voice assistant sill works. To install Snips on Sailfish OS follow this guide.

Keep in mind that Snips is not an open source software. The source code is not publicly available and the use of Snips is governed by Snips Terms of Use.

Snips does not provide binaries for x86 (32-bit) CPU architecture, therefore local installation on Jolla Tablet and any other non-ARM Sailfish OS device is not possible right now.

More information about Snips installation options are outlined here.

Snipek skills

Snipek app connects to Snips as an additional audio server. It sends audio stream captured from the microphone and plays audio data received from Snips. It also provides few built-in skills that enable phone control with the voice commands. Skills are the capabilities of voice assistant i.e. the things that assistant can do with a voice command.

Currently implemented skills are:

  • Date & Time (Reads current time or date)
  • Call History (Reads events from call history e.g. all missed calls)

More skills will be added in the future...

Languages and translations

Snips software supports following languages and therefore only following languages Snipek can be translated to:

  • German
  • English
  • Spanish
  • French
  • Italian
  • Japanese
  • Portuguese (Brazil)

Currently only English language is provided in Snipek. Another languages might be implemented in the future with the help of community. Find more information about languages in Snipek here.

Bugs reporting

This is "work in progress" project in beta/experimental stage, so likely contains a number of bugs.

Any comments, issue reports are highly appreciated.

Bugs and feature requests can be reported on GitHub or just via email snipek@mkiol.net.

Snipek is a free application.

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-snipek-2.0.0-1.armv7hl.rpm196.42 KB06/12/2019 - 22:28
File harbour-snipek-2.0.0-1.i486.rpm211.54 KB06/12/2019 - 22:28
Changelog: 

version 2.0.0 (beta)
- support for Snips installation on the Sailfish OS phone. It gives truly offline voice assistant.
- built-in skills: Date & Time, Call History
- works on Jolla 1

version 1.0.0
- support for multiple Snipek instances connected to single Snips system

Comments

toxip's picture

Well, it was fun while it lasted but seems like this project will be dead along with snips. Loved this app but with the recent snips news it seems like the days of open snips for makers are over.

https://forum.snips.ai/t/important-message-regarding-the-snips-console/4145

mkiol's picture

I'm surprised and sad. I didn't notice it earlier... Indeed, this information makes Snipek continuation very difficult...

Ezreal's picture

nice!Sailfish is becoming smart!

jollex's picture

Wow that would be amazing!! Everything embeded

lutinotmalin's picture

I really don't understand how to use that app that seems wonderful. How do I connect to Snips ? What should I write for the IP, the port, the site ID ? Shall I create an account somewhere ?

mkiol's picture

To make this app works you have to have Snips server somewhere in your local network. The easiest way is to use Raspberry Pi because it is officially supported platform. The guide how to do it is here: https://docs.snips.ai/getting-started/quick-start-raspberry-pi (relatively easy but not trivial). Alternatively you can also install Snips on any Debian box.

My installation is based on Raspberry Pi 2 and it works great.

mkiol's picture

Just a info. I'm also investigating how to port Snips server to SFOS and provide standalone voice assistant that works without any network connectivity. Maybe it will be included in the next Snipek version... Right now server side (installed on RPi) is needed.

toxip's picture

I had trouble setting this up. My raspbi doesn't have any speakers or mic and this doesn't work either. What am I doing wrong?

mkiol's picture

Speaker and mic attached to a raspberrypi device are not needed because your phone (powered with Snipek) will provide both. Of course, you can use Snipek and raspberrypi's mic in the one system - they are not mutually exclusive. Snips can handle multiple audio sources.

Maybe your Snips installation is not properly setup? Did you follow Quick Start Raspberry Pi guide? What "sam status" command shows? Here is my output:

mkiol@rubi:~> sam status
Connected to device x.x.x.x
OS version ................... Raspbian GNU/Linux 9 (stretch)
Installed assistant .......... Test
Language ..................... en
Hotword ...................... hey_snips
ASR engine ................... snips
Status ....................... Live

Service status:
snips-analytics .............. 0.60.1 (not running)
snips-asr .................... 0.60.1 (running)
snips-audio-server ........... 0.60.1 (not running)
snips-dialogue ............... 0.60.1 (running)
snips-hotword ................ 0.60.1 (running)
snips-nlu .................... 0.60.1 (running)
snips-skill-server ........... 0.60.1 (running)
snips-tts .................... 0.60.1 (running)
toxip's picture

So the problem was my custom hotword. I couldn't get it to work at all but by switching to hey snips I could manage to get the thing respond. Also the Xperia X microphone didn't even work for the record (probably too much noise?) so I was using a headset mic for that. Still, even with the headset it didn't recognise the hotword. I would like to use a personal hotword as it'd be much cooler but that's a minor compromise.

Now the app is working great on my Xperia X but unfortunately the mic and speakers didn't work with Jolla 1 at all despite being connected. I would've wanted to repurpose my Jolla 1 as an always on station for the system but unfortunately couldn't do it because of this bug. Perhaps you're using some weird setup to get the mic data that it doesn't work for J1? Anyway, thanks for this app and introducing me to this wonderful platform. Had a great deal of fun playing around with it ^^

mkiol's picture

You are 100% right. Snipek doesn't work on Jolla 1. My fault, I've tested it only on Jolla C and XperiaX. The problem with Jolla 1 is a very slow audio processing. Accually, it works but there is huge delay ~20-30s. I'm investigating it and maybe will be able to fix it. Many thanks for detecting this bug.

toxip's picture

Need to wait until I get my Jolla C from other side of the world. Meanwhile I would like to ask, is there any chance to build the desktop app on Windows? I'm trying myself but I don't know how to. Some paho-mqtt things seem to give me an error. Any chance you could help me or crossbuild for windows? I'd love to get this running on my Windows PC which has my headset plugged in. Thanks!

mkiol's picture

Right, so currently on a desktop only Linux is supported because it was trival to port SFOS code. To be honest I don't have much experience with Windows and is is more important I don't have any Windows-running machine or VM. In theory I could install one but is it would be quite a big effort...

jollex's picture

Many thx! I discovered snips with your apps!

Historyscholar's picture

Good