TROLLphone: Building a Local AI Scam-Call Interceptor with Bluetooth HFP

Robocalls are not slowing down

In April 2026, Americans received roughly 4.2 billion robocalls — about 13 per person for the month. The FTC logged over 2.6 million Do Not Call complaints in fiscal year 2025, and financial losses from phone scams topped $3.5 billion that year. The Do Not Call list has not stopped them. Call-screening apps slow some down. TROLLphone takes a different angle: keep scammers tied up automatically, at scale, while you do something else entirely.

How Bluetooth HFP makes this possible

The central trick is Bluetooth HFP — the Hands-Free Profile that lets a car stereo answer your phone calls wirelessly. TROLLphone registers itself as an HFP-compatible hands-free unit. When a call arrives, your phone sees what it thinks is a car kit and passes the audio over. The AI then has full-duplex access: it hears the caller through the phone’s microphone and speaks back through the phone’s speaker.

On Linux, this requires several components in a chain: bluetoothd for the Bluetooth daemon, PipeWire for audio routing, WirePlumber as the session manager, and oFono handling telephony signaling, all communicating over D-Bus. It’s not trivial to configure, but once it’s running it’s transparent to the phone. The phone just thinks it’s connected to a hands-free device.

One thing worth knowing: HFP audio runs at around 16 kHz mono — telephone quality. That turns out to be a reasonable match for Whisper, the most popular local speech-to-text model, which was largely trained on similar bitrates. The audio degradation does not hurt accuracy the way it might in a higher-fidelity context.

Routing logic: secretary mode vs. troll mode

Not every incoming call should get the troll treatment. TROLLphone routes calls based on phone number, country code, and configurable keyword and flow rules. Known contacts get a polite secretary that takes messages naturally. Unrecognized numbers — especially those matching known scam country codes or specific pattern rules — get routed to TROLL mode, where the AI’s only goal is to stay on the line as long as possible.

The routing layer is where most of the useful customization happens. You can configure it aggressively (anything unrecognized goes to troll mode) or conservatively (only numbers matching explicit block lists). Given that the FTC’s fiscal year 2025 data shows debt reduction schemes, government impersonators, and business impersonators as the top complaint categories, country-code filtering alone catches a meaningful slice of inbound scam traffic.

The STT to LLM to TTS pipeline

Three components handle the actual conversation loop:

  • Speech-to-text: Whisper transcribes the caller’s audio in real time. Larger Whisper variants are more accurate but slower; smaller ones are faster but may struggle with accents. Most builders settle on a medium or large-v3 variant and accept the latency tradeoff.
  • Language model: A local LLM decides what to say. On 8 GB VRAM you can run a quantized 7B or 8B model. With 24 GB you get access to larger models that hold a more convincing conversation and improvise better when the scammer deviates from their script.
  • Text-to-speech with voice cloning: The response gets synthesized in a cloned voice and played back through the phone. Tools like Piper and Kokoro can run on CPU for fast synthesis; Orpheus adds emotional control but wants 6 to 8 GB of VRAM. Voice cloning matters specifically because a flat synthesized voice tips off a human scammer very quickly.

The full round-trip — transcribe, generate, synthesize — has inherent latency. Even on a fast single-GPU system, there’s a gap between when the caller stops speaking and when the AI responds. That gap is the pipeline’s main vulnerability.

Why the backchannel filler words are the most important part

TROLLphone mentions playing “natural filler words” while the model is thinking. This sounds like a minor detail. It isn’t.

Dead air during LLM inference is what causes callers to hang up or get suspicious faster than any other single factor — faster than a slightly odd voice, faster than slow response timing. Real people say “uh”, “mm-hmm”, “yeah, yeah…” while they’re processing what someone just told them. A pause followed by a perfectly formed sentence is not how humans talk. Backchannel utterances — the short verbal acknowledgments that signal you’re still there and listening — give the LLM generation time without requiring TTS output to start before a full response is ready. It’s a latency-hiding technique IVR systems have used for decades, applied here to something far more interactive.

Getting filler words right means timing them well. Too mechanical (a periodic “uh-huh” every two seconds) and it sounds automated. Too sparse and the dead air creeps back. The goal is irregularity that sounds organic.

Hardware: what you actually need

The creator runs two RTX 5060 Ti cards alongside an RTX 4060 Ti. That’s a lot of GPU for most people. The real minimum is a single card with 8 GB VRAM — enough for a quantized 7B model alongside Whisper. Latency on that setup will be noticeable but the system functions.

Cards with 12 GB VRAM give meaningfully more headroom. 24 GB lets you run larger models with faster per-token generation, which directly shortens the gap between hearing the caller and responding. For convincing real-time conversation, faster inference matters in a way it doesn’t for most other LLM use cases. CPU-only is technically possible with small models but latency climbs into ranges that break the illusion of a live call. GPU acceleration is not optional for production use.

Lenny, and what comes after

TROLLphone is the direct descendant of Lenny — the audio-loop troll that plays pre-recorded clips of a confused elderly man to keep scammers on the line. Lenny has worked since around 2014 because scammers are economically motivated to stay on calls as long as there’s any possibility of a payout. TROLLphone replaces the fixed audio loop with a live LLM that improvises, responds to specific questions, and adapts when the scammer goes off-script.

The project is still private while the creator polishes it for public release. When it opens up, the real test will be how much of the routing and flow configuration is accessible without significant technical setup. The pipeline is proven. Making it usable for people who aren’t comfortable with Linux audio stacks is the harder problem.

Recording calls and deploying AI to engage with callers sits in different legal territory depending on where you are. Most US states operate on one-party consent for call recording, meaning you can record a call you’re party to without telling the other person. California and a handful of other states require all-party consent. In the EU, GDPR applies to recorded conversations in ways that vary by member state. Using AI to conduct a conversation without disclosing it as AI isn’t clearly illegal in most jurisdictions currently, but telecommunications and AI disclosure law is an active area of regulatory attention. Know your local rules before you deploy anything like this.

Sources


Similar Posts