Inspiration
A phone call should not cost someone their life savings.
We imagined an older adult receiving a convincing call from someone claiming to represent their bank or a government agency. The caller creates urgency, asks for sensitive information, and leaves them wondering: “Was that real? What should I do now?”
That uncertainty inspired Prahari, meaning “guardian.” We wanted to make suspicious conversations easier to understand, especially for older adults, while respecting their independence. Our public-good mission is to make fraud protection accessible to people who may not have technical expertise or someone immediately available to help.
What it does
Prahari helps users review potentially suspicious calls by turning recorded audio into a readable transcript and passing that conversation to a fraud-analysis service.
The workflow brings together:
- Audio upload and transcription to make conversations easier to revisit.
- Call classification and summaries to help users understand the conversation and potential risks.
- Timestamped, speaker-labelled transcripts in our local interface to clarify who said what.
Our broader vision is to explain warning signs using evidence from the conversation, suggest safer next steps, and let users choose whether to involve a trusted contact.
How we built it
We started with a Python application using Streamlit for uploading or recording audio. We used faster-whisper for transcription, FFmpeg for audio processing, and pyannote Community-1 for speaker separation in the local application.
We then developed an authenticated API so a separate dashboard could submit audio. The service transcribes the recording and sends the text to a dedicated classifier for fraud analysis.
We deployed the audio service on Render, managed our code through GitHub, and added automated tests and continuous integration to check service behaviour.
Challenges we ran into
Audio processing introduced practical challenges: dependency compatibility, audio decoding, speaker-model access, and differences between local and hosted environments.
Connecting the dashboard, transcription service, and classifier also required careful handling of authentication, cross-origin requests, timeouts, and errors.
The deeper challenge was communicating uncertainty. A transcript can contain mistakes, and a suspicious-sounding request is not proof of fraud. We needed to design around evidence and understandable explanations without giving users false confidence.
Accomplishments that we're proud of
We took the project from a local transcription tool to a deployed, authenticated microservice that connects audio processing with a separate classifier.
We also built ways to revisit conversations through playback, timestamps, speaker labels, and transcript exports. These features support a simple goal: helping someone understand a stressful conversation without relying entirely on memory.
What we learned
We learned that useful AI requires more than a model prediction. Reliable integration, clear error handling, accessible language, and user control all matter.
We also learned to distinguish a working prototype from demonstrated impact. Our next evaluations need to establish how accurately Prahari identifies suspicious requests and how effectively it helps people understand them.
What's next for Prahari
We plan to validate the complete workflow on realistic scam and legitimate-call recordings, measuring transcription errors, missed warning signs, false alerts, and unsupported summaries.
Next, we want to improve evidence-linked explanations, simplify the interface through feedback from older adults, and introduce permission-based sharing with trusted contacts.
Our goal is to help people pause, understand, and make informed decisions—protecting their savings, dignity, and independence.
Built With
- ai
- ai-call-assistant
- elderly
- fraud
- public-good
- scam