No Sound with a Snips Maker Kit

#1

Hello all,

I just bought a Snips Maker Kit and I’m having a bit of trouble getting started with it. I installed the recommended Raspbian Stretch Lite (2018-10-09 release) to the supplied SD card. I successfully booted the device and I can SSH to it.

Note: The Snips troubleshooting instructions mentioned “raspberrypi.local”, which was wrong. I eventually located the device’s auto-assigned IP address, but it did not respond to pings for raspberrypi or raspberrypi.local. This was my first time setting up a Raspberry Pi, so I wasn’t sure what to expect.

I installed Node.js version 8 on a local Linux machine (Synology) and installed Sam, as per the intstructions.

The instructions to launch Sam didn’t work for me. The command I have been using is: “sudo /volume1/@appstore/Node.js_v8/usr/local/bin/sam …”. It seems on a Synology box, at least, the NPM packages are not placed in the real /usr/local/bin directory.

After connecting to the device using its IP address, I completed the “init” command with the following log (normal):

admin@Fastrand:/$ sudo /volume1/@appstore/Node.js_v8/usr/local/bin/sam init
Installing Snips Platform components. This may take a few minutes...
✔ Updating aptitude repository
✔ Installing dirmngr
✔ Adding Snips APT source list
✔ Adding Snips PGP public key
✔ Updating aptitude repository
✔ Installing Snips Platform, this could take a while, grab a cup of tea & relax
✔ Adding current user to snips-skills-admin group for security
✔ Successfully installed the Snips Platform
i You can now setup your audio with sam setup audio

I then ran status to find:

admin@Fastrand:/$ sudo /volume1/@appstore/Node.js_v8/usr/local/bin/sam status

Connected to device 192.168.1.101

OS version ................... Raspbian GNU/Linux 9 (stretch)
Installed assistant .......... Not installed
Status ....................... Live (no assistant)

Service status:

snips-analytics .............. 0.60.1 (not running)
snips-asr .................... 0.60.1 (not running)
snips-audio-server ........... 0.60.1 (not running)
snips-dialogue ............... 0.60.1 (not running)
snips-hotword ................ 0.60.1 (not running)
snips-nlu .................... 0.60.1 (not running)
snips-skill-server ........... 0.60.1 (not running)
snips-tts .................... 0.60.1 (running)

The guide listed the audio server as running. Mine wasn’t, but I thought, oh well, I’ll press on. I tried running sam setup audio, and this is my output:

admin@Fastrand:/$ sudo /volume1/@appstore/Node.js_v8/usr/local/bin/sam setup audio
? Is it a Snips Makers Kit? Yes
✔ Installing ReSpeaker 2 mic hat
✖ bash: line 0: cd: /var/lib/snips/skills/undefined: No such file or directory
sh: 0: Can't open setup.sh
Rebooting device. .  .  done
✔ Device has rebooted
✖ Error fetching audio capture device: No capture devices found. Check if your mic is correctly plugged.
i If the microphone is not connected through USB, you might need to install it yourself. See the manufacturers instal lation guide
i Using default capture configuration card 1 subdevice 0
? Found 2 interfaces to output sound.
  Choose the one you want to use as your speaker card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
✔ Installed /etc/asound.conf
Setting to volume to 90% if possible
Restarting snips-audio-server service done
i You can test your microphone & speaker with sam test microphone / speaker

Now, I’m pretty sure I’ve plugged the speaker in correctly. There’s only one slot it will go in (third one down from the edge). I tried testing the speaker and I didn’t hear any audio. The two devices for sound output listed were ALSA and an HDMI ALSA variant. I chose the non-HDMI option.

My Pi hat has a pulsing green light, which I assume means something is working.

I’m not sure where to go from here.

I tried manually running the setup program on the Raspberry Pi itself, but it doesn’t seem to have done much and hasn’t solved the problem.

This is the current output of my status command:

admin@Fastrand:/$ sudo /volume1/@appstore/Node.js_v8/usr/local/bin/sam status
Password:

Connected to device 192.168.1.101

OS version ................... Raspbian GNU/Linux 9 (stretch)
Installed assistant .......... Not installed
Status ....................... Live (no assistant)

Service status:

