You need the two minutes where the budget came up
Search the transcript for a term, get excerpts each with its own timestamp, then pull that stretch as turns of speech. Free, as often as you like.
The meeting was an hour. Somewhere in it the budget was discussed, a number was said out loud, and someone either agreed to it or did not. You need those two minutes. You do not need the other fifty-eight.
Listening again is not a strategy. It costs an hour to find two minutes, and it costs that hour again the next time someone asks about the timeline instead of the budget. Scrubbing the waveform is worse: you are guessing at where a topic sits from the shape of the sound.
So you transcribe it, and the problem moves rather than disappearing. Now you have forty thousand tokens of text and the same question, and the obvious move is to hand the whole transcript to the model and ask. That works once, expensively, and then the transcript is in the context for the rest of the conversation, quietly making every later answer worse.
An audio file cannot be searched. There is no index in it, nothing that maps the word budget to a position, and no way to look inside without decoding the sound into words first. Every approach that starts with the audio has transcription as its first step, whether you planned it or not.
Once you have the text, the problem is a text problem and the audio was never the hard part. Locally that means holding the whole transcript somewhere and running your own search over it, which is easy, and then the two things that are not: mapping a character position back to a timestamp, and returning enough context around the hit to be worth reading. A one-sentence fragment that says we can stretch to forty tells you nothing about what was being stretched.
This is where the segment shape a raw engine returns hurts most. Its segments are roughly one sentence each, so a search lands you inside an argument with no argument around it. What you want is the surrounding turns of speech, with who was speaking and at what minute, and that is a structure you have to build before you store anything.
find returns excerpts with their timestamps, time returns that stretch as turns of speech. Both are free, however many times you call them.
listen(key="<key>")
-> handle, status: running, estimated_minutes
result(handle="<handle>", find="budget")
-> matches, each with its timestamp
-> match_count, matches_omitted
result(handle="<handle>", time="9:30-11:00")
-> turns, duration
result(handle="<handle>", time="1:02:00")
-> the window around that point
result(handle="<handle>", outline=true)
-> who spoke, and whenYou pay once, when the audio is transcribed: 0.005 EUR per minute in balanced mode, so an hour-long meeting is about 0.30 EUR. exact costs 0.008 EUR per minute.
Every later question about that recording is free. find, time, outline and paging through with offset are not charged, now or in a week: the work was paid for when it ran, and querying it is reading, not redoing. Searching the same meeting thirty times costs the same as searching it once.
It is also cheap in the other currency. Pulling the two minutes you asked for puts a few hundred tokens in your context instead of the forty thousand the whole hour would have cost, and the difference is not just money: the tokens you do not spend are the ones not degrading every answer after this one.
findmatches text, case-insensitive. It does not match meaning: a discussion about money that never says the word budget will not come back under that term.timeworks on transcripts andpageson documents. Asking for a time range on a document is an error, not an empty answer.- A very common term returns the first matches and tells you how many it left out, in
matches_omitted. Narrow the term rather than paging through all of them. - Results do not live forever. Once a result has expired, asking again means transcribing again, and that is charged.
Without markup
This page in markdown: /problems/find-the-minute-a-topic-came-up.md. All 20 of them in one file: /llms-full.txt.