Build your own Siri locally and on-device

(thehyperplane.substack.com)

136 points | by andreeamiclaus 10 hours ago

11 comments

  • worldsayshi 6 hours ago
    I love the idea and I would like to build something like this. But the few attempts i have made using whisper locally has so far been underwhelming. Has anyone gotten results with small whisper models that are good enough for a use case like this?

    Maybe I've just had a bad microphone.

    • codethief 3 hours ago
      > Maybe I've just had a bad microphone.

      Yeah, I would definitely double-check your setup. At work we use Whisper to live-transcribe-and-translate all-hands meetings and it works exceptionally well.

      • s3p 2 hours ago
        +1 this. Whisper works insanely well. I've been using the medium model as it has yet to mis transcribe anything noticeable, and it's very lightweight. I even converted it to a coreML model so it runs accelerated on apple silicon. It doesn't run *that* much faster than before.. but it ran really fast to begin with. For anyone tinkering, ive had much success with whisper.cpp.
  • catapart 7 hours ago
    Man, I'd really love it if this were just a product/app I could download and use a UI to configure/teach.

    But this guide gives me what I need to make that, I think, so a big thank you for this!

  • rrr_oh_man 49 minutes ago
    Why an LLM-written article, though?
  • thedeep_mind 8 hours ago
    This is great, thanks for putting this together.

    Haven't followed it through yet, but does this model run successfully on an iPhone?

    My 9 year old ran a Qwen 0.6B model using ollama quite well, anything else was too slow to offer a good UX.

    • parpfish 5 hours ago
      Oh, a nine year old PHONE.

      I was thinking there was a fourth grader out there deploying models when at that age I was still learning multiplication tables.

      • NetOpWibby 4 hours ago
        My son just turned 9 today so I was like, "Wow! I wonder if my kid would be interested in doing this?"
    • SparkyMcUnicorn 5 hours ago
      MLC[0] indicates that it can run models in the 8B range on iOS, but 1-3B sounds more reasonable to me.

      [0] https://llm.mlc.ai/docs/deploy/ios.html#bring-your-own-model

  • jtr1 5 hours ago
    I’ve noticed recently (maybe I missed an announcement) that Siri now functions locally for at least some commands. Try putting an Apple watch in airplane mode and asking it to set a timer or reminder
  • cadamsdotcom 4 hours ago
    Why haven’t Apple taken a look at the data then hardcoded handlers for the top ~1000 usages???
    • s3p 2 hours ago
      They are doing this, just at a mind-numbingly slow pace. They seem to add controls for brightness and power but don't make it clear what works when offline. It's not even worth trying because there's no guide or documentation on what commands would be available. You just have to go into airplane mode and try asking stuff. Awful UX
  • mrcwinn 7 hours ago
    Cool project and nice write-up!
  • mystified5016 7 hours ago
    Does Apple even allow you to replace Siri with another assistant? For the longest time on android, all non-Google assistants were crippled by not being able to listen in the background or use the assistant hardkey, gestures, or shortcuts. I'm not sure if the Google assistant still has privileges others don't, but I wouldn't be surprised in the least.
    • matthewfcarlson 5 hours ago
      Part of the problem is the wake word “hey siri” is actually handed by a separate coprocessor (AOP) with the model compiled into the firmware. While anything is technically possible, it isn’t as simple as just letting the google app run in the background since the AP is asleep when any of these gesture happen. You could probably setup the action button on the side to open an assistant, but that’s going to be a less pleasant experience (app might not be open, etc).

      Details are listed below

      https://machinelearning.apple.com/research/hey-siri

      • kimixa 4 hours ago
        Same with android phones - a super-specific hardcoded phrase is much easier to work in the power budgets required for an "always on" part of the device.

        It's why a manufacturer (like Samsung) can change that sort of thing on their devices, but it's not realistically something an end user (or even an app) can customize in software. It's not some "arbitrary" limitation.

        • smurpy 39 minutes ago
          Back in 1992 or so the NeXT could distinguish (was it 16 or) 64 fixed, trained, phrases. Point being, it doesn’t take too much compute with a finite vocabulary.
      • layer8 4 hours ago
        I think people would be fine with having to call it Siri if only they could replace the actual assistant.
    • dangus 3 hours ago
      I presume you could pretty easily use new-ish action button to run a custom shortcut that brings up an alternative assistant app.
    • jedisct1 6 hours ago
      More or less. This is what Perplexity does.
      • bronco21016 4 hours ago
        I saw an article about this and downloaded the Perplexity app but I was unable to figure out if this was true? Do I need a paid tier? I just quickly worked through the free sign up and couldn't sort it out. The demo looked really slick. Is it worth pursuing?
  • paul7986 1 hour ago
    Faithful year and half user of chatGPT on my iPhone which has made me loathe Siri for how dumb she is in every sense of the way!

    When will OpenAI (with the help of Microsoft) release a GPT phone to compete with the iPhone? Im so tired of the boring iPhone! Give me a GPT phone where from my lock screen GPT does everything for me. Fingers crossed :) it's secretively in the works!

  • caust1c 8 hours ago
    So build your own crappy agent-assistant?

    In earnest though, I'm certain we'll see a community replacement of Siri by end-of-year if the iPhone permissions model allows it or there's some workaround. IDK what the limitations are here but I'm eagerly awaiting the community to step in where Siri has failed.

    • dang 7 hours ago
      > So build your own crappy agent-assistant?

      "Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something." - https://news.ycombinator.com/newsguidelines.html

      (Your comment would be fine without that first bit.)

    • Ancapistani 8 hours ago
      The assistant is only half the story here. This looks like a great, well-defined tutorial project to learn how to put this stuff together locally.
    • andrewmcwatters 8 hours ago
      Crappy? Dude, Siri at one point couldn't even tell you what today's date was. The bar is on the ground.
      • 0cf8612b2e1e 7 hours ago
        I do not know if it is because I have been trained to make simple requests, but there are only a half dozen things I would verbally ask a robot.

        - time of day

        - calendar date

        - weather

        - set a timer

        - simple math calculation

        That’s 90% of the functionality right there.

        • sureIy 1 hour ago
          I'm sorry, something went wrong with your "what time is it" request.

          Oh you asked "what time is it in Miami?" Because I already cut you off after "what time is it".

          This happens on a daily basis when I'm not talking right into my phone.

        • andrewmcwatters 6 hours ago
          Funny you mention this. My usage is the same. I suspect we’ve all been trained to expect little-to-nothing from these assistants.
        • jihadjihad 5 hours ago
          And incredibly it manages to get those wrong a non-trivial amount of the time.
      • 4ndrewl 7 hours ago
        Think Different
  • carmelion 5 hours ago
    [flagged]