snips-analytics .............. 0.60.1 (not running)
snips-asr .................... 0.60.1 (not running)
snips-audio-server ........... 0.60.1 (running)
snips-dialogue ............... 0.60.1 (not running)
snips-hotword ................ 0.60.1 (not running)
snips-nlu .................... 0.60.1 (not running)
snips-skill-server ........... 0.60.1 (running)
snips-tts .................... 0.60.1 (running)

Help would be appreciated. I’m a little disheartened with how this has gone so far.

0 Likes

#2

Do you install ReSpeaker 2-Mics Pi HAT drivers ?
http://wiki.seeedstudio.com/ReSpeaker_2_Mics_Pi_HAT/

0 Likes

#3

I don’t know.

I ran the automated setup process (“sam setup audio”), which I think was supposed to install the drivers.

Here’s the output of some of the sound-related diagnostic commands I found in the troubleshooting guide:

pi@raspberrypi:~ $ cat /etc/asound.conf
pcm.!default {
  type asym
  playback.pcm {
    type plug
    slave.pcm "hw:0,0"
  }
  capture.pcm {
    type plug
    slave.pcm "hw:1,0"
  }
}
pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 7/7
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
pi@raspberrypi:~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
  Subdevices: 0/1
  Subdevice #0: subdevice #0

Has the automated process installed the drivers? Should I run these commands manually?

sudo apt-get update
sudo apt-get upgrade
git clone https://github.com/respeaker/seeed-voicecard.git
cd seeed-voicecard
sudo ./install.sh
reboot
0 Likes

#4

seeed2micvoicec is on card 1 device 0

try :

pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "hw:1,0"
}
capture.pcm {
type plug
slave.pcm "hw:1,0"
}
}

Drivers look like installed.

0 Likes

#5

Hi @gurok, the audio setup seems fine - in the beginning the service snips-skill-server didn’t run on your device, but in your second post it did.
The other services are not running, because you didn’t install an assistant I think.

0 Likes

#6

Thank you for your help, Jeandhom! I made the changes you suggested and the sound magically started working. I don’t understand why the configurator would set that up incorrectly.

I’ve now installed an assistant, thanks, atomix. I’ve got it responding to “what’s the weather like?” and using OpenWeatherMap for information.

I don’t really understand how apps and actions relate to one another. For instance, I installed the default Snips Weather app, then updated the assistant on my local Snips, but the responses I got from it were just confirmation of what I’d said “you asked for the weather in …”. I had to go to:

And install this action to get things working. Even now, it’s a little vague for my liking – it only says cloudy, not the temperature. But I just don’t understand how the two concepts (apps and actions) work together. An app is like a platform for actions, apps are easy to find, but you’ve got to go googling for Github projects to find actions?

I also need to work out how to adjust the gain on the mic because I can’t record samples for a custom wake word. I keep getting told it’s too noisy after turning off every appliance in the house, shutting the doors, windows, etc.

But anyway, I’m much happier with Snips now. It’s working!.. kinda. Thank you very much!

0 Likes

#7

In an assistant you have Apps.

An App consist in a bundle (list of intents) and action code.

bundle =
“turn on the light”
“turn off the light”

Action =
code that will actually trigger the X light to turn off.

You have some Apps in the app store without action (basically a list of bundle) and you have others with actions that can be a github repo.

The weather app that you’re describing is a demo one, its a fake demo app which purpose is just for you to test if everything works correctly, it only repeats what you said basically. A real demo app would require an API key access

0 Likes

#8

No more sound after doing a sam update assistant
the sam test microphone is ok, but no more sound at hotword recognition, nor when acting through a python script.

[Tts] was asked to say “the light is open”
[17:12:52] [AudioServer] was asked to play a wav of 64.3 kB with id ‘6c251de2-307a-4a18-87f1-487b0f3902e9’ on site default
[17:12:52] [AudioServer] was asked to play a wav of 64.3 kB with id ‘7e358730-104f-473c-866d-e88010860a7a’ on site default
[17:12:54] [AudioServer] finished playing wav with id ‘6c251de2-307a-4a18-87f1-487b0f3902e9’
[17:12:54] [Tts] finished speaking with id ‘565bbe92-2365-4ca7-8d1e-d9ca827f049d’
[17:12:57] [AudioServer] finished playing with ‘7e358730-104f-473c-866d-e88010860a7a’
[17:12:57] [Tts] finished talking with id ‘3aba2447-e8e6-4452-b102-9bfd5bf3324c’

