WebTest - Test your assistant on a local website without talking


#1

Many of us know the problem: People tend to get annoyed if you over and over again repeat the same sentence in your living room.

Inspired by " Test Snips without talking " I build a web based solution to send specific MQTT messages in a simple way. Now you can test without making any noises (screams of despair excluded)

Features:

  • Button for: Wakeword detected
  • Button for: Simulate voice input (only active after wakeword)
  • Button for: Test what intent would be recognized for your input (without triggering the code)
  • Button for: Custom TTS, test your voice output without the need of any dialogue
  • Output for the last TTS (written text only!)
  • Monitor complete MQTT traffic (hermes/#)

Requirements:

  • MQTT Broker with websockets activated (not default in snips!)
  • Browser(tested with Chrome) with JS

As I don’t have a webserver available at the moment, I can only give you the files on github https://github.com/philipp2310/snips-WebTest

@Snips Team: The web app would be working from any server, as the communication to the assistant happens completely on client side. With a little tweaking and maybe a way to save the server side config.js in cookies or the users account, it would be possible to include it into the console. Feel free to change everything and use it :wink:

Edit: I reactivated my webserver, you can find it directly online now, ready to use, just at this link:
http://uselessbrickwall.com/snips_WebTest/


Test Snips without talking
How to completely remove snips from RaspberryPi
#2

FAN-TAS-TIC!

I have been trying to get something similar working. This will speed up my intent/action authoring immensely.

Been using it successfully this evening off your site, and I’ll get it up and running on my own server asap.

Thank you for this.

chris.


#3

Awesome :))))

We’ll take it for a spin!


#4

Well done. Looking forward to using this.


#5

Thanks for this. Got it up and running. Is snips supposed to publish the intent though? When I use it I can see the query get published, and the phrase is parsed, but the intent isn’t published on intent/#

My phrase getting published (hermes/nlu/query):

{"input":"piano on","asrTokens":[{"value":"piano on","confidence":1,"range_start":0,"range_end":8,"time":{"start":0.08803082,"end":1.6948999}}],"intentFilter":null,"id":"dontmatter","sessionId":""}

Parsed response (hermes/nlu/intentParsed):

{"id":"dontmatter","input":"piano on","intent":{"intentName":"wizbowes:turn_on","probability":1.0},"slots":[{"confidence":null,"rawValue":"piano","value":{"kind":"Custom","value":"light.fireplace_lights"},"range":{"start":0,"end":5},"entity":"device_name","slotName":"device_name"},{"confidence":null,"rawValue":"on","value":{"kind":"Custom","value":"on"},"range":{"start":6,"end":8},"entity":"state","slotName":"state"}],"sessionId":""}

but nothing on hermes/intent/. Not sure if this is how it’s supposed to work - because it would be really useful if the intent was published. If Snips doesn’t do that - could you republish the response from nlu/intentParsed onto intent? That would allow end to end testing.


#6

Ignore me. I was trying to be clever bridging mosquittos. I just added the websockets to the snips mosquitto service and all worked fine.

For those that want to do that, edit /etc/mosquitto/mosquitto.conf and add the following lines:

listener 1883
listener 1884
protocol websockets

#7

Hi

Thank for your work ! I want to try but I only have windows. Can I use your site with wamp or laragon ?


#8

Actually you can just open the Index file whereever you want. Everything is clientside and runs without server (thats why you can use my link and still connect to your local raspi)


#9

When I tried with your link, I have this error :
Connect failed: AMQJS0007E Socket error:undefined.


#10

Did you enable the websocket in the MQTT broker?
(My only idea for now :confused: )


#11

Sorry but I don’t know a lot about mqtt / snips. Where / how can I enable MQTT broker ?


#12

I’m on Mobile, can‘t quote: thanks to wiz:
edit /etc/mosquitto/mosquitto.conf and add the following lines:

listener 1883
listener 1884
protocol websockets

#13

I added these lines and restarted my server but same error :confused:


#14

Pls try connecting from here: http://www.hivemq.com/demos/websocket-client/
Thats the base programm, want to be sure I didn‘t add an error :wink:
(port is the # after websocket, ip is the internal ip of raspi)

If you can‘t connect from there you should look at the mosquitto start up log. There should be a line about „starting websocket at 1884“(can’t Look up the exakt line, still no pc, just lots of sand and water, sorry ;))


#15

It seems to work, I have “connected” and green color.


#16

Mhh… I don’t know what is different when connecting with my tool. Should be the same apart from last-will/qos…
I didn‘t test much with TLS, but I guess you don‘t use the User/password fields anyways?

Do you have more informations? Browser(only Chrome is tested), any console messages(right click, inspect -> switch to console tab)

Edit: maybe you use ‚strange‘ characters for your siteId?


#17

Siteid must represent Wich information ?


#18

SiteId is the name of the raspi you pretend to be: default, kitchen, livingroom… but you can just keep it on the given value of „test“ as long as you don’t test TTS…


#19

Ok, I retried tonight and it worked !

One thing though, when I send hotword, then input, must he accomplish the action related to the input ?


#20

Yes, you can see the MQTT messages below.
Topic Hermes/intent/<intentName> should be the one triggering your custom coding.
You can talk to snips as usual and you will see the triggered MQTT messages as well(for comparing with the text input)