Toastmasters Sibiu · Club de comunicare și leadership

Învață să vorbești cu impact.

Hub-ul de cunoștințe al clubului — 40+ pagini despre roluri, pathways, ședințe și tehnici de evaluare. Sursă pentru membri noi și ghid de referință pentru cei activi.

40+pagini conținut
11Pathways
54termeni glosar
ROlimba primară

TM Knowledge Hub — VirtualMeetings

Hub local Toastmasters pentru proiectul VirtualMeetings + uz personal Pavel ca rol activ la TM Sibiu. Versiune: Iteration 1 (P0 pentru ședința 2026-05-20). Iteration 2 + 3 planificate post-test. Sursă autoritativă pentru viziune produs: docs/PLATFORM_TM_FEASIBILITY.md.


Cuprins

  1. Tabel rapid — cele 22 roluri TM
  2. Agenda standard ședință TM
  3. Quick reference filler-e RO + EN
  4. Threshold-uri și praguri
  5. Status implementare per rol în VirtualMeetings
  6. Surse oficiale verificate
  7. Glosar termeni TM
  8. Evoluție platformă — Zoom Apps SDK

1. Tabel rapid — cele 22 roluri TM

Ordine cronologică ședință (din state.py:MEETING_ROLE_ORDER). Status cod: ✅ implementat / 🟡 parțial / ❌ neimplementat.

# Rol RO Rol EN Tip Durată tipică Status cod Fișă
1 Președinte President management — (deschide/închide) TODO Iteration 2
2 Toastmaster Toastmaster management — (gazdă) 🟡 (agenda UI 60%) management_toastmaster.md
3 Evaluator General General Evaluator evaluation 5-7 min raport evaluation_general.md
4 Numărător de Ă-uri Ah-Counter evaluation 1-2 min raport evaluation_ah_counter.md
5 Cronometror Timer evaluation 1-2 min raport ❌ (preset greșit existent) evaluation_timer.md
6-9 Vorbitor 1-4 Prepared Speakers speaking 5-7 min fiecare n/a (speaker rol uman) TODO Iteration 2
10 Maestrul Jobenului Table Topics Master management — (conduce TT round) TODO Iteration 2
11-18 TT Vorbitor 1-8 Table Topics Speakers speaking 1-2 min fiecare n/a TODO Iteration 2
19-22 Evaluator 1-4 Speech Evaluators evaluation 2-3 min raport fiecare TODO Iteration 2
Gramatician Grammarian evaluation 2-3 min raport ✅ (Faza 1 completă) evaluation_grammarian.md

Notă Gramatician: nu apare separat în MEETING_ROLE_ORDER standard de 22 — e parte din echipa de evaluare, alăturea cu Numărător & Cronometror. În cod este integrat ca rol principal (vezi state.py ROLE_ALIASES și meeting_roles).

Total status: - ✅ 2 roluri complet implementate (Gramatician, Numărător) - 🟡 1 rol parțial (Toastmaster — agenda UI) - ❌ 19 roluri neimplementate (în roadmap Faza 2)


2. Agenda standard TM

Ședința Toastmasters Sibiu durează 60-90 min, hibrid (fizic + Zoom).

Slot Activitate Durată Rol responsabil
1 Deschidere + introducere oaspeți 5-7 min Președinte
2 Anunț Word of the Day 1 min Gramatician
3 Introducere rolurilor de evaluare 2-3 min Numărător + Cronometror + Gramatician
4 Vorbitor 1 (Prepared Speech) 5-7 min Vorbitor 1
5 Vorbitor 2 (Prepared Speech) 5-7 min Vorbitor 2
6 Vorbitor 3 (Prepared Speech) 5-7 min Vorbitor 3
7 Vorbitor 4 (Prepared Speech, opțional) 5-7 min Vorbitor 4
8 Pauză / Joker 5-10 min Toastmaster
9 Table Topics intro (Maestrul Jobenului anunță) 2 min Maestrul Jobenului
10 TT Vorbitori 1-8 1-2 min × N TT Speakers
11 Vot TT (best speaker, opțional) 2 min Maestrul Jobenului
12 Evaluator 1 (evaluează Vorbitor 1) 2-3 min Evaluator 1
13 Evaluator 2 (evaluează Vorbitor 2) 2-3 min Evaluator 2
14 Evaluator 3 (opțional) 2-3 min Evaluator 3
15 Evaluator 4 (opțional) 2-3 min Evaluator 4
16 Cronometror raport 1-2 min Cronometror
17 Numărător raport 1-2 min Numărător
18 Gramatician raport 2-3 min Gramatician
19 Evaluator General raport (sumar + recomandări) 5-7 min Evaluator General
20 Vot speakers (best speech, best TT, best eval) 2-3 min Toastmaster
21 Anunțuri și remember 3-5 min Președinte
22 Închidere 1-2 min Președinte

