Persian speech recognition got sharper
A business-Persian vocabulary now steers the transcription engine itself, so compound spellings like «پرداختنشده» and Persian digits come out right the first time.
Product update 2 min read
What changed
Everything a voice turns into text — Telegram room voice notes, field dictation, the voice button, phone-call transcripts and meeting notes — now passes through two new layers:
- Before the audio is even read, the standard
promptpart of the transcription request tells the engine what to expect: business Persian, compound words joined with نیمفاصله (پرداختنشده, never «پرداختن شده»), terms like صورتحساب and کد پیگیری, and Persian digits (۰–۹). The real-world «پرداختن شده» error, which flipped a sentence's meaning to its opposite, is stopped at this exact spot. - The word list lives in
config/crm.php(thesttsection) and is meant to grow: add a product name or a colleague's name the engine keeps mangling (the real «حانیه سالهی» case) with its correct spelling, and every transcription after that writes it right.
Every voice door shares this one path; nothing changes on the screens.
How to use it
- Nothing to do — the prompt rides along automatically with Persian audio.
- If a specific word or name keeps coming out wrong, add it — spelled correctly — to
vocabularyin thesttsection ofconfig/crm.php.
Good to know
- A second layer is ready too: after transcription, a light text model on the same gateway proofreads the transcript (spelling, punctuation, Persian digits). It is off by default because it costs one extra call per voice; turning it on is one line —
CRM_STT_MEND_MODEL=nabu-fastin the environment. - The prompt is only attached to Persian audio (or clips with no declared language), so Arabic and English recordings are never steered wrong.
- If the proofreading layer is off or fails, the original transcript is delivered untouched — the cleanup never drops or shortens anybody's words.