Engineering notes

Same transcription accuracy, three times the errors in the summary

November 6, 2026 · Liner Notes · 日本語版

Two speech recognizers had the same character error rate (CER), so I assumed either would give the same quality. When I generated summaries from each transcript and compared them, the number of topics containing an error differed by a factor of three. When I tightened the summary prompt to reduce errors, errors went up. Here is what I should have been measuring and how I compared them again.

What I wanted to do

Liner Notes, my iPhone diary app, transcribes conversations on the device and saves them as summaries, one per topic. People read the summary; they rarely read the full transcript.

When I compared speech recognizers, Parakeet and Granite had almost the same CER under matched conditions (4.39% and 4.36%). I assumed the summaries would be equally good with either.

What CER counts and what it does not

CER aligns the reference and the output character by character and divides substitutions, deletions and insertions by the number of reference characters. Every character weighs the same, so dropping one "uh-huh" backchannel and getting one character of a client's name wrong are both a single-character error.

Only the second one affects the summary. A missing backchannel does not change a summary, but a wrong name or number goes straight into it.

Comparing the summaries

I transcribed the same two meeting recordings with both recognizers and generated per-topic summaries from each transcript. With the recognizer hidden, I sorted every topic into "correct," "contains an error" or "unnecessary" (small talk unrelated to the meeting's purpose).

RecognizerCER (public continuous audio)TopicsTopics with an errorUnnecessary topics
Granite4.36%3295
Parakeet4.39%2934

Share of summary topics with an error, and unnecessary ones

% of topics

GraniteParakeet
Topics with an error
9/32 (28%)
3/29 (10%)
Unnecessary topics
5/32 (16%)
4/29 (14%)
Show as a table
GraniteParakeet
Topics with an error9/32 (28%)3/29 (10%)
Unnecessary topics5/32 (16%)4/29 (14%)

The CERs were almost identical, yet topics with an error differed threefold. Granite often drops phrases where fast speech overlaps; I believe that broke the flow of the conversation and led to mix-ups in the summary.

Trying to reduce errors, and adding more

To reduce errors, I made the summary prompt stricter. For each topic the model had to cite the transcript lines it was based on, say whether it was the main subject or small talk and how certain it was, and "use only numbers and names that appear in the transcript." Small talk and low-certainty topics were dropped.

Summary promptTopicsTopics with an error
Original (summarize reasonably)305
Stricter229

The stricter prompt raised the share of topics with an error

%

Original (summarize reasonably)
5/30 (17%)
Stricter
9/22 (41%)
Show as a table
ItemValue
Original (summarize reasonably)5/30 (17%)
Stricter9/22 (41%)

Errors went up. Looking inside, these were the new errors:

What I triedGoalResult
Use only numbers in the transcriptFewer number mix-upsCopied misheard numbers; more errors
Cite the supporting linesFewer unsupported topicsPacked numbers into one topic and mixed them up
Drop small talkFewer unnecessary topicsLess small talk, but the main subject went too
Drop low-certainty topicsFewer topics with an errorTopics fell from 30 to 22 and the error share rose

Tell the model to "use only numbers in the transcript" and it trusts the transcript's mistakes too. The original, looser prompt read the numbers correctly from context.

The recognizer's per-word confidence did not help either. Parakeet's confidence sits around 0.95 whether a word is right or wrong, so it gives no clue to the errors.

What I ended up doing

I changed the yardstick to "does the summary contain errors or unnecessary information." Whenever I change the recognizer or the summary prompt, I generate summaries from the same conversations and compare them blind before deciding. Around 30 topics is enough to see a difference.

I also changed how summaries are stored. They used to be rewritten into prose; now they are saved as a list, one item per topic:

Prose is written only when the diary draft is made. With the numbers kept per topic instead of melted into prose, mix-ups are easier to spot when reading back. People can long-press an item to fix or delete it.

Three things to try next: generate the summary two or three times and keep only the topics that agree, have the model round numbers ("about 20 companies"), and keep low-confidence items with a "check this" mark.

Summary

More engineering notes