Logo Lanfrica

Abiel7/bible-study-transcribe

Domain:

natural language processing

Record type:

software
Creator:
Abi
Host:
Tigrinya Bible-study sessions -> diarized transcript -> per-speaker English summary. Built on Meta Omnilingual ASR, pyannote, and Claude. # bible-study-transcribe Tigrinya Bible-study sessions → diarized transcript → per-speaker English summary. **Pipeline** 1. Normalize audio to 16 kHz mono wav (`ffmpeg`) 2. Speaker diarization with `pyannote/speaker-diarization-3.1` 3. Per-segment transcription with Meta's Omnilingual ASR (`tir_Ethi`) 4. Per-speaker English summary with Claude (Anthropic API, prompt-cached) ## Setup ```bash cd ~/dev/bible-study-transcribe uv sync cp .env.example .env # fill HF_TOKEN and ANTHROPIC_API_KEY ``` You must also: - Accept the pyannote model licenses on Hugging Face (see `.env.example`). - Have `ffmpeg` installed (`brew install ffmpeg`). ## Run ```bash uv run bible-study-transcribe path/to/session.m4a --speakers 4 ``` Outputs land in `outputs/ /`: - `transcript.txt` — `[hh:mm:ss–hh:mm:ss] SPEAKER_xx: ...` in Tigrinya - `transcript.json` — same data, structured - `summary.md` — English summary per speaker After it runs, relabel speakers in `transcript.txt` (e.g. `SPEAKER_00` → `Leader`) and re-run if you want updated summaries with the real names. ## Models - ASR default: `omniASR_LLM_7B_v2` (~29 GB cached in `~/.cache/fairseq2/`) Drop to `omniASR_LLM_3B_v2` or `omniASR_LLM_1B_v2` for faster runs. - Diarization: `pyannote/speaker-diarization-3.1` - Summary: `claude-opus-4-7` ## Cost / time on M4 Pro (rough) | Audio length | Diarization | ASR (7B) | Summary | Total | |---|---|---|---|---| | 30 sec | <10s | ~1 min | ~5s | ~1 min | | 1 hour | ~5 min | ~30 min | ~30s | ~35 min | | 2 hours | ~10 min | ~60 min | ~1 min | ~70 min |

Languages

Licenses