Total estimat: ~80-100 min depending on # vorbitori și TT.


3. Quick reference filler-e

Vezi linguistics_ro/filler_words_ro.md pentru detalii.

Top RO (cele mai comune)

Cuvânt/Sunet Categorie Severity tipic Sugestie
ăă/ăăă hesitation_um mare Pauză tăcută
deci discourse_marker medie (densitate >1/30s) Pauză + intră direct
adică discourse_marker medie Reformulează direct
păi discourse_marker mică Intră în propoziție direct
gen discourse_marker medie Folosește „de exemplu”
practic discourse_marker mică Adesea redundant
basically anglicism medie Folosește „practic” sau elimină
hmm hesitation_um mare Pauză tăcută
știi? (la final) tag_question mică Convertește în afirmație
nu? (la final) tag_question mică Afirmă direct

Top EN (referință internațional)

NU se contabilizează (oficial cluj.toastmasters.ro)


4. Threshold-uri și praguri

Praguri standard TM International + Sibiu specific.

Durata intervenții (Cronometror)

Tip intervenție Verde Galben Roșu Disqualified (contest)
Prepared Speech (Vorbitor 1-4) 5:00 6:00 7:00 <4:30 sau >7:30
Table Topics (TT Vorbitor) 1:00 1:30 2:00 <1:00 sau >2:30
Speech Evaluation 2:00 2:30 3:00 <2:00 sau >3:30
Role reports (Gramatician, Numărător, Timer) 1:00 2:00 3:00 n/a

Filler density (Numărător, recomandare practică)

NU există threshold oficial TM (sursa: Ah-Counter official page). Pragurile de mai jos sunt convenții VirtualMeetings + practică TM Sibiu.

Densitate fillere Status Acțiune raport
<3 total per speech ✓ disciplinat „Felicitări — sub prag”
3-5 total per speech ✓ acceptabil Menționează tic specific, fără critică
6-10 total per speech ⚠ peste prag „peste 5+”, recomandare antrenament pauza
>10 total per speech ⚠ atenție „peste 5+”, focus tic recurent, recomandare clară

Scoring rubric (vezi evaluation_framework/ — Iteration 2)


5. Status implementare per rol în VirtualMeetings

Rol Detection auto Operator UI Public Display Raport Persist
Gramatician ✅ (grammar_ro batch) ✅ (col 4 Notițe) n/a ✅ (4 col × speaker) ✅ pavel_notes.jsonl
Numărător de Ă-uri ✅ (3-tier + AI repair) ✅ (+1 manual button) n/a ✅ (sumar + detaliu + timeline) ✅ filler_manual.jsonl
Cronometror 🟡 (watchdog 2:30)
Toastmaster (agenda) 🟡 (UI 60%) n/a
Evaluator General n/a
Speech Evaluators (1-4) n/a
Maestrul Jobenului n/a
Președinte n/a n/a n/a n/a n/a
Speakers (4 + 8 TT) n/a (speaker rol uman, nu modul software) n/a n/a n/a n/a

Roadmap Faza 2.C (post-2026-05-20): Cronometror (prim modul nou) → Maestrul Jobenului → Numărător hands raised (CV) → Evaluator General.

Roadmap Faza 2.D (2026-05-22+): Zoom Apps SDK POC — înlocuiește OCR speaker detection cu onActiveSpeakerChange event nativ, sidebar UI în Zoom client. Plan complet: docs/zoom-apps-sdk-integration.md.


6. Surse oficiale

Vezi OFFICIAL_SOURCES.md pentru lista completă cu data verificării și freshness checklist.

Oficial Toastmasters International

Cluburi District 95 (Eastern Europe — Pavel context)

Local arhivat


7. Glosar termeni TM

