Buckets:
652 kB
31 files
Updated about 1 month ago
Ctrl+K
| Name | Size | Uploaded | Xet hash |
|---|---|---|---|
| hybrid_model | 14 items | ||
| pipeline | 8 items | ||
| .gitkeep | 8 Bytes xet | 1a2a3d69 | |
| README.md | 3.5 kB xet | 1e5cdda5 | |
| api.py | 6.19 kB xet | 1cb3f25d | |
| app.py | 11.1 kB xet | f7cc3cc5 | |
| main.py | 17.3 kB xet | 1ef2e03e | |
| test_speech_formants.wav | 241 kB xet | d8528186 | |
| test_tone.wav | 176 kB xet | 39f0b7d7 |
Audio Transcription Pipeline
A modular audio transcription pipeline with speech recognition, audience response classification, speaker diarization, meeting summarization, and ASCII visualization.
Architecture
Audio Input (WAV/FLAC/MP3)
│
▼
┌────────────────────┐
│ Transcriber │ ← faster-whisper (base model, CPU int8)
│ Word-level timing │ Language detection, beam search
└────────┬───────────┘
│
▼
┌────────────────────┐
│ Audience Class. │ ← Rule-based + AST (MIT/ast-finetuned-audioset)
│ 10 event classes │ Applause, laughter, cheering, music, etc.
└────────┬───────────┘
│
▼
┌────────────────────┐
│ Diarizer │ ← pyannote/speaker-diarization-3.1 or mock
│ Speaker labeling │ HF_TOKEN required for full diarization
└────────┬───────────┘
│
▼
┌────────────────────┐
│ Summarizer │ ← Qwen2.5-0.5B-Instruct GGUF
│ Structured JSON │ Overview, decisions, action items
└────────┬───────────┘
│
▼
┌────────────────────┐
│ GlyphCast ASCII │ ← Spectrogram → ASCII art
│ 7 charsets/3 modes│ Dark, light, hallow themes
└────────────────────┘
Quick Start
CLI
cd /app/audio_transcription_pipeline_1527
# Full transcription
python main.py transcribe data/jfk_speech.wav --output json
# With summary + ASCII visualization
python main.py transcribe data/jfk_speech.wav --summary --ascii
# All pipeline modules at once
python main.py all data/jfk_speech.wav --output json
# Audience response classification only
python main.py audience data/test_tone.wav --output json
# ASCII visualization only
python main.py ascii-viz data/jfk_speech.wav --mode dark
Web Demo (Runs as background service)
- Frontend (Gradio): Port 8080
- Backend API (FastAPI): Port 8081
# Start backend
python -m uvicorn api:app --host 0.0.0.0 --port 8081 --log-level warning
# Start frontend (in another terminal)
python app.py
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/health |
GET | Health check |
/transcribe |
POST | Upload audio → transcription + analysis |
Models Used
| Model | Source | Size | Purpose |
|---|---|---|---|
| faster-whisper base | Systran/faster-whisper-base | ~150 MB | Speech recognition |
| AST audioset | MIT/ast-finetuned-audioset-10-10-0.4593 | ~230 MB | Audience classification |
| Qwen2.5-0.5B-Instruct | Qwen/Qwen2.5-0.5B-Instruct-GGUF | ~350 MB | Meeting summarization |
| Whisper-large-v3-turbo | openai/whisper-large-v3-turbo | ~2 GB | Encoder for hybrid model |
| Qwen3-8B-Instruct | Qwen/Qwen3-8B-GGUF | ~5 GB | LLM for hybrid model |
Hybrid Speech-Transcription Model
See hybrid_model/ARCHITECTURE.md for details on the Encoder-Projector-LLM architecture.
Requirements
- Python 3.10+
- CPU with ~8GB RAM minimum
- Optional: HuggingFace token for pyannote diarization
License
MIT
- Total size
- 652 kB
- Files
- 31
- Last updated
- Jun 28
- Pre-warmed CDN
- US EU US EU