# Whisper Transcription UDF Package

UDFs for the Whisper transcription suite:

- `audio_bytes`: download audio bytes from sources (URL or local path)
- `audio_chunks`: decode + resample and chunk into 30s windows (respects `num_clips`)
- `text`: transcribe each chunk with Whisper (default `openai/whisper-tiny`, chunk table)
- `embedding`: embed transcripts with Qwen3 Embedding (chunk table)

The manifest upload adds `audio_bytes` and `audio_chunks` to the source table.
The `text`/`embedding` UDFs are applied later on the chunk-level table.

Upload via:

```bash
cd e2e/whisper_transcription
export GENEVA_TABLE_NAME=my_table
uv run python upload_manifests.py --bucket gs://bucket/path --profile whisper_transcription
```
