VoxCommando Forum

VoxWav and Other Apps on Mobile Devices => VoxWav Free and VoxWav Pro => Topic started by: gizak on April 18, 2013, 08:06:06 PM

Title: VoxWav TTS questions
Post by: gizak on April 18, 2013, 08:06:06 PM
I don't have VoxWav Pro (yet), so wanted to ask a few questions.  I assume VoxWav responds with the TTS you programmed in VoxCommando?  And if so, do you get TTS feedback from both your computer running VoxCommando AND your Android device running VoxWav at the same time?  Or do it only respond to the device it receives input from?
Title: Re: VoxWav TTS questions
Post by: jitterjames on April 18, 2013, 09:38:00 PM
All TTS actions in your commands will be executed directly in VoxCommando (always) and will be sent to the last VoxWav device that VC received input from.  So if your android is in the same room as your VC system, and the VC system has audio output capabilities, then you'll hear it twice, but if you have multiple androids using VoxWav, it should only play on a single Android device, hopefully the one you last used ;)
Title: Re: VoxWav TTS questions
Post by: gizak on April 19, 2013, 02:36:58 AM
Thanks for the quick response James!  Kind of what I thought.  Any plans to add an option to disable Vox TTS on the computer if source comes from Android?  I can probably find a few tricks to do this on my own, it will just be messy lol...  ie, look for a trigger of tcp wav and mute TTS audio source.  Or maybe externally use a motion sensor tied into speakers power outlet to only turn on speakers if in room....eh, maybe not the latter, wife will still trigger it.

Just thinking of the future scenario - Use VoxWav to tell VoxCommando to turn off light source in bedroom, but VoxCommando is in the living room where the wife is watching TV when all of a sudden...  TTS "BEDROOM LIGHT IS OFF!"  lol
Title: Re: VoxWav TTS questions
Post by: jitterjames on April 19, 2013, 07:05:09 PM
Quote from: gizak on April 19, 2013, 02:36:58 AM
Thanks for the quick response James!  Kind of what I thought.  Any plans to add an option to disable Vox TTS on the computer if source comes from Android?  I can probably find a few tricks to do this on my own, it will just be messy lol...  ie, look for a trigger of tcp wav and mute TTS audio source.  Or maybe externally use a motion sensor tied into speakers power outlet to only turn on speakers if in room....eh, maybe not the latter, wife will still trigger it.

Just thinking of the future scenario - Use VoxWav to tell VoxCommando to turn off light source in bedroom, but VoxCommando is in the living room where the wife is watching TV when all of a sudden...  TTS "BEDROOM LIGHT IS OFF!"  lol

You can essentially mute the TTS for VC by setting its volume to 0, but knowing when to mute and unmute it is not so straightforward.
Title: Re: VoxWav TTS questions
Post by: gizak on April 20, 2013, 10:46:30 PM
Ok, another beer or two for ya James, picked up Pro and got it working.  It was a simple fix.  I'll throw it up for those who might want to do the same thing.  
Basically 2 commands....  

TCPWav.Open AV.Mic.On > TTS.SetVolume:0
Wav.Reco.Complete AV.Mic.Off > TTS.SetVolume:100

Now if AV.Mic.On occurs from the Android, it immediately sets TTS volume to 0 and I get my TTS response only on my phone/tablet.
As soon as it finishes, AV.Mic.Off triggers and returns TTS to 100.

First Command:

<?xml version="1.0" encoding="utf-16"?>
<command id="454" name="Mute TTS on Android AV.Mic.On" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
 <action>
   <cmdType>VC.Off</cmdType>
   <cmdString />
   <cmdRepeat>1</cmdRepeat>
 </action>
 <action>
   <cmdType>TTS.SetVolume</cmdType>
   <cmdString>0</cmdString>
   <cmdRepeat>1</cmdRepeat>
 </action>
 <event>AV.Mic.On</event>
</command>


Second Command:

<?xml version="1.0" encoding="utf-16"?>
<command id="469" name="Unmute TTS on Android AV.Mic.Off" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
 <action>
   <cmdType>TTS.SetVolume</cmdType>
   <cmdString>100</cmdString>
   <cmdRepeat>1</cmdRepeat>
 </action>
 <action>
   <cmdType>VC.Standby</cmdType>
   <cmdString />
   <cmdRepeat>1</cmdRepeat>
 </action>
 <event>AV.Mic.Off</event>
</command>
Title: Re: VoxWav TTS questions
Post by: gizak on April 21, 2013, 01:19:58 PM
FYI:  Weird bug I came across when playing around with VoxWav.  If I speak through VoxWav, but am also close enough to my desk mic, it gets picked up by both and will execute the command twice even if VoxCommando is in Standby mode.

