VoxCommando

New Features and Feature Requests => Feature Requests => Topic started by: batfasturd on July 23, 2015, 07:02:44 PM

Title: Remote microphones/PCs
Post by: batfasturd on July 23, 2015, 07:02:44 PM
I have used VC for a while but I love the idea of doing always listening commands as well. I liked that with CastleOS you can use any pc in your house with a kinect and speak to it. What I didn't like is the lack of plugins and scripting power as well as weird false positives and other gripes. Does anyone know of software out there that can act like Voxwav but on a PC? I would love to just use my existing pc's, microphones, and speakers inside my house.
Title: Re: Remote microphones/PCs
Post by: jitterjames on July 23, 2015, 11:01:19 PM
This is actually pretty easy to set up.  On your main VC you just need to set it up to watch a folder for wav files.  The second (or third) PC will record audio and send it to this folder.

On the Main VC open options, go to the advanced tab and look under "Directory Watcher".  Set the path for "wav watcher folder" to a folder on your system which is shared on the network, and which the 2nd PC has access to.  Save options and restart VC.

On the second PC, create a blank installation of VC with no commands and then just use this group. Set the phrase to match your prefix used in the main VC.  Edit the command macro to use the correct network path.
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.1.4.8-->
<commandGroup open="True" name="forward this audio" enabled="True" prefix="" priority="0" requiredProcess="" description="">
  <command id="1383" name="jarvis blah blah" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>VcAdvanced.SaveRecoWav</cmdType>
      <params>
        <param>\\MSI\VoxCommando\Wavwatch\speech.wav</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>jarvis, bellatrix</phrase>
    <payloadDictation>payloadDictation: Regular</payloadDictation>
  </command>
</commandGroup>

I just tested this and works great.

Another option is just to set up the second VC with the same basic configuration as the first VC but you'll have to make various adjustments depending on what stuff you are controlling.
Title: Re: Remote microphones/PCs
Post by: batfasturd on July 24, 2015, 02:23:23 PM
Thanks! I will have to try that out this weekend. Does our license to VC cover multiple installs?
Title: Re: Remote microphones/PCs
Post by: nime5ter on July 24, 2015, 03:30:04 PM
To some extent. http://voxcommando.com/home/purchase/#b9a9ed8fbe849262e

And in rooms that are less active, the non-expiring trial version may suffice.

... Of course, the Canadian dollar is also really lousy at the moment, so for Americans it might also be worth buying an additional license now while the going is good ($40 Cdn = $30 U.S.). Then you'd have at least four fully licensed computers.
Title: Re: Remote microphones/PCs
Post by: batfasturd on July 26, 2015, 06:21:05 PM
I tried doing the WAV forwarding first and it works fine however the audio output is on the Main VC server and not on the remote end. Is there a quick way to force the TTS to use the remote machine instead?
Title: Re: Remote microphones/PCs
Post by: batfasturd on July 26, 2015, 06:22:31 PM
Another option is just to set up the second VC with the same basic configuration as the first VC but you'll have to make various adjustments depending on what stuff you are controlling.

I tried that route as well and syncing multiple map files and groups is somewhat annoying however it seems to give me the most control.
Title: Re: Remote microphones/PCs
Post by: nime5ter on July 27, 2015, 08:18:20 PM
If you want to sync all maps (\data\maps.db3) and all command groups (voicecommmands.xml), it shouldn't be too much of a pain using robocopy ... or maybe even just File.Copy within VC, I should think.

Regarding TTS -- what do you mean by "quick way"?

You're trying to do something original using a creative workaround basically, so it would involve a bit of time to adapt your configuration, for sure. You could use the TCP plugin's udpsendmixed action to broadcast a TTS.Speak action, for example, instead of using a TTS.Speak action within each command.
Title: Re: Remote microphones/PCs
Post by: Haddood on July 28, 2015, 09:50:57 PM
I tried doing the WAV forwarding first and it works fine however the audio output is on the Main VC server and not on the remote end. Is there a quick way to force the TTS to use the remote machine instead?

what you can do, is set a central tts function, that takes the text to be said as payload one.
if watcher triggers ...it sets a variable (i.e. RemTTS) to true ...
the central TTS function will check if RemTTS is true ...it sends a udp to the other VC, with tts.speak ...
if it is false it speaks it locally ...

I have a similar setup to direct the output to multiple places ... and it works perfectly