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.
View sourceMulti-channel audio → editable transcript
วันนี้เราจะมาคุยกันเรื่องการพัฒนาระบบ และแนวทางการนำ AI มาใช้งานในโปรเจกต์
The interface above is an illustrative concept. Actual application screenshots will be added when available.
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.
From recording to a shareable record
- 01Multi-channel recording with channel assignments and presets.
- 02Meeting management and participant attendance tracking.
- 03Local speech-to-text with downloadable Whisper models.
- 04Transcript editing and search.
- 05TXT, SRT, DOCX, PDF and JSON meeting-data exports.
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.
- 01
Prepare a meeting
- 02
Record audio channels
- 03
Transcribe & review
- 04
Export & keep records
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.
- 01Desktop interfaceHTML / Bootstrap / PyWebView
- 02Application layerPython / Flask
- 03Background processingAudio writer / Faster-Whisper
- 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.
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.
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.
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.