I had the same thing when updating the latest version of snips. so I had downgraded, and everything reinstalled …
What should I do???
Thank

0 Likes

#9

@richardpub have you tried sam sound-feedback on ?

0 Likes

#10

I already did this
but I have no sound

pi@raspberrypi:/ sam sound-feedback on ✔ Feedback sound has been turned on pi@raspberrypi:/

What should I do???
Thank you in advance

0 Likes

#11

Hello,

first step, reboot the pi :wink:
After :

  • aplay /usr/share/sound/alsa/Front_Left.wav : result (sound or not) ?
  • sam status : result ?
  • sam test speaker : result ?
  • sam test microphone : result ?
  • execute : mosquitto_pub -h localhost -t ‘hermes/tts/say’ -m ‘{“text”: “Hello!”, “lang”: “en”}’
  • execute : sudo systemctl stop snips-audio-server && sudo -u _snips snips-audio-server

With this, we’ll have more informations :slight_smile:

Ced

0 Likes

#12

I try this after my holidays
I ‘am started for 3 weeks
Thanks for your response

0 Likes

#13

I try this after my holidays
I’m started for 3 weeks
Thanks for your response but
After reboot the raspberry:
Sam test microphone is okay
Sam test speaker do nothing

0 Likes

#14

Hello @richardpub,

To find your issue, it’s easier to proceed by steps. sam test speaker might not work if you have a specific configuration on your pi.
First check if the sound is working on your pi by playing a default sound:
aplay /usr/share/sound/alsa/Front_Left.wav

Check the status of Snips’ platform (if the platform is not running, no hotword will be detected)
sam status

If you updated the platform, your assistant might be out of date. Either update it with sam update-assistant or download it from Snips’ console.

If you have a specific configuration, it might cause issues when doing an update. Copy your Snips configuration file here, you can display on your raspberrypi with:
cat /etc/snips.toml

0 Likes

#15

I test as you tell me when I le be at home
But I don’t understand it’s doing like this when l’m Just doing a sam update assistant or when I update the last version of Snips but All Sam statut is ok
I hope that’s ok like you said
I try it thanks

0 Likes

#16

back from vacation I just tested the first proposal but with:

pi@raspberrypi:/ $ aplay /usr/share/sounds/alsa/Front_Left.wav
Lecture WAVE ‘/usr/share/sounds/alsa/Front_Left.wav’ : Signed 16 bit Little Endian, Fréquence 48000 Hz, Mono

I have no sound in return
What must I do now???

Sam status est all OK

0 Likes

#17

after trying what you offered me, I made a
Sam init
and I did
Sam test speaker
and the sound came back on my respeaker 2
I did not understand everything but it works

Unfortunately it does not work with my python file
so here is the contents of my file

pi@raspberrypi:/ $ cat /etc/snips.toml
[snips-common]

bus = “mqtt”

mqtt = “localhost:1883”

audio = ["+@mqtt"]

assistant = “/usr/share/snips/assistant”

user_dir = “/var/lib/snips”

MQTT authentication

mqtt_username = “”

mqtt_password = “”

MQTT TLS configuration

mqtt_tls_hostname = “”

mqtt_tls_disable_root_store = false

mqtt_tls_cafile = “”

mqtt_tls_capath = “”

mqtt_tls_client_cert = “”

mqtt_tls_client_key = “”

[snips-analytics]

[snips-asr]

no_fst_map = true

beam_size = 8

model = “/usr/share/snips/asr”

audio = ["+@mqtt"]

partial = false

partial_period_ms = 250

[snips-asr-google]

credentials = “/usr/share/snips/googlecredentials.json”

audio = ["+@mqtt"]

[snips-audio-server]

frame = 256

bind = “default@mqtt”

mike = “Built-in Microphone”

disable_playback = false

disable_capture = false

[snips-dialogue]

resources = “/usr/share/snips/dialogue”

session_timeout = 15

lambda_timeout = 5

retry_count = 3

sound_feedback_disabled_default = false

[snips-hotword]

model = “/usr/share/snips/hotword”

hotword_id = “default”

sensitivity = “0.5”

audio = ["+@mqtt"]

no_vad_inhibitor = false

vad_messages = false

