Inspiration

Lecture notes are only useful if you can trust them. AI summaries often sound right but give you no way to check where a sentence came from. We wanted notes where every statement carries a "receipt": a timestamp in the lecture or a web link you can open.

What it does

Lecturesque turns a lecture transcript (.txt, .srt, .vtt) into:

  • Notes split by topic, each statement tagged with a lecture timestamp or a web source
  • Gaps: things the lecturer left out that a student probably needs, filled from the web with links
  • Slides (.pptx) built from the same notes, with sources in the speaker notes and on a Sources slide
  • Downloads as .txt, .md and .pptx

Every statement is then source-checked: a judge model reads the statement and its cited source and says whether the source supports it. If not, a fixer rewrites the statement or drops it.

How we built it

Lecture audio --> Parakeet (local GPU) --> transcript
transcript --> Nemotron Nano: cleaning + topic split
           --> Nemotron Super: gap finder, notes, slides
           --> Tavily: web sources
           --> Nemotron Ultra: judge + fixer
           --> .txt / .md / .pptx
  • Nebius Token Factory runs all language-model calls: NVIDIA-Nemotron-3-Nano-30B-A3B, nemotron-3-super-120b-a12b and Nemotron-3-Ultra-550b-a55b.
  • NVIDIA Parakeet TDT 0.6B v3 turns audio into text. It runs on a local RTX 4060 in WSL2 (about 160x real time), because Token Factory has no speech model. The deployed demo has no GPU, so it accepts transcripts only.
  • Design rule: the model returns ids, our code fills in the facts. The model picks which source a statement uses, and code copies the timestamp or URL from the original transcript or the search results. That way a model cannot invent a timestamp or a link.
  • A cheaper light mode skips web search, the judge and the fixer, and marks every line "not judged" so it is never shown as checked.
  • Backend in Python (FastAPI), frontend in Next.js, deployed on Vercel and Render.

Challenges we ran into

  • What "checked" really means. The judge checks that the cited source supports the statement. It does not check that the source is true, and it cannot catch speech-recognition mistakes, because the transcript is the reference. We renamed our label from "verified" to "source-checked" to stay honest.
  • A fixer that rewrote statements into empty sentences. We let it drop a statement instead.
  • Model calls that got cut off. A Nano call can truncate and retry, which made the cleaning step the slowest part.
  • No GPU on the free server. The deployed backend cannot transcribe audio, so we made that limit visible in the app instead of hiding it.
  • A security upgrade. We pinned Next.js 16.4.3 after a critical vulnerability in 16.4.0.
  • Costs. We measured every run from the call log instead of estimating.

Accomplishments that we're proud of

  • On a real university database course (11 short lectures, 70 minutes), the whole batch cost about $0.26. The full pipeline costs about $0.011 per lecture minute, and light mode about $0.0023 per minute.
  • That course produced 194 statements: 45 source-checked and 149 marked "not judged" (light mode). We never label a light-mode statement as checked.
  • Roughly 80% of the key terms in the course's own 25 slides also appear in our notes. This is a word-overlap measure, not a measure of understanding.
  • Every number, timestamp and link in the output is copied by code from a real source, never typed by a model.

What we learned

  • A code check proves copying; only a judge reads meaning.
  • A metric that looks good (coverage, word overlap) can hide a real problem, so we kept reading the output.
  • Measure cost and quality before and after every change, on the same input.
  • Be explicit about limits. Saying what the tool does not check makes the rest believable.

Limitations (please read)

  • The app hears the lecture but does not see it. Slides, tables and diagrams that are shown on screen but not spoken are missing.
  • Speech-recognition mistakes pass through the judge.
  • The public demo accepts transcripts only; audio needs a local GPU.
  • The live demo depends on trial credit that ends in early November, so the demo video is the main evidence.

What's next for Lecturesque

Use the class slides as a glossary to fix misheard terms, read on-screen images with a vision model, let users choose full or light mode per upload, and add real accounts with durable storage so lectures survive a server restart.

Built With

  • fastapi
  • nebius
  • nebius-token-factory
  • nextjs
  • nvidia-nemotron
  • nvidia-parakeet
  • python
  • python-pptx
  • react
  • render
  • tavily
  • vercel
Share this project:

Updates

Submission history