Not usually an issue, unless I yell talk too loud while in a fight with Doris (Vox), as she always gets the last word.....TWICE! lol.
Title: Re: VoxWav TTS questions
Post by: Kalle on April 21, 2013, 01:53:30 PM
Quote from: gizak on April 21, 2013, 01:19:58 PM
FYI:  Weird bug I came across when playing around with VoxWav.  If I speak through VoxWav, but am also close enough to my desk mic, it gets picked up by both and will execute the command twice even if VoxCommando is in Standby mode.

Not usually an issue, unless I yell talk too loud while in a fight with Doris (Vox), as she always gets the last word.....TWICE! lol.
Haha, you can switch VoxCommando (Doris) to "Off mode", VoxWav will also works when your VoxCommando (Doris) is in "Off mode"  ;)
Title: Re: VoxWav TTS questions
Post by: jitterjames on April 21, 2013, 02:41:33 PM
It's not a bug, it's a feature :-)

You can use events to turn VC off, when voxwav is transmitting, if you wish.
Title: Re: VoxWav TTS questions
Post by: gizak on April 21, 2013, 08:21:53 PM
Darn, I was hoping that would work...but it didn't. 

I added. VC.Off and VC.Standby to my earlier two commands to mute TTS on TCPWav.Open, but the desktop mic is already listening and processes the voice command before VC.Off is triggered from TCPWav.Open.  In order for it to work, I'd need VC.Off at the end of all my commands (an ever growing list lol), but then I couldn't just walk up to my desk and say Listen/DORIS without hitting a hotkey or pulling out my phone to put it back into VC.On or VC.Standby again.

Having IR commands blasted twice turns on and turns off a device such as my fan light (or TV), thus accomplishing nothing if VoxCommando hears both local and Android mic.
Title: Re: VoxWav TTS questions
Post by: jitterjames on April 21, 2013, 10:20:46 PM
Why don't you use the AV.Mic.On event to trigger VC.Off ?  This event should be fired as soon as VoxWav starts recording.
Title: Re: VoxWav TTS questions
Post by: Kalle on April 22, 2013, 02:09:08 AM
Quote from: gizak on April 21, 2013, 08:21:53 PM
Darn, I was hoping that would work...but it didn't.  

I added. VC.Off and VC.Standby to my earlier two commands to mute TTS on TCPWav.Open, but the desktop mic is already listening and processes the voice command before VC.Off is triggered from TCPWav.Open.  In order for it to work, I'd need VC.Off at the end of all my commands (an ever growing list lol), but then I couldn't just walk up to my desk and say Listen/DORIS without hitting a hotkey or pulling out my phone to put it back into VC.On or VC.Standby again.

Having IR commands blasted twice turns on and turns off a device such as my fan light (or TV), thus accomplishing nothing if VoxCommando hears both local and Android mic.
If it is not really clear, take a look on the attached picture - Drag and drop the the events from VC history window in the command tree. I have insert the "AV.Mic.Off"-Event in the Vox "listen" command, this change VC in ON-mode. If you use the prefix-mode you can insert the event in "don't listen" command to set VC in standby mode. In my case I use also a "ducking start" and "ducking end " event with VoxWav, this events trigger a partitial mute to all the music or other sounds from my pc to a specified level when you tilt your phone or press the mic button in VoxWav. If your command is fired it brings your sound back to the normal level that was set before. If you need more info, let me know  ;)
Title: Re: VoxWav TTS questions
Post by: gizak on April 22, 2013, 05:52:56 PM
Thanks for this Kalle!  Maybe I missed seeing AV.Mic.On as an option in the history log...  I been multi-tasking too much.  Adding this to ducking will be beneficial as well.  I'll check it out when I get home.
Title: Re: VoxWav TTS questions
Post by: Kalle on April 22, 2013, 06:05:41 PM
Quote from: gizak on April 22, 2013, 05:52:56 PM
Thanks for this Kalle!  Maybe I missed seeing AV.Mic.On as an option in the history log...  I been multi-tasking too much.  Adding this to ducking will be beneficial as well.  I'll check it out when I get home.
No problem, you are welcome  ;)
Title: Re: VoxWav TTS questions
Post by: gizak on April 22, 2013, 11:00:49 PM
Doh, another no go...  AV.Mic.On / Off doesn't show up in my logs anywhere when using VoxWav  =(  Maybe that was a result of the amulet remote?
Title: Re: VoxWav TTS questions
Post by: jitterjames on April 23, 2013, 08:45:22 AM
No, nothing to do with your Amulet.  It is most likely your network.  Those events are sent from VoxWav using UDP.  But if UDP is not getting through to VC then a bunch of other stuff would not be working as well (such as 'hello'). Are VoxWav and VC on the same subnet?
Title: Re: VoxWav TTS questions
Post by: gizak on April 23, 2013, 05:49:18 PM
Yes, all my devices are on a 192.168.0.0/24 network.  I'll do some more testing next chance I get, creating a checklist, let me know if you have any other ideas.

