Want to control something with Siri? Here’s how.
SiriControl is a python framework which allows anybody to add Siri voice control to anything imaginable.
|Apr 29, 2017|
SiriControl is a python framework which allows you to retrieve Siri commands, by syncing notes with gmail, so you can control anything you want. Seriously, forget Google Assistant 😃.
So why use SiriControl?
No extra hardware required — the commands are being sent through the iOS device itself.
Runs on any computer with python installed — the Raspberry Pi is especially good as you can make it control anything around you. Just think of the possibilities…
It is beginner friendly with minimal setup required — I have provided step by step instructions on how to set it up. It is written in python which is quite an easy language to pick up.
You can use it from anywhere in the world — You will get the power of Siri’s fantastic speech recognition capabilities, from anywhere, as long as your device has an internet connection.
A snapshot of SiriControl in action. More on this later…
The idea of using Siri to control my Raspberry Pi sounded very cool to me so after a quick Google search, I found SiriProxy, which redirects the Siri commands through the Raspberry Pi, which is then intercepted. However, this was too much of a hassle and with the update of iOS 7, it stopped working. So SiriControl was born…
Overall, you will be able to add accurate voice controlled capabilities to any project for free. Convinced SiriControl is awesome? Well, lets get started!
With Siri, you can create Notes by using the command word ‘Note’, which can be synced to a Gmail account. SiriControl works by fetching Notes from this account. It dynamically loads modules, created by the user, meaning that you can set it up to control anything you want, when the specific command words are heard.
This ingenious workaround helps you to easily add Siri controlled capability to any project.
1) A Gmail account is required for SiriControl. For security reasons, I suggest creating a new Gmail account as you will have to enter your username and password in a python script. This won’t matter as you won’t be using this for personal everyday use — just for speaking commands.
3) As the script uses the IMAP protocol to fetch new Notes, IMAP needs to be enabled, under the Gmail settings.
1) Now, navigate to the following, in your Settings and add your newly created Gmail account:
Settings –> Notes –> Accounts –> Add Account
2) Turn on Notes for that account.
3) Ensure that the default account for creating Notes with Siri is your new Gmail account.
That’s it! Now, just ask Siri to create a Note like this:
“Note this is awesome”
The new note should appear under the Notes label in your Gmail account. If not, please follow the above steps again.
2) Then, open up siricontrol.py and add your username and password of your new Gmail account. This should be self-explanatory.
3) Now, run the script and say to Siri:
“Note the meaning of life”
The answer should be printed out, because of the ‘life’ module in the modules folder. The setup is now complete. 👍
Creating your own modules
Here is the default module that comes with SiriControl:
moduleName — This is the name of the module which can be anything you want.
commandWords — This array will have the words which need to be said in order to call the execute() function.
execute(command) — This function is called when all the words in the commandWords array are said. The ‘command’ parameter is the command said by the user, to Siri.
That’s all there is, to add Siri control to any project you want, whether it is as simple as turning on a LED to controlling your TV with infrared — the possibilities are endless, with the power of Siri behind it! For example, you could ask Siri to take a snapshot of your Raspberry Pi webcam feed and send it as an email, perhaps.
Due to the nature of the hack, you can control your Raspberry Pi from anywhere in the world, as long as you have an internet connection. This opens up many possibilities, including home automation and IoT. Anything is possible.