Structure
meetings/
├── bin/
│ ├── meeting-start # starts recording + live transcription
│ ├── meeting-stop # stops recording, asks for meeting name, renames files
│ ├── meeting-follow # follow transcript while it is being written
│ └── summarize-meeting # create post-meeting summaries
│
├── lib/
│ ├── audio.sh # defines the system audio monitor source
│ ├── paths.sh # creates session dirs + defines file paths
│ └── whisper.sh # whisper.cpp binary, model, ASR parameters
│
└── recordings/
└── 2025-03-24_1930/ # session directory (created on meeting-start)
├── audio.wav # raw system audio recording
├── transcript.txt # live transcript (grows during meeting)
├── meta.env # session metadata (PIDs, language, timestamps)
├── 2025-03-24T1930_project-sync_transcript.txt
├── 2025-03-24T1930_project-sync_audio.wav
└── summary.md # created by summarize-meeting
Description of Paths and Scripts
Paths
Path: meetings/bin/
- Executable scripts.
Path: meetings/lib/
- Scripts to be included in the executable scripts.
Path: meetings/recordings/
- Subdirectories (ISO timestamp format) containing:
- Audio files (to be deleted after the transcript has been written)
transcript.txt(renamed and timestamped after the meeting's end by themeeting-stopscript)meta.env(Meeting information)- PIDs
- language used
- the meeting's timestamps
summary.md(meeting summary in Markdown format)
Scripts
Script: meetings/lib/audio.sh
- Provides the name of the system audio device
Script: meetings/lib/paths.sh
Creates:
- Session Directory
- Session Files
-
audio.wav -
transcript.txt -
meta.env
-
- Timestamps (ISO)
and
- Provides path information for all scripts
Script: meetings/lib/whisper.sh
Contains:
- the path to the local
whisper.cppinstallation - the language model used (currently
ggml-base.bin) - ASR parameter used
Script: meetings/bin/meeting-start
- Creates a new directory in
meetings/recordings/ - starts
- ffmpeg (feeds system audio into
audio.wav) - whisper.cpp
- creates live transcript from audio
- feeds transcript into
meetings/recordings/$DATE/transcript.txt
- ffmpeg (feeds system audio into
- writes information into
meetings/recordings/$DATE/meta.env - finetunes whisper.cpp by language switch
--de,--en,--auto
Script: meetings/bin/meeting-stop
- Stops the recording
- asks for a meeting name
- replaces spaces with hyphens
- renames the meeting-related files
audio.wavtranscript.txt
- according to the timestamp contained in
meta.env
Script: meetings/bin/meeting-follow
- Shows the transcript while it is written
- mainly to monitor the process, but can be used as a live transcript, too.
- Needs to run in a different terminal from
meeting-start
Script: meetings/bin/summarize-meeting
- Creates a summary file based on the meeting transcript.