Introduction to Voice Mode AI Assistants
Recently, I’ve begun using AI assistants with voice mode, and I find them incredibly useful. I often use my Apple Watch with an eSIM during walks or workouts outdoors. In such situations, I usually don’t carry my iPhone because it adds unnecessary weight. I attempted to locate an Apple Watch app that could offer voice mode for any of the major LLM providers, but unfortunately, I couldn’t find any.
The Problem with Current Apple Watch Apps
There are some apps specifically designed for Apple Watch, but they can be quite challenging to use. Ultimately, most of these apps require you to type on a tiny watch keyboard, which can be quite difficult. I even attempted to use Ant Browser and open Chat GPT or Perplexity. The sites would load, but I couldn’t figure out how to start the voice assistant.
Finding a Solution with FaceTime
So, I decided to find a way to interact with Perplexity AI voice assistant using my Apple Watch. From my experience, the app that works best for voice transmission on Apple Watch is FaceTime. Is it possible to call Perplexity using FaceTime? Turns out, it’s easy, but you need a Mac with LoopBack installed. LoopBack offers powerful features for creating virtual audio devices and routing audio channels.
Setting Up LoopBack
To set up LoopBack, you need to create two virtual devices in the app:
- FaceTime
- Safari
This is it. At this point, you can already test how your AI assistant works. Make a call from your Mac to your Watch. In FaceTime, make sure that you selected Safari as your microphone sound source and FaceTime as your speaker.
Testing the Setup
Open Perplexity on your Mac in Safari and start voice mode. Now try speaking to your watch. Perplexity should respond to you as if you were talking to it through a microphone.
Automating the Process with a Script
Of course, this setup doesn’t make sense if you’re away from your Mac and can’t make a call from it. You’d want to call your Mac from your watch and initiate a conversation with Perplexity. After some trial and error, I managed to force my Mac to accept incoming FaceTime calls and start Perplexity in Safari. I’ve published a script on GitHub that solves this problem.
Running the Script
To run the script, download it from GitHub and run it in the Terminal of your Mac. The script waits for FaceTime to start calling. When the call is detected, the script starts Safari, opens Perplexity website, and launches voice mode. After that, the script accepts the call by pressing space.
Configuring Your Mac
To use the script, you need to grant microphone permissions to Perplexity in Safari Settings. You also need to allow full keyboard access in your Mac settings. When you run the script, you would want to prevent your Mac from going to sleep in the settings.
Using the Voice Assistant
Now, as long as the script is running, you can call your Mac and it will connect you to the voice assistant. Of course, you can modify the script a little bit and use another voice assistant instead of Perplexity. As soon as you finish your call, the script will kill Safari and FaceTime applications. The script will be ready to accept new calls in a few seconds.
Conclusion
Hope you will find this mode of interaction with LLMs useful in some scenarios! For myself, I noticed that I started using voice mode much more often with this setup. The latency is ok, and the experience is comparable to the experience that you get when you launch the assistant from your phone. One major drawback of the method is that you cannot clear the context window — start a new conversation, and the AI assistant gets confused when you jump from topic to topic. To start a new chat, you will have to end the call and call the assistant again.
FAQs
Q: Can I use this method with other voice assistants?
A: Yes, you can modify the script to use another voice assistant instead of Perplexity.
Q: Do I need to keep my Mac awake for this to work?
A: Yes, you need to prevent your Mac from going to sleep in the settings for this method to work.
Q: Can I use this method without LoopBack?
A: No, LoopBack is required to create virtual audio devices and route audio channels.
Q: Is this method free?
A: The script is free, but LoopBack is not. However, the trial mode of LoopBack is sufficient for this purpose.