Test VC Config - Install fresh VC and test
Test Server NIC issues - Install fresh VC on Host with no VMs/VNICs and test
Test Android Device - Test with different Android Devices using VoxWav Free/Pro
Test Windows Firewall - Check Port/Disable and test
Test Network Infrastructure - Setup spare wireless router to eliminate network congestion or UDP blocking
Test Plumbling - drink beer during above testing to cover all bases
Title: Re: VoxWav TTS questions
Post by: jitterjames on April 23, 2013, 06:08:02 PM
In VoxWav UDP settings you can try to target the IP of the VC host instead of broadcasting to 255.255.255.255 but this won't work with the current version if you are trying to switch between hosts so I'm mostly suggesting it as a diagnostic.

I can also add an event in tcpwav plugin that fires at the beginning of transmission.  I think the current event fires at the end, but I'm not at a PC right now.
Title: Re: VoxWav TTS questions
Post by: gizak on April 24, 2013, 01:39:55 AM
Ok, I'm retarded.  At some point it looks like I changed the UDP port on the problem (main) host.  It does like it may have effected the Hello packets as well, as it now shows up on Hello message now, but only after the 2nd attempt initially (and I still get the virtual NICS responding as well, but I can see that they are not the real network address).  

So problem resolved as far as getting AV.Mic.On / Off to show up in the log window.

Only issue I see now is that I can't use different UDP ports for both servers - the UDP Broadcast Port setting in VoxWav appears to be global.  This causes an issue if I create a Prefix duck to mute/partially mute VOX on AV.Mic.On/Off for both servers.  

If I use VoxWav on my Android phone, it will partially mute both servers as the UDB is broadcasted and both servers pick up AV.Mic.On and react to it.  WAF factor on my randomly muting her tv show/movie is not approved.  For now I have left off prefix ducking on the server in the living room.

*updated XML code on earlier post to replace with AV.Mic.On
Title: Re: VoxWav TTS questions
Post by: jitterjames on April 24, 2013, 08:12:05 AM
You should be able to edit your hosts.txt file, and put the port of the VC host between the two colons.  I haven't tested this recently, but I seem to recall that's how it's supposed to work.  You'll have hello problems but that's really for beginners, once you get a hosts.txt set up you don't need it.
Title: Re: VoxWav TTS questions
Post by: jitterjames on April 24, 2013, 11:55:58 AM
Try this new test version of the TcpMic plugin.  It should generate this event when VoxWav starts recording that does not rely on UDP:

TcpMic.NewClient

The payload of that event should be the IP of the Android device, in case that comes in handy for some reason.

This dll also includes some new experimental features for detecting silence and processing the voice commands right away, so you can leave it on and issue multiple commands.  This should be considered an alpha feature, and I am thinking I will probably move some or all of this to VoxWav instead so that we are not streaming audio silence.  Also the noise threshold would probably need to be different for each android device, depending on how sensitive the mic on it is.

Note: the file goes in your VC\plugins\TcpMic folder and should overwrite the existing TcpMic.dll file

[NB: Info in this post is valid. However, the dll attachment has been deleted because this feature is now standard in VC's TcpMic plugin.]
Title: Re: VoxWav TTS questions
Post by: gizak on April 24, 2013, 12:20:49 PM
I get into work, check the forums and BAM, James to the rescue...  now I have to wait until I get home again!  You freakin rock!  ::bow  Of course, I have family festivities to attend tonight as well, but will report back when I get some time to play again.
Title: Re: VoxWav TTS questions
Post by: vulcanjedi on November 07, 2013, 12:58:56 AM
I tried to 'what movie is this' but only heard it on my VC / win machine and not VoxWav, is there some config i'm missing?
Title: Re: VoxWav TTS questions
Post by: jitterjames on November 07, 2013, 08:24:48 AM
Maybe.  It depends on your config.

http://wiki.xbmc.org/index.php?title=HOW-TO:Submit_a_feature_request#How_to_ask_for_something_in_a_smart_way
Title: Re: VoxWav TTS questions
Post by: nime5ter on November 07, 2013, 08:26:41 AM
VoxWav documentation is here: http://voxcommando.com/mediawiki/index.php?title=VoxWav_Comparison_of_Pro_versus_Free
Title: Re: VoxWav TTS questions
Post by: vulcanjedi on November 07, 2013, 09:57:59 AM
Quote from: nime5ter on November 07, 2013, 08:26:41 AM
VoxWav documentation is here: http://voxwav.wikispaces.com/Comparison+-+Free+vs.+Pro
Gotcha, I asked this question, then saw this thread and didnt see the diffs b/w free vs pro. Thanks nime5ter