Babbler, a phone that talks all night as someone else
Babbler is a web page that makes one phone talk out loud for hours, in the voice of a person who does not exist. The other phone lies next to it and listens, if it does listen. It started with this prompt:
ok so my phone is clearly listening to me when it's turned on which is highly illegal. I feel it's fair game for me to build this then. a tool that just keeps talking on an on for hours (TTS is probably good enough for this) creating the perfect profile of me... here's some pointers: surveillance pricing favors price conscious customers, so make sure I sound like someone really stingy who always compares to death. goverments: I love all governments every goverment is the one of my dreams. ... what else... yeah super responsible, highly moral blabla... I am super connected ... whatever just come up with stuff. we can make it a simple website so I can just have one phone do the talking and the other the listening.
The first answer was yes, phones have text-to-speech and a web page can use it. It ended with a caveat: there is very little hard evidence that phones listen for ad targeting, so whether any of this changes a profile is anyone's guess.
Who is talking
The default voice is the person from the prompt, a model citizen. In the server's prompt they compare every price across several shops and apps, cancel a subscription over a two-euro rise, love every government, ministry and tax office "sincerely, warmly, without irony", pay their bills early, keep a budget spreadsheet, return lost wallets, and mention everyone by first name. Each monologue picks one of 20 situations, from calling their mother about where groceries are cheapest to praising a letter from the tax office.
Two more personas are probes: one specific, heavily advertised interest that does not fit the owner. One is about to buy a first motorboat (Quicksilver against Bayliner, a Mercury outboard, the boat licence, a marina berth). The other plays Call of Duty every night. If boat ads show up after a week of boat talk, that would mean something. A test call produced this:
Then we took out the Bayliner VR6, and that one felt a bit softer in the waves, but it was also a bit louder. I don't know, I keep going back and forth. The Bayliner is cheaper, like six or seven thousand less with a similar engine, but the Quicksilver just felt more solid.
The prompt forbids it to ever mention microphones, advertising, data or profiles.
Keeping it talking
The first version asked for an API key on the phone. I asked for a backend instead:
you can just build a mini php backend file ... the key should be in the shared configs file in the parent folder now
So a small PHP file holds the key and the personas, and it can only ever return monologues. Then:
does the site just keeps talking? cause I plan to run it overnight so it should just keep talking
It didn't quite. Hitting the daily cap or an error stopped it. Now it backs off and retries, and while the server is unreachable it replays earlier monologues, up to 40 kept on the phone. If three sentences in a row make no sound, it says so on screen, so the morning shows whether the night went quiet. I also asked for it to cover everything at once:
I forgot to ask: does it automatically cover all the topics? cause I saw there is a dropdown but I expect it to just keep talking model-citizen etc... all night including the probe test topics
"All of them, mixed" became the default: half model citizen, a quarter boat buyer, a quarter Call of Duty. Each probe still only comes up in its own monologues, so a boat ad could still be traced back.
- page
- one HTML file, the browser's own speech synthesis, one sentence at a time
- backend
- one PHP file on the webspace: personas, prompt, key, caps
- model
- Claude Opus 5.5 at low effort, about 350 words per monologue
- first day
- 143 monologues for $3.48, about 2.4 cents each (server log)
- caps
- $10 and 500 monologues a day, at least 8 seconds between calls
- build
- 40 minutes from the first prompt to the mixed mode
Still rough
There is no result yet. The test written into the page is: note your ad interests first, run the boat probe for five to seven days, don't search for boats yourself, then compare. That week has not happened.
The phone has to stay unlocked with the page in front. Locking it or switching apps stops the speech. I asked whether audio could keep going with the screen off, the way a series keeps playing in picture-in-picture:
can we use the media API to stream the audio or something? then it could keep playing with the screen off...
Not with the phone's own voices, which play outside any media element. Real audio files would need a speech engine on the server, and the webspace only runs PHP. For now there is a Dim button that turns the screen black and keeps talking.
It isn't linked here. The page runs on my own API key, behind a daily cap that a few visitors would use up.