[snips-injection]
#asr_model = “/usr/share/snips/asr”
#nlu_engine = “/usr/share/snips/nlu_engine”
#keep_nfirst = 3

[snips-nlu]

[snips-tts]

Choose one tts provider (defaults to picotts)

provider = “picotts”

provider = “makerstts”

provider = “customtts”

customtts specific configuration (here configured to use picotts using the en-US language)

available placeholder variables : %%OUTPUT_FILE%%, %%LANG%%, %%TEXT%%

customtts = { command = [“pico2wave”, “-w”, “%%OUTPUT_FILE%%”, “-l”, “en-US”, “%%TEXT%%”] }

I do not control this file unfortunately to act on thank you for being able to help me

0 Likes

#18

Hi @richardpub

If sam test speaker works, it means the audio configuration is working and the platform should output sound. Does the hotword trigger a sound now ?
What’s in your python file? What are you expecting to play from this file ? The TTS, a wav file?

0 Likes

#19

After having managed to turn on the sound, as soon as I start my program attached in python I lose the sound systematically.
I do not understand what makes the sound lose in my Python file:

#!/usr/bin/python

-- coding: utf-8 --

Made by JLR - 2019

from future import unicode_literals

import datetime
import json

import paho.mqtt.client as mqtt
import paho.mqtt.publish as mqttPublish
import sys
import requests
import time

import logging

lightsTurnOff = ‘hermes/intent/richardpub:lightsTurnOff’
lightsTurnOn = ‘hermes/intent/richardpub:lightsTurnOn’
openCoversBlinds = ‘hermes/intent/richardpub:openCoversBlinds’
closeCoversBlinds = ‘hermes/intent/richardpub:closeCoversBlinds’

fromtimestamp = datetime.datetime.fromtimestamp

MQTT client to connect to the bus

mqtt_client = mqtt.Client()
HOST = “192.168.1.16”
PORT = 1883

Subscribe to the important messages

def on_connect(client, userdata, flags, rc):
mqtt_client.subscribe(lightsTurnOn)
mqtt_client.subscribe(lightsTurnOff)
mqtt_client.subscribe(openCoversBlinds)
mqtt_client.subscribe(closeCoversBlinds)

mqttPublish.single('hermes/feedback/sound/toggleOn', payload=json.dumps({'siteId': 'default'}), hostname='192.168.1.16', port=1883)

Process a message as it arrives

def on_message(client, userdata, message):
intent = message.topic
if intent == lightsTurnOn:
#response = (“la lumiere est ouverte”)
r = requests.post(“http://192.168.1.212:8080/UniversalListen?trame=mouvementOn”)

elif intent == lightsTurnOff:
    #response = ("la lumiere est fermée")
	r = requests.post("http://192.168.1.212:8080/UniversalListen?trame=mouvementOff")

elif intent == openCoversBlinds:
    #response = ("le volet est ouvert")
	r = requests.post("http://192.168.1.212:8080/UniversalListen?trame=mouvementOn")

elif intent == closeCoversBlinds:
    #response = ("le volet est fermé")
	r = requests.post("http://192.168.1.212:8080/UniversalListen?trame=mouvementOff")
	

  

session_id = parse_session_id(message)
say(session_id, response)

def parse_slots(message):
‘’’
We extract the slots as a dict
‘’’
data = json.loads(message.payload)
return {slot[‘slotName’]: slot[‘rawValue’] for slot in data[‘slots’]}

def parse_session_id(message):
‘’’
Extract the session id from the message
‘’’
data = json.loads(message.payload)
return data[‘sessionId’]

def say(session_id, text):
‘’’
Print the output to the console and to the TTS engine
‘’’
print(text)
mqtt_client.publish(‘hermes/dialogueManager/endSession’, json.dumps({‘text’: text, “sessionId” : session_id}))

if name == ‘main’:
reload(sys)
sys.setdefaultencoding(‘utf-8’)
mqtt_client.on_connect = on_connect
mqtt_client.on_message = on_message
mqtt_client.connect(HOST, PORT)
mqtt_client.loop_forever()

I really have trouble understanding the source of this problem and every time I lose the meaning I have a hard time reactivating it yet everything is OK in Sam status

Sorry for my english, and thanks for your help…

0 Likes

#20

I have the situation where sam test speakers works, audio configuration is working. But the TTS is like playing too fast. So I can’t make out anything from the audio.

0 Likes