KN.NEWTANWEB & AI ENGINEER
Back to selected work
SELECTED WORK / 001

Meeting
Text.

Offline meeting recording & transcription

An offline meeting recording and transcription workspace. Record multiple audio channels, manage participants, and turn speech into editable, searchable text with Faster-Whisper running locally. Offline use requires installation and model downloads to be completed first.

PythonFlaskPyWebViewSQLitesounddeviceFaster-WhisperCTranslate2Bootstrap
View source
MY ROLE
End-to-end development
PLATFORM
Desktop · Local processing
CORE STACK
Python · Flask · SQLite
MEETING TEXT / INTERFACE STUDY
LOCAL WORKSPACE
Meeting Text

Multi-channel audio → editable transcript

OFFLINE
Meeting audioTH · WAV
TranscriptTHAI / ไทย

วันนี้เราจะมาคุยกันเรื่องการพัฒนาระบบ และแนวทางการนำ AI มาใช้งานในโปรเจกต์

Faster-WhisperON-DEVICE INFERENCE
INTERFACE CONCEPT · NOT A PRODUCT SCREENSHOT

The interface above is an illustrative concept. Actual application screenshots will be added when available.

01 / THE CHALLENGE

Keep the conversation local.

Meeting recordings can contain confidential organizational information. This project explores a workflow that transcribes Thai speech without sending meeting audio to an external cloud AI service.

02 / CAPABILITIES

From recording to a shareable record

  1. 01Multi-channel recording with channel assignments and presets.
  2. 02Meeting management and participant attendance tracking.
  3. 03Local speech-to-text with downloadable Whisper models.
  4. 04Transcript editing and search.
  5. 05TXT, SRT, DOCX, PDF and JSON meeting-data exports.
03 / THE WORKFLOW

From meeting to record

Create and manage meetings, assign audio channels, track participant attendance, and transcribe recordings locally. Review and edit transcripts, search their contents, then export TXT, SRT, DOCX, PDF, or JSON meeting data.

  1. 01

    Prepare a meeting

  2. 02

    Record audio channels

  3. 03

    Transcribe & review

  4. 04

    Export & keep records

04 / SYSTEM ARCHITECTURE

A desktop interface. A local processing pipeline.

HTML, Bootstrap and JavaScript run inside PyWebView and communicate with a Flask backend. Background workers handle audio writing and transcription, while SQLite and local files store meeting records, audio and transcripts.

  1. 01Desktop interfaceHTML / Bootstrap / PyWebView
  2. 02Application layerPython / Flask
  3. 03Background processingAudio writer / Faster-Whisper
  4. 04Local persistenceSQLite WAL / Local files
  • A queued audio writer keeps file I/O outside the audio callback.
  • Faster-Whisper / CTranslate2 runs inference with a shared model cache.
  • SQLite uses WAL mode and versioned migrations with pre-migration backups.
05 / MY CONTRIBUTION

What I built

  • Connected the desktop Web UI with Flask and local storage.
  • Integrated recording, background file writing and the transcription workflow.
  • Built meeting, participant and transcript management.
  • Implemented document exports and database migration workflows.
06 / VALIDATION

Tests and practical limits

The repository includes automated tests for authentication, APIs, recording, transcription, migrations and exports. Transcription quality depends on the audio, chosen model and hardware.

07 / REFLECTION

What I learned

Building a local AI application means coordinating audio callbacks, background workers, model loading and persistent data. The project connects full-stack development with resource-aware inference and portable desktop workflows.

WHAT’S NEXT?

Explore the code. Start a conversation.

LinkedInBack to selected work