عدد فارسی و ماشینهای خواندن
این سنجش پشت یک تصمیم فنی ساده است: پیش از آنکه متن شما به موتور صدا برسد، عددهایش را به حروف باز میکنیم. اینجا نوشتهایم چرا، و چقدر جواب داده.
- ٪۰٫۰
- با رقم
- ٪۷۴٫۷
- پس از باز کردن به حروف
- ۳۸/۳۸
- گویندهای که بهتر شد

ماشین رقم را نمیخواند، و هر بار جور دیگری نمیخواند
این جملهٔ آزمون است: «در سال ۱۳۵۷ این پل دوباره ساخته شد.» عدد ۱۳۵۷ را از سر لج انتخاب نکردهایم؛ سال ۱۹۷۹ میلادی است و پرتکرارترین عددی است که در متن فارسی نوشته میشود.
هر گوینده جمله را خواند و یک سیستم تشخیص گفتار دوباره به متن برگرداند. چیزی که شنیده شد، عدد نبود. یک واژهٔ بیمعنی بود، و هر بار یک واژهٔ دیگر:
- در سال مناغب چاپ کردند
- در سال لشت چاپ کردند
- در سال حسف چاپ کردند
- در سال سلف چاپ کردند
- در سال ما سمسوم چاپ کردند
اینها نمونههای واقعی از خروجی هستند، نه بازنویسی. مدل رقم را به چیزی نگاشت نمیکند؛ یک رشتهٔ صوتی محتمل میسازد و رد میشود.
کاری که میکنیم
پیش از فرستادن متن به موتور صدا، عددها را به حروف فارسی باز میکنیم. «۱۳۵۷» میشود «هزار و سیصد و پنجاه و هفت». این کار روی سرور انجام میشود و شما لازم نیست دکمهای بزنید یا متن را دست بزنید.
قاعدهها آنقدرها هم ساده نیستند. «۱۰۰۰» در فارسی «هزار» خوانده میشود نه «یک هزار»، ولی «۱۰۰۰۰۰۰» همان «یک میلیون» است. شمارهٔ تلفن و کدی که با صفر شروع شود اصلاً نباید به صورت یک عدد خوانده شود؛ «۰۹۱۲۳۴۵۶۷۸۹» را آدم رقم به رقم میخواند، نه «نه میلیارد و صد و بیست و سه میلیون…».
نتیجه
۳۸ گوینده، ۵ نوع عدد، هر ترکیب یک بار. هر خروجی را سیستم تشخیص گفتار دوباره به متن برگرداند و شمردیم که آن عدد در متن برگرداندهشده پیدا میشود یا نه.
| نوع عدد | جملهٔ آزمون | با رقم | پس از باز کردن |
|---|---|---|---|
| سال | در سال ۱۳۵۷ این پل دوباره ساخته شد. | ۰/۳۸ (٪۰٫۰) | ۲۰/۳۸ (٪۵۲٫۶) |
| مبلغ | قیمت این کتاب ۲۵۰۰۰ تومان است. | ۰/۳۸ (٪۰٫۰) | ۱۱/۳۸ (٪۲۸٫۹) |
| ساعت | قطار ساعت ۷ صبح از ایستگاه حرکت میکند. | ۰/۳۸ (٪۰٫۰) | ۳۸/۳۸ (٪۱۰۰٫۰) |
| شمار | او ۴۵ سال در این شهر زندگی کرده است. | ۰/۳۸ (٪۰٫۰) | ۳۵/۳۸ (٪۹۲٫۱) |
| درصد | حدود ۲۵٪ از مردم این کشور جوان هستند. | ۰/۳۸ (٪۰٫۰) | ۳۸/۳۸ (٪۱۰۰٫۰) |
در سطح کل مجموعه، ۳۸ گوینده از ۳۸ بهتر شدند و هیچ گویندهای بدتر نشد. آزمون علامت دوطرفه روی همین شمارش: p = 7.28e-12.
گوینده به گوینده
هر ردیف یک گوینده. ستون سمت راست تعداد عددهایی است که با رقم درست خوانده شد، ستون بعدی پس از باز کردن به حروف.
- پریسازن · ۲۶۹ هرتزبا رقم۰باز شده۳
- ژالهزن · ۲۶۶ هرتزبا رقم۰باز شده۴
- گلنارزن · ۲۶۷ هرتزبا رقم۰باز شده۴
- چیستازن · ۲۳۹ هرتزبا رقم۰باز شده۳
- پرستوزن · ۲۳۵ هرتزبا رقم۰باز شده۵
- شیرینزن · ۲۴۵ هرتزبا رقم۰باز شده۲
- نسترنزن · ۲۲۸ هرتزبا رقم۰باز شده۳
- مهتابزن · ۲۲۸ هرتزبا رقم۰باز شده۳
- رویازن · ۲۲۳ هرتزبا رقم۰باز شده۳
- بهارزن · ۲۱۹ هرتزبا رقم۰باز شده۲
- سیمینزن · ۲۱۳ هرتزبا رقم۰باز شده۴
- فرزانهزن · ۲۱۵ هرتزبا رقم۰باز شده۳
- ترانهزن · ۲۱۳ هرتزبا رقم۰باز شده۴
- نگارزن · ۲۲۳ هرتزبا رقم۰باز شده۴
- لالهزن · ۱۹۸ هرتزبا رقم۰باز شده۳
- مینوزن · ۱۹۰ هرتزبا رقم۰باز شده۴
- آذرزن · ۲۱۴ هرتزبا رقم۰باز شده۳
- یاسمنزن · ۱۷۸ هرتزبا رقم۰باز شده۳
- هدیهزن · ۱۸۵ هرتزبا رقم۰باز شده۴
- کاوهمرد · ۱۶۲ هرتزبا رقم۰باز شده۴
- بهراممرد · ۱۵۲ هرتزبا رقم۰باز شده۳
- اردشیرمرد · ۱۳۳ هرتزبا رقم۰باز شده۵
- پرویزمرد · ۱۳۷ هرتزبا رقم۰باز شده۴
- کوروشمرد · ۱۴۳ هرتزبا رقم۰باز شده۴
- ژوبینمرد · ۱۱۹ هرتزبا رقم۰باز شده۴
- گودرزمرد · ۱۱۵ هرتزبا رقم۰باز شده۴
- رستممرد · ۱۲۴ هرتزبا رقم۰باز شده۴
- فریدونمرد · ۱۲۵ هرتزبا رقم۰باز شده۴
- منوچهرمرد · ۱۲۵ هرتزبا رقم۰باز شده۴
- آرشمرد · ۱۲۳ هرتزبا رقم۰باز شده۴
- بیژنمرد · ۱۲۵ هرتزبا رقم۰باز شده۵
- هومنمرد · ۱۲۶ هرتزبا رقم۰باز شده۵
- سهرابمرد · ۱۱۳ هرتزبا رقم۰باز شده۳
- داریوشمرد · ۱۱۰ هرتزبا رقم۰باز شده۴
- اسفندیارمرد · ۱۰۷ هرتزبا رقم۰باز شده۵
- نریمانمرد · ۱۰۳ هرتزبا رقم۰باز شده۳
- شاهینمرد · ۹۱ هرتزبا رقم۰باز شده۴
- تورجمرد · ۹۵ هرتزبا رقم۰باز شده۵
چطور اندازه گرفتیم
- هر جمله دو نسخه دارد که فقط در یک چیز فرق میکنند: عدد با رقم، یا همان عدد نوشتهشده به حروف. باقی جمله مو به مو یکی است، پس تفاوت نتیجه نمیتواند از چیز دیگری آمده باشد.
- نسخهٔ «باز شده» با همان تابعی ساخته میشود که سرور هنگام کار واقعی به کار میبرد، نه با یک متن دستی. اگر آن تابع عوض شود، این صفحه هم عوض میشود.
- تشخیص گفتار با whisper-large-v3-turbo و با اجبار زبان فارسی انجام شد.
- یک عدد وقتی «درست خواندهشده» شمرده میشود که در متن برگرداندهشده یا به صورت رقم بیاید یا به صورت حروف. پذیرفتن هر دو شکل عمدی است: سیستم تشخیص گاهی رقم مینویسد و گاهی حرف، و ابزاری که فقط یکی را بپذیرد گویندهٔ درستخوان را مردود اعلام میکند.
- آزمون علامت در سطح کل مجموعه انجام شد: شمردیم چند گوینده بهتر شدند و چند گوینده بدتر. بدون فرض دربارهٔ توزیع، بدون نمونهگیری.
چهار چیزی که اندازه گرفتیم و مهم نبودند
پیش از آنکه به عدد برسیم، چهار فرضیهٔ دیگر را آزمودیم. همهٔ آنها چیزهایی هستند که راهنماهای «تمیز کردن متن فارسی» سفارش میکنند. هیچکدام روی درستی خواندن اثری نداشتند:
| شکل نوشتن | میانهٔ درستی خواندن | اختلاف با متن استاندارد |
|---|---|---|
| متن استاندارد | ۰٫۹۳۸ | ـ |
| «ک» و «ی» عربی به جای فارسی | ۰٫۹۳۷ | ۰٫۰۰۰ |
| رقم فارسی ۱۲۳ به جای لاتین | ۰٫۹۳۶ | ۰٫۰۰۱ |
| بدون نیمفاصله | ۰٫۹۳۷ | ۰٫۰۰۱ |
| با اعراب | ۰٫۹۳۳ | ۰٫۰۰۴ |
یعنی لازم نیست متنتان را پیش از چسباندن مرتب کنید. نیمفاصله بگذارید یا نگذارید، با کیبورد عربی بنویسید یا فارسی، فرقی در خروجی نمیکند. فقط عدد مهم بود، و عدد را خودمان درست میکنیم.
جایی که هنوز کار نمیکند
- هرچه عدد بلندتر، نتیجه بدتر. ساعت و درصد پس از باز شدن کامل درست میشوند، ولی سال چهاررقمی و مبلغ پنجرقمی نه. زنجیرهٔ بلند واژه («بیست و پنج هزار») ظاهراً برای مدل سختتر از یک واژهٔ کوتاه است.
- هر ترکیب یک بار تولید شد. موتور صدا نمونهبرداری تصادفی دارد، پس یک بار تولید برای هر گوینده نویز دارد؛ عدد کل مجموعه محکم است، عدد یک گویندهٔ تنها کمتر.
- پنج نوع عدد آزمون شد، نه همهٔ انواع. تاریخ کامل، کسر، واحد پول با نماد، و شمارههای ترکیبی هنوز اندازه گرفته نشدهاند.
- این سنجش دربارهٔ موتور صداست، نه دربارهٔ گویندگان. هیچ گویندهای به خاطر نتیجهٔ این جدول از سایت حذف نشده است.
اندازهگیری در 2026-09-12 روی ۳۸ گویندهٔ این سایت.