Back to projects

Rabak

Singlish speech analysis tool that tracks your 'lah', 'lor', and 'walao' with AI speaker recognition

Python · FastAPI · React Native · PyTorch · Supabase

Overview

Built at NUS Hack and Roll 2026, Rabak is a speech analysis tool that helps Singaporeans become aware of the Singlish words they repeat unconsciously. By recording conversations, Rabak analyzes the audio and delivers a humorous breakdown of Singlish usage by each person—revealing those subtle (and sometimes annoying) speech habits we never knew we had.

The Problem

"Eh, can you stop saying walao? It's very unattractive."

That sentence inspired Rabak. People repeat certain words without realizing it—the lahs, lors, walaos, and sias that slip into Singaporean speech automatically.

How It Works

  1. One-Phone Recording: Place one phone on the table, record everyone in the conversation
  2. AI Speaker Diarization: Automatically identifies who spoke when using pyannote
  3. Singlish Detection: Custom pipeline detects particles and colloquial expressions
  4. Claiming UI: Listen to audio samples, click "That's me!" to claim your voice
  5. Spotify Wrapped-Style Stats: Get your personal word usage breakdown

Technical Highlights

  • Speaker Diarization: pyannote/speaker-diarization-3.1 separates multiple speakers from a single audio stream
  • ASR Pipeline: MERaLiON-2-10B-ASR for speech-to-text, optimized for Singaporean accents
  • Custom Singlish Dictionary: Built mapping layer to correct ASR outputs that misinterpret Singlish particles
  • Hybrid Architecture: ML models on Google Colab exposed via API, consumed by React Native frontend

The Challenge

Existing speech-to-text models couldn't handle Singlish:

  • "Lah" transcribed as "la" or ignored entirely
  • "Walao" became "wow lao" or "wa lao"
  • Particles at sentence ends were dropped

Solution: Built a post-processing layer with a custom dictionary mapping common ASR mistakes to their intended Singlish words.

Tech Stack

Tech Stack:

  • Mobile: React Native + Expo
  • Backend: FastAPI (Python)
  • ASR: MERaLiON-2-10B-ASR
  • Diarization: pyannote/speaker-diarization-3.1
  • Database: Supabase (PostgreSQL + Auth)
  • ML Processing: Google Colab (GPU)