Skip to content

bitnovus/notbumblebee

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

notbumblebee

Lo-fi track generator with automatically matched movie dialogue. Type a vibe, get a complete lo-fi track with a movie quote composed into the arrangement.

Built for ElevenLabs x turbopuffer Hack #4.

Live demo: notbumblebee-production.up.railway.app

How it works

  1. You describe a vibe ("forest coffee", "midnight drive", "3am thoughts") or hit Surprise me
  2. turbopuffer finds matching movie clips via hybrid BM25 + vector ANN search in a single multi-query call, fused with Reciprocal Rank Fusion
  3. Claude picks the most evocative clip, chooses a lo-fi subgenre, and edits the composition plan with specific key, BPM, chord progression, and instruments per section
  4. ElevenLabs Music API generates a structured lo-fi track from the composition plan — intro, groove, peak, outro
  5. You hear a complete lo-fi track with movie dialogue composed into the arrangement

Stack

  • turbopuffer — hybrid BM25 full-text + vector ANN search (text-embedding-3-large, 3072d), reciprocal rank fusion
  • ElevenLabs — Music API (composition plans + compose), Scribe v2 transcription, Sound Effects API
  • Claude — clip selection, subgenre matching, composition plan editing
  • OpenAI — text-embedding-3-large for semantic similarity vectors
  • pydub — audio mixing, lo-fi processing (low-pass filter, reverb, ducking)

Lo-fi Subgenres

notbumblebee matches dialogue to one of 10 lo-fi subgenres:

lo-fi hip hop · chillhop · ambient lo-fi · jazzhop · lo-fi soul · lo-fi house · acoustic lo-fi · vaporwave lo-fi · lo-fi japan · lo-fi drive

Setup

Prerequisites

  • Python 3.13+
  • API keys for: turbopuffer, ElevenLabs, Anthropic (Claude), OpenAI

Install

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

API Keys

Create a .env file:

ELEVENLABS_API_KEY=sk_...
TURBOPUFFER_API_KEY=tpuf_...
CLAUDE_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...

Data Pipeline (one-time)

These scripts process the VoxMovies dataset (~10K movie audio clips):

export $(cat .env | xargs)

# 1. Transcribe all clips with ElevenLabs Scribe v2
python3 scripts/transcribe.py

# 2. Generate text embeddings with OpenAI
python3 scripts/embed_text.py

# 3. Ingest into turbopuffer (BM25 + vector)
python3 scripts/ingest.py

Run

export $(cat .env | xargs)
uvicorn src.api:app --host 0.0.0.0 --port 8000

Open http://localhost:8000

Dataset

VoxMovies — 10,189 short movie dialogue clips from 861 speakers.

Brown, A., Huh, J., Nagrani, A., Chung, J.S., Zisserman, A. "Playing a Part: Speaker Verification at the Movies." ICASSP 2021.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors