
Long Audio Transcription: Keep Speaker Labels Across Chunks
A long interview is transcribed in several chunks. Speaker 1 becomes Speaker 2 in the next file, the same sentence appears twice at a boundary, and each chunk restarts at zero. The words may be useful, but the combined transcript is hard to trust.
Separate speech recognition from transcript assembly
Keep the original recording, speech-tool settings, raw output, chunk register, and corrected transcript. If the speech tool can process the entire file reliably, splitting it unnecessarily adds boundary and identity problems.
Register chunk offsets before transcribing
For a fictional recording, suppose your selected tool or process needs overlapping chunks:
| Chunk | Source range in seconds | Local time origin | Review need |
|---|---|---|---|
| A | 0–600 | Local 0 equals source 0 | First speaker references |
| B | 590–1190 | Local 0 equals source 590 | 10-second overlap with A |
| C | 1180–1500 | Local 0 equals source 1180 | 10-second overlap with B |
These are illustrative chunk sizes, not model limits or universally good settings. Put boundaries near pauses when possible. The overlap helps inspect a cut, but repeating audio does not guarantee that a word or speaker is recognized consistently.
Store integer milliseconds if your pipeline permits it. A segment in B at local 12–15 seconds maps to source 602–605 seconds. The conversion is addition, not a new timing estimate.
Map speaker labels with evidence
speaker_0 means G1. Local labels may be assigned independently.| Observation | Decision | Evidence to retain |
|---|---|---|
| A speaker_0 says the host introduction; identity checked against audio | Map to G1 | Source reference and reviewer decision |
| B speaker_1 matches a verified overlap passage spoken by G1 | Map this label to G1 after listening | Overlap source span and acoustic check |
| C speaker_0 has no usable overlap and several plausible candidates | Leave unmapped | List the reference audio needed |
unresolved_C_speaker_0 instead of inventing a name.During overlapping speech, do not force one speaker onto an interval that contains two voices. Preserve the ambiguity and inspect the speech tool's underlying segments.
Merge overlaps without deleting repeated conversation
Two chunks can transcribe the same source sentence differently. Compare their global source intervals and listen at the boundary. Keep one accepted rendering, retaining both raw records for audit.
The same sentence at different source times can be intentional repetition. Text similarity alone must not delete it. Deduplication needs shared source coverage as well as matching speech.
A merge record might look like this:
The following fictional records make the overlap decision explicit. Times are seconds; A begins at source 0, B at 590, and C at 1180. The mapping for B:speaker_1 comes from the reviewed common passage at source 594–598, not from the later B-04 segment.
| Raw record | Local interval | Global source interval | Speaker and text |
|---|---|---|---|
| A-19 | 594–598 | 594–598 | A:speaker_0 → G1; “Check the date field before importing.” |
| B-02 | 4–8 | 594–598 | B:speaker_1 → G1; same words, same audio span |
| B-04 | 12–15 | 602–605 | B:speaker_1 → G1; “Check the date field before importing.” repeated later |
| C-03 | 6–9 | 1186–1189 | C:speaker_0; “Who approves this version?”; identity unresolved |
unresolved_C_speaker_0. The deliverable therefore contains three source intervals, not two; only one duplicate representation is removed.{
"segment_id": "B-04",
"source_start_ms": 602000,
"source_end_ms": 605000,
"raw_speaker": "B:speaker_1",
"global_speaker": "G1",
"speaker_basis": "reviewed overlap reference A-19",
"text": "Check the date field before importing.",
"review_status": "accepted"
}This is a reference format with a fictional accepted decision. In your data, set the basis to an actual review record; do not copy the acceptance status before making that check.
Use AI to propose a merge, then check the boundaries
Organize the supplied long-audio transcript records.
Use the chunk register to convert local times to global source time.
Use only the supplied approved speaker mappings; do not infer a real name.
Keep local label, source ID, raw text, and global speaker separately.
For overlapping source intervals, propose duplicates with both IDs and reasons.
Do not delete similar words at distinct source times.
Preserve uncertain or overlapping speech as unresolved.
Return merged proposals, speaker questions, overlap conflicts,
and intervals requiring audio review. Do not invent unheard words or timings.
Inputs: chunk register, raw transcript records, approved mapping and references.Use the Agent or API instructions on the EvoLink model page for this text-organization step. For a large job, submit adjacent chunks with a stable mapping record, then check every chunk boundary. A final combined summary is not a substitute for the transcript.
Check completeness and hand off a usable transcript
Compare the source coverage register with the delivered segments. Gaps during silence can be legitimate; gaps across known speech require listening. Check the start and end of every chunk, speaker changes, overlapping speech, numbers, and ambiguous names.
| Failure | Correct next step |
|---|---|
| A global speaker changes after a split | Recheck the local-to-global mapping against audio |
| A sentence appears twice at one source position | Review overlap candidates and accept one text record |
| A repeated phrase disappears at another position | Restore it unless source evidence shows duplication |
| B's times restart at zero in the combined file | Apply the recorded chunk origin |
| A name looks plausible but is not established | Retain an anonymous ID and an unresolved item |
FAQ
Does speaker diarization identify people's names?
It separates speaker turns or labels. A real-world identity needs additional verified evidence.
Do long recordings always need chunking?
No. Use the selected speech tool's limits and observed quality. Unnecessary splits create extra merge work.
Can the same speaker number be reused globally?
Only after establishing the mapping. Treat each chunk's label as local by default.
Can identical text be removed automatically?
Check source coverage too. People can repeat identical words at different times.
What if speaker overlap is unclear?
Retain an unresolved interval and listen to the source rather than forcing a single identity.
What should the combined transcript preserve?
Source file, segment IDs, global times, raw labels, accepted speaker mapping, text, and unresolved questions.
Sources
- Amazon Transcribe: speaker partitioning: upstream speech processing.
- EvoLink Gemini 4: text-organization route; checked October 16, 2026.


