165 caption languages is a code list
165 is language codes (en-US vs es-MX), not 165 scripts a human captioner certified. ASR still misses names, SKUs and numbers.
add_veed_captions transcribes against 165 language codes. That is a locale list — en-US versus en-GB, es-MX versus es-ES — not a certificate that 165 writing systems were captioned by a human and signed off. Automatic speech recognition still misses names, SKUs, and numbers. Spot-check those strings before you burn.
Codes are not certified scripts
A language code is a request to the recogniser: which model of which language should listen. pt-BR is not “Portuguese, human-verified.” It is Brazilian Portuguese as a listen setting. zh is not a promise about traditional versus simplified orthography in every edge case. ar-SA is not a bilingual Arabic–English captioner sitting on the mix.
The 165 figure is the width of that picker. It includes regional variants because ASR is sensitive to them. An en-US pass on a Scottish guest, or es-ES on a Mexico City product read, is a worse listen than the matching code. That is the useful part of the list. It is also the part marketing copy flattens into “165 languages,” which sounds like 165 finished caption departments.
A human captioner is certified, or not, against a script, a style guide, and a QC bar: speaker IDs, SDH labels, reading speed, line breaks. The VEED path is not that department. It is speech-to-text plus timing plus a style burn. Add captions to a video is honest about the job: speech in, styled type out. Accuracy depends on audio clarity. Heavy accents, overlap, and music under the voice degrade the transcript. That limit is in the task.
Do not pick a code because you want the output in that language. The engine transcribes what was spoken. It does not translate. A French voiceover with en-US selected is a bad English transcript. A French voiceover with fr-FR selected is a French transcript. If you need Spanish type on an English take, that is a dub or a translation pass, then a new caption render in the new spoken language.
What the list is for
Use the code that matches the tape.
- Regional English:
en-US,en-GB, and the other English rows are different listens. Brand names still need a human eye in all of them. - Regional Spanish:
es-MXversuses-ESis a real fork for product reads. The SKU still gets invented if the box is off-mic. - Other common rows:
fr-FR,de-DE,it-IT,pt-BR,ja-JP,ko-KR,zh,ar-SA,ru-RU, and the rest of the 165. Same rule. Code first, spot-check second.
Code-switching is outside a single pass. A Spanish product name inside an English sentence, a Hindi aside, a French guest on an English host — one code is a request to mishear the other language. Split the clip and caption each range, or author the mixed lines. Hoping the model code-switches cleanly is how half the joke lands in the wrong language.
Preview still matters. BASIC (21 presets at 1×) and DYNAMIC (9 at 2×) do not change which language was heard. They change how the heard words are drawn. A Glass render of a wrong SKU is a pretty wrong SKU at 2×. Preview the style on the first seconds; read the whole transcript for the strings that can land you in a complaint.
The AI caption generator is the same engine and the same 165-code picker. Use it. Do not skip the read because the first thirty seconds looked fluent. Fluency is common words. The errors hide in the words you came to say.
ASR still misses names, SKUs, and numbers
This is the production pass, not a model footnote.
Names. People, places, brands. Siobhán, Nguyen, Versely. The recogniser returns a phonetic neighbour. On a mute feed that neighbour is the whole message. Build a do-not-ship list per series: talent, product, competitor names you must not misspell.
SKUs and model numbers. Alphanumeric strings are where ASR improvises. “XJ-240” becomes “ex jay two forty” or a word that only looks like a part number. If the clip is a product read, pause on every identifier. The box in the frame is the source of truth, not the transcript.
Numbers. Prices, percentages, dates, phone numbers, dosages. “Fifteen ninety-nine” versus “1,599” versus “15.99” is a business error, not a style error. A muted Reel that captions the wrong price is an ad problem. Read every digit.
Jargon. Category words the model has not seen in this accent. Drug names, legal terms, ingredient lists. If the brief depends on one of those words, it is a manual line.
None of this is fixed by switching language codes. en-GB will not spell your SKU. A cleaner mic will help. A human pass will finish. Auto captions versus an SRT you wrote is the same fork from the other side: the machine draft is a draft.
Burn-in freezes the miss into pixels. A sidecar on YouTube long-form can be patched without a re-render. A Reel cannot. Read before you burn. Lock the cut before you caption, so you are not paying to re-transcribe a trim.
Spot-check is the job
Treat 165 as coverage of listens, then run a short checklist on every file:
- Language code matches what was actually spoken.
- First and last thirty seconds, plus every proper noun and number in between.
- Mute pass at phone size: can you finish the line, and is the claim spelled like the product.
Speaker overlap on a Zoom webinar or a street interview is a separate failure. Two voices on one mix will swap words and drop IDs. Split, or author speaker labels. The 165-code list does not include “two people at once.”
If the take has no speech, do not run the captioner in any language. There is nothing to transcribe. Write the overlay. A language code on silence is a spend on empty audio.
The honest sentence is small. 165 is a code list. It is wide enough to pick the right listen. It is not a human caption department, and it is not a translation engine. Set the code. Read the names. Then burn.
Caption the next language pass in Versely.
FAQ
Does 165 languages mean 165 human-certified caption tracks?
No. It is 165 language codes for the ASR listen — en-US versus es-MX, and the rest. It is not a certified captioner per script. Spot-check names, SKUs, and numbers.
Will picking es-MX translate my English video into Mexican Spanish?
No. The tool transcribes speech. It does not translate. Caption Spanish audio with a Spanish code. Translation or dub is a different job, then a new caption render.
Do BASIC and DYNAMIC change language accuracy?
No. The 21 BASIC looks at 1× and the 9 DYNAMIC looks at 2× change drawing and credit multiplier. The listen is the language code plus the audio. A wrong SKU is wrong in both tiers.