I've recently downloaded AutoVoice which is pretty cool, so for example, I can set it up so I say 'ok google new tab' and the google search will open a new chrome tab.
If you aren't connected to a server though, it loads the unified remote app and says disconnected. I want it to fail silently, so is there a check I might be able to do through tasker to make sure it's connected before running anything else?
Haha thanks, I've also just added the option for messages, so if you said "message the killer" it'll open a chat box for the guy. It doesn't seem to always bring it to the foreground, but I think that's out of my control. I've not updated the original post yet until I try the music player controls (not that anyone actually uses it haha), and I'll add setting your online status through voice (it's probably not needed as actual buttons, but if anyone's reading this who would prefer it as buttons just say).
I've been looking down this page for new things to add anyway, so if you see anything important let me know :P
So, after getting the Python script to generate a list of games, I decided to try make a custom remote that'd work with big picture mode.
I used the Basic Input as a template, but designed it like the Fire TV phone app, where you flick your finger in the direction you want it to move (like a stick instead of a touch pad). I couldn't figure out how to make it continue moving if you hold your finger down in a direction, so if anyone has any ideas let me know.
It's got a very simple layout and not many colours since I'm not really expecting anyone to use this :P
- Say "launch [game]" to launch any game in your library.
- It supports multiple names, eg. "launch arkham asylum" will recognise that it is Batman: Arkham Asylum GOTY Edition
- Quick links to many steam things
- Navigate big picture mode by flicking your finger
- Change input to mouse control if flicking your finger isn't wanted
- Send messages to the game you're playing (eg. If you need to reply but not relinquish control of your keyboard, say "haha yep" to your phone, and just hit the send button. It'll very quickly type "t haha yep [enter]", with optionally hitting esc afterwards)
I made a script that would generate the functions required to launch the games, since there's no easy way of doing it otherwise. It works by looking at your steam profile (so you can't have a private one unfortunately), and following links through each of the games. If a link redirects, then it's DLC and can be ignored. If it doesn't redirect, I made a bunch of rules to generate alternate names so you don't have to say the full name word for word. It is only tested on my library, so let me know if there's any games that it doesn't work properly with.
I've packaged it as an EXE file so you don't need Python to run it, just type in your steam ID and it'll do the rest (you can see its current progress).
I put that at the end of the last post lol. You just can't start functions with numbers (so I made the functions start with launch_), and I hadn't stripped out the full stops. Since full stops sometimes make part of the name (eg. 2.0 is said as 2 point 0), I made some variations so you can say point, dot, or nothing :)
It's still got room for improvement since I've only got my library to work on, but here is the python code if anyone is interested. It'll do stuff like strip Middle-earth Shadow of Mordor to just Shadow of Mordor, or Batman: Arkham City GOTY to just Arkham City (it'll keep the originals too, just gives you more leeway with what you can say to it). Here is my list of functions generated with that, it's obviously got a few useless ones but you get the idea.
No idea as to how you pass text to functions from the voice commands then?
I was trying to find out how the app sends text to the computer when you say "send something" or "type something" with the voice commands, but I just found that not specifying anything causes the app to crash.
I presume it's because it's trying to load a remote where there is none (just a guess), but the server logs don't pick anything up on trace level, so there's nothing I can particularly show.
I'm on a 64 bit windows 10 using the app on an S5 Neo
Alright fixed it, however I have another question.
How can I send voice text to a function? If I say "steam type xxxxxxxxxxxx", it says "Partial Match - Unknown: xxxxxxxxxx". I tried this but it didn't work:
actions.type = function(text) keyboard.text(text); end
As to how I fixed the problem, it just doesn't like starting with numbers or any full stops, which should have been fairly obvious to start with.
Thanks, though making the functions seems to be the hard bit. I've possibly hit a bit of a snag anyway, I wrote a Python function to convert it all to functions, and it doesn't seem to work at all when there are a lot of functions.
I'm going to keep playing around to see if I can figure out what exactly breaks :P
I'm new to LUA so not sure how to do it/if it's possible.
Basically, given a list of steam games, I want to have it so you can say 'steam warframe' for example, and it'll load warframe. I have the basics working like this:
actions.warframe = function () os.open("steam://rungameid/230410"); end
Would I be able to have a function that builds other functions from the XML games list? An example one is here.
Take Rollercoaster Tycoon 2 for example since it has a long name. Here is the listing:
<game> <appID> 285330 </appID> <name> <![CDATA[ RollerCoaster Tycoon 2: Triple Thrill Pack ]]> </name> ...
With the name, split it at ":", and replace any spaces with underscores, so it ends up like this:
actions.rollercoaster_tycoon_2 = function () os.open("steam://rungameid/285330"); end
I could build the list in python and copy it over, but it'd be nicer if I could have a button do it on the fly :)
Is there any way I can set it up to use it with games, so instead of saying "send something" where it'll type "something" and hit enter, it'll actually send "tsomething" for example, so it'll load the text box before typing?
I'm not sure how much customisation you have, so I've no idea if that is possible