Termen Definiție
TM Toastmasters (organizația globală)
TI Toastmasters International (entitatea legală US)
District 95 Diviziunea geografică Eastern Europe (RO + Bulgaria + Serbia + altele)
Pathways Programul educațional curent (lansat 2018, înlocuiește vechiul CC/CL)
Path Unul din cele 11 trasee din Pathways (ex: Presentation Mastery, Strategic Relationships)
Level 1-5 Etapele progresiei într-un Path (Level 1 = mastery basic, Level 5 = advanced/leadership)
CC Competent Communicator — certificare legacy (înlocuit cu Pathways Level 2-3)
CL Competent Leader — certificare legacy
ACB Advanced Communicator Bronze — certificare legacy
DTM Distinguished Toastmaster — cea mai înaltă certificare (necesită mentor + leadership)
Prepared Speech Discurs de 5-7 min, pregătit din timp, evaluat de un Evaluator dedicat
Table Topics (TT) Discurs impromptu de 1-2 min, pe subiect dat de Maestrul Jobenului
Speech Evaluation Feedback structurat oral de 2-3 min după un Prepared Speech
General Evaluator Persoană care evaluează ÎNTREAGA ședință (incluzând echipa de evaluatori)
Sergeant at Arms Officer responsabil cu logistica (echipament, materiale, snacks)
VPE Vice President Education — officer responsabil cu programarea ședințelor
VPM Vice President Membership — officer responsabil cu recrutarea
VPPR Vice President Public Relations — officer responsabil cu marketing
CRC Commend-Recommend-Commend — pattern feedback (Faza 2 evaluation_framework/)
Word of the Day Cuvântul Zilei, propus de Gramatician ca exercițiu vocabular
Ah-Counter Numărător de Ă-uri (filler words tracker)
Grammarian Gramatician
Timer Cronometror

8. Cum se folosește acest hub

Pavel în timpul ședinței: - Răspuns rapid „ce face X?”: tabel din §1 → click pe fișa rolului (dacă completă) - Întrebare la filler-e: §3 quick reference - Întrebare la timing: §4

Iteration viitoare (Pavel / contribuitori): - Completează fișele rămase folosind _template_role.md - Adaugă material în meeting/, administrative/, pathways/, evaluation_framework/, contests/ - Actualizează acest hub când implementezi noi role modules în cod (Faza 2.B/2.C)

Lansare externă (Iteration 3): - Acest hub devine resursă publishable pentru alte cluburi RO sau pentru produsul Faza 3 - Verifică OFFICIAL_SOURCES.md freshness înainte de lansare


8. Evoluție platformă — Zoom Apps SDK

Plan complet detaliat: docs/zoom-apps-sdk-integration.md. Status: plan complet, cod zero. Implementare POST 2026-05-20.

Ce câștigăm față de starea curentă

Problemă azi Soluție Zoom Apps SDK
Speaker detection = OCR pe screenshot (fragil, ~80% accuracy, 500ms lag) onActiveSpeakerChange event nativ (~100%, milisecunde)
Asignare manuală roluri (rol v1 Maria în CLI) getMeetingParticipants → dropdown click în sidebar
UI în browser separat (Cmd+Tab constant) Sidebar permanent în interiorul Zoom
Setup pe Mac nou = 5 pași (venv, swift build, etc.) Click install din Zoom Marketplace
Audio route = hack Process Tap Audio rămâne local (Zoom App = UI + metadata, NU audio)

Ce nu schimbăm

API-uri Zoom folosite

// Speaker detection — înlocuiește TextRecognizer OCR
zoomSdk.addEventListener('onActiveSpeakerChange', (event) => {
  fetch('http://127.0.0.1:8000/set_speaker', {
    method: 'POST',
    body: JSON.stringify({ speaker: event.participants[0].screenName })
  });
});

// Lista participanți — înlocuiește comenzile "rol v1 Maria"
const { participants } = await zoomSdk.getMeetingParticipants();
// → dropdown în sidebar cu asignare role la click

RTMS — pentru ce e util (neprofesionist)

Ce e: Zoom poate „deschide un robinet” din care curge audio-ul live al meeting-ului spre serverul tău.

3 scenarii concrete: 1. Gramatician pe iPad (fără Process Tap Mac-only): audio curge prin cloud Zoom → server nostru → Whisper 2. Multi-stream per vorbitor: Zoom poate livra un stream separat per participant activ → Whisper pe Cornel separat de Diana → calitate mai bună la overlap 3. Livrare garantată: dacă Process Tap pierde conexiunea 5s, RTMS notifică explicit (nu mai stai cu chunks: 0 și nu știi de ce)

Decizie: RTMS = fallback multi-platform, NU default. audio mic + Process Tap rămân primary (audio nu pleacă în cloud).

Recordings API — ședințe istorice TM Sibiu

Zoom păstrează înregistrările cloud. Putem descărca retroactiv toate ședințele TM Sibiu cu 3 endpoint-uri REST:

GET /v2/users/{userId}/recordings?from=2026-01-01&to=2026-05-31
→ lista meeting-urilor înregistrate cu UUID, durată, linkuri

