A speech corpus can score well and still fail in the room where it is deployed. The score is an average, and averages hide the conditions you did not record.
The fix is not more hours. It is naming the conditions and covering them on purpose.
Error rate averages away the useful part
One number across a whole test set tells you how the model does on the mix you happened to collect. It says nothing about the call from a car, the meeting with three people talking, or the speaker whose accent is not in the set.
Report the number per condition, and the gaps become the plan.
The fields that make audio reusable
- Speaker count and whether speech overlaps
- Recording distance and device class
- Noise type, named rather than scored
- Speech rate and the presence of disfluency
- Segment boundaries, in time, per speaker
- Whether a human checked the transcript
A segment without a boundary is a file. With boundaries it can be cut, filtered, and mixed into a different training set.
Overlap and noise are separate axes
Teams bundle them as "hard audio" and then cannot tell which one the model is failing. Overlapping speech is a separation problem. Background noise is a robustness problem. A café with one speaker and a quiet room with four are not the same difficulty.
Keep the two fields apart and the mixture becomes a dial you can turn.
Build a listening grid, not a list
A useful speech set is a grid: speaker profile by condition by duration. Fill the cells you care about, mark the ones you deliberately leave empty, and record why.
Zovda cuts and labels these collections through Datuva, so segment boundaries and conditions travel with the files instead of a separate sheet. The audio collection describes the fields in full.
Tell us the listening conditions your product meets. We reply within one business day.
