Sign up Calendar Latest Topics
 
 
 


Reply
  Author   Comment  
HaydenBarca

Registered:
Posts: 36
Reply with quote  #1 
OK, it seems like it should be possible, so I wanted to check with the community to see if anyone has tried.  An Amazon Echo Dot can be set to respond to the key word "computer".  Can the Artemis server receive commands from outside the program?  Can we finally say, "Computer, raise the shields!"?
smcameron

Registered:
Posts: 4
Reply with quote  #2 
Hmm, hope this isn't out of line to mention as it's not Artemis, but if you're desperate to command a simulated star ship around via speech recognition, Space Nerds In Space can do this:


It uses pocketsphinx with a custom vocabulary for speech-to-text and a home-made Zork-like parser to transform the text into actions.  The computer's speech is done via pico2wav with the en-GB voice.
Jake Ryker

Avatar / Picture

Registered:
Posts: 110
Reply with quote  #3 
very cool.... NICE....
__________________
My job is to solve problems, find amazing tools and toys, and above all inspire people. Serving on board the USS Albatross docked at bay 1325.
Anagram

Registered:
Posts: 34
Reply with quote  #4 
This is an interesting question, and something I've looked into a bit from a different perspective. At work, I wanted Alexa to be able to answer questions about our IT service desk tracking system. But here is the rub: Alexa is a very cloud-centric design. You speak your request, which is shipped out as an audio recording to a server in AWS for speech recognition (the only exception being the wake word itself). Then, the recognized text is not sent back to your Echo, but to other servers, which must be able to fulfill the request via yet other servers all out on the internet. Only once a result is finalized, is that result sent back to your Echo. This may be rendered audio voice response, or it might be a URL for audio streaming or something. But the point is: your endpoints must also be routable on the public internet, not just the STT service. Now this is a problem if, say, you want Alexa to do something like talk to your service desk server in your office or contact your Artemis server on your gaming LAN. Some fancy cool things you see done with something like IFTTT depend on the nodes in your house/office to also be connected to the internet and polling the centralized server for recent events to respond to. So in a way, it is an unnecessary complication and excessive round trips, and at a minimum, cuts an Echo off from many things that are on the same ethernet segment. You might be able to add some additional infrastructure, some kind of relaying agent running inside your LAN that makes connections to AWS or something, collects commands and then uses a local Artemis game client interface to pass those on. But that sounds like a lot of work and fraught with pitfalls.

The good news: Mycroft AI (https://mycroft.ai/) is perfect for this sort of thing. In a nutshell, it is an opensource alternative to Alexa/Echo. By design, it still depends on external, internet-provided Speech-To-Text service, but that text is returned immediately to the device, and that device (NOT some server on the internet) processes that text for intent, and then issues the network connection to fulfill the intent! So the device makes local network connections "by default." This is how I solved the IT service desk assistant problem (without following the cool kids into putting our service desk "in the cloud"). Furthermore, this thing is so easy to modify and deploy new skills to. It is designed for that, and has a supportive community (including the authors/manufacturers). You would have to be comfortable with a Linux environment and python programming, and whatever method you would use to actually connect to the game server as a game client, but if you have all that, boom, you are good to go. You can edit your game interface "Skill" right on the device.

TL;DR: not really; Alexa/Echo are "dumb" terminals that depend on internet/remote/cloud for almost everything. However, Alternatives exist that are more suitable, such as Mycroft AI.

p.s. definitely check out Space Nerds in Space. It is a great project. Artemis and SNiS will always have differing strengths, so it won't be for everyone.
HaydenBarca

Registered:
Posts: 36
Reply with quote  #5 
Very cool, smcameron.  

Thanks for the explanation, Anagram.  I was aware that Alexa devices process their TTS in the cloud, but I didn't realize just how much of the processing goes on there.
smcameron

Registered:
Posts: 4
Reply with quote  #6 
With Android, it's possible to write app that sends voice to the cloud for speech-to-text, receives the text, then forwards this to an arbitrary ip address/port.  E.g. https://github.com/Athulus/SpaceNerdsCommunicator is such an app (very barebones, but works).  The idea here was to use an Android phone to do the speech recognition (much better than pocketsphinx... although since it doesn't have a specialized vocabulary, it's prone to interpreting "warp drive" as "hard drive") and then forwarding this to the FIFO that SNIS monitors for "computer" commands via netcat...
netcat -lvk -p 8080 > /tmp/snis-natural-language-fifo


Previous Topic | Next Topic
Print
Reply

Quick Navigation:

Easily create a Forum Website with Website Toolbox.