GET /v2/meetings/{meetingId}/recordings
→ fișiere per meeting: MP4 video, M4A audio-only, VTT transcript Zoom

4 use case-uri imediate: 1. Re-procesare cu Whisper local → fișe gramatician retroactive pentru tot istoricul TM Sibiu 2. Indexare FTS5 SQLite → „când a vorbit cineva despre altruism?” → timestamp + link recording 3. AI summarize post-meeting → email automat cu rezumat la participanți 4. Comparație Whisper local vs transcript Zoom oficial (calibrare confidence thresholds)

Cost: gratuit (API calls) + bandwidth descărcare (m4a ≈ 30MB/oră).

UI sidebar — soluție pentru 320px

Zoom App rulează într-un sidebar de 320px (față de 4 coloane × 480px în browser UI actual). Soluție: 3 tab-uri comutabile:

TAB LIVE (default în ședință):

⏱ 19:42:30  🟢 -32dB         ← header sticky
Speaker activ: ▶ Cornel  [✏]
Agenda: Vorbitor 2 (4:32/7:00) ██░░

⚠ ERORI (3)              [▼]   ← accordion colapsabil
  • „ăă" filler tic
  • propoziție incompletă
  • „path" anglicism

✨ CREATIVE (1)          [▼]
📝 NOTIȚELE MELE  [+ ADD]
  [12:34] a clipit nervos
  [12:42] încheiat tare

TAB FIȘE: tab-uri orizontale per vorbitor + timeline TOOL/PAVEL/AMBELE per speaker.

TAB RAPORT: preview + export + sync recording Zoom.

Toggle [⤢] → trece în Main view (înlocuiește tile-urile video, layout 2 coloane exact ca browser UI azi).

Timeline implementare (post 2026-05-20)

Dată Faza Livrabil
2026-05-22 Faza 0 Cont dev Zoom, OAuth, boilerplate JS, hosting HTTPS
~2026-05-29 Faza 1 onActiveSpeakerChange + WS bridge /ws/live + tab LIVE
~2026-06-03 Test paralel Browser UI + Zoom App ambele active în ședință TM live
~2026-06-12 Recordings CLI fetch-recording + re-procesare retroactivă
~2026-06-17 Test pilot Zoom App singur (fără browser UI fallback)

Faza 3 — Platformă proprie TM (LiveKit, post 6+ luni validare)

Plan tehnic complet: docs/PLATFORM_TM_FEASIBILITY.md Status: decizie strategică luată 2026-05-16, cod zero. Implementare DOAR după pre-condiții.

Dacă 5+ role modules ajung mature și TM Sibiu vrea activ să iasă din Zoom, construim propria platformă de meeting — nu pentru a concura Zoom global, ci pentru a fi mai bun specific pentru TM: timer integrat, roluri native, per-speaker recording automat, link de participare, zero Process Tap fragility.

De ce LiveKit (și nu altele)

Opțiune evaluată Verdict Motiv respingere
LiveKit self-hosted ALES Per-track audio nativ; Agents Python = ai-service reutilizat 80%; coturn existent refolosit
Jitsi Meet self-hosted Monolit Java/XMPP; per-speaker audio non-idiomatic; fork UI obligatoriu pentru roluri TM
Mediasoup DIY 24-32 săpt; SFU bugs la 22:00 pre-meeting = ședință stricată
Java from scratch GC pauses 50-200ms rup audio real-time (RTT <30ms necesar); niciun SFU modern nu e Java

Ce câștigăm față de Zoom companion

Zoom companion (Faza 2) Platformă proprie LiveKit (Faza 3)
Process Tap / RTMS = audio fragil sau cloud WebRTC browser = audio nativ, per-participant track
Speaker detection = OCR + Zoom SDK LiveKit emite participant.speaking nativ
Recording = sprint files greu de sincronizat LiveKit Egress → MP4 per-speaker automat
Roluri asignate manual în CLI JWT custom claims cu meeting_roles pre-ședință
Funcționează doar pe Mac (Process Tap) Browser → cross-platform (Mac/Windows/Linux)

Pre-condiții ne-negociabile (confirmate 2026-05-16)

  1. 5+ role modules mature și folosite live min 3 luni
  2. TM Sibiu vrea activ să iasă din Zoom (semnal real, nu speculativ)
  3. Cel puțin 1 alt club interesat (validare externă)
  4. Pavel are 3-6 luni bandwidth production (confirmat)

Server: self-hosted pe ce-dev-01 (4 vCPU, Infomaniak, deja există). NU LiveKit Cloud ($50/mo).