رفتن به ابزار خواندن

عدد فارسی و ماشین‌های خواندن

این سنجش پشت یک تصمیم فنی ساده است: پیش از آنکه متن شما به موتور صدا برسد، عددهایش را به حروف باز می‌کنیم. اینجا نوشته‌ایم چرا، و چقدر جواب داده.

٪۰٫۰
با رقم
٪۷۴٫۷
پس از باز کردن به حروف
۳۸/۳۸
گوینده‌ای که بهتر شد
یک کاشی فیروزه‌ای تنها روی سطح گچی، با نقش لوزی

ماشین رقم را نمی‌خواند، و هر بار جور دیگری نمی‌خواند

این جملهٔ آزمون است: «در سال ۱۳۵۷ این پل دوباره ساخته شد.» عدد ۱۳۵۷ را از سر لج انتخاب نکرده‌ایم؛ سال ۱۹۷۹ میلادی است و پرتکرارترین عددی است که در متن فارسی نوشته می‌شود.

هر گوینده جمله را خواند و یک سیستم تشخیص گفتار دوباره به متن برگرداند. چیزی که شنیده شد، عدد نبود. یک واژهٔ بی‌معنی بود، و هر بار یک واژهٔ دیگر:

  • در سال مناغب چاپ کردند
  • در سال لشت چاپ کردند
  • در سال حسف چاپ کردند
  • در سال سلف چاپ کردند
  • در سال ما سمسوم چاپ کردند

این‌ها نمونه‌های واقعی از خروجی هستند، نه بازنویسی. مدل رقم را به چیزی نگاشت نمی‌کند؛ یک رشتهٔ صوتی محتمل می‌سازد و رد می‌شود.

کاری که می‌کنیم

پیش از فرستادن متن به موتور صدا، عددها را به حروف فارسی باز می‌کنیم. «۱۳۵۷» می‌شود «هزار و سیصد و پنجاه و هفت». این کار روی سرور انجام می‌شود و شما لازم نیست دکمه‌ای بزنید یا متن را دست بزنید.

قاعده‌ها آن‌قدرها هم ساده نیستند. «۱۰۰۰» در فارسی «هزار» خوانده می‌شود نه «یک هزار»، ولی «۱۰۰۰۰۰۰» همان «یک میلیون» است. شمارهٔ تلفن و کدی که با صفر شروع شود اصلاً نباید به صورت یک عدد خوانده شود؛ «۰۹۱۲۳۴۵۶۷۸۹» را آدم رقم به رقم می‌خواند، نه «نه میلیارد و صد و بیست و سه میلیون…».

نتیجه

۳۸ گوینده، ۵ نوع عدد، هر ترکیب یک بار. هر خروجی را سیستم تشخیص گفتار دوباره به متن برگرداند و شمردیم که آن عدد در متن برگردانده‌شده پیدا می‌شود یا نه.

نوع عددجملهٔ آزمونبا رقمپس از باز کردن
سالدر سال ۱۳۵۷ این پل دوباره ساخته شد.۰/۳۸ (٪۰٫۰)۲۰/۳۸ (٪۵۲٫۶)
مبلغقیمت این کتاب ۲۵۰۰۰ تومان است.۰/۳۸ (٪۰٫۰)۱۱/۳۸ (٪۲۸٫۹)
ساعتقطار ساعت ۷ صبح از ایستگاه حرکت می‌کند.۰/۳۸ (٪۰٫۰)۳۸/۳۸ (٪۱۰۰٫۰)
شماراو ۴۵ سال در این شهر زندگی کرده است.۰/۳۸ (٪۰٫۰)۳۵/۳۸ (٪۹۲٫۱)
درصدحدود ۲۵٪ از مردم این کشور جوان هستند.۰/۳۸ (٪۰٫۰)۳۸/۳۸ (٪۱۰۰٫۰)

در سطح کل مجموعه، ۳۸ گوینده از ۳۸ بهتر شدند و هیچ گوینده‌ای بدتر نشد. آزمون علامت دوطرفه روی همین شمارش: p = 7.28e-12.

گوینده به گوینده

هر ردیف یک گوینده. ستون سمت راست تعداد عددهایی است که با رقم درست خوانده شد، ستون بعدی پس از باز کردن به حروف.

  • پریسازن · ۲۶۹ هرتز
    با رقم۰
    باز شده۳
  • ژالهزن · ۲۶۶ هرتز
    با رقم۰
    باز شده۴
  • گلنارزن · ۲۶۷ هرتز
    با رقم۰
    باز شده۴
  • چیستازن · ۲۳۹ هرتز
    با رقم۰
    باز شده۳
  • پرستوزن · ۲۳۵ هرتز
    با رقم۰
    باز شده۵
  • شیرینزن · ۲۴۵ هرتز
    با رقم۰
    باز شده۲
  • نسترنزن · ۲۲۸ هرتز
    با رقم۰
    باز شده۳
  • مهتابزن · ۲۲۸ هرتز
    با رقم۰
    باز شده۳
  • رویازن · ۲۲۳ هرتز
    با رقم۰
    باز شده۳
  • بهارزن · ۲۱۹ هرتز
    با رقم۰
    باز شده۲
  • سیمینزن · ۲۱۳ هرتز
    با رقم۰
    باز شده۴
  • فرزانهزن · ۲۱۵ هرتز
    با رقم۰
    باز شده۳
  • ترانهزن · ۲۱۳ هرتز
    با رقم۰
    باز شده۴
  • نگارزن · ۲۲۳ هرتز
    با رقم۰
    باز شده۴
  • لالهزن · ۱۹۸ هرتز
    با رقم۰
    باز شده۳
  • مینوزن · ۱۹۰ هرتز
    با رقم۰
    باز شده۴
  • آذرزن · ۲۱۴ هرتز
    با رقم۰
    باز شده۳
  • یاسمنزن · ۱۷۸ هرتز
    با رقم۰
    باز شده۳
  • هدیهزن · ۱۸۵ هرتز
    با رقم۰
    باز شده۴
  • کاوهمرد · ۱۶۲ هرتز
    با رقم۰
    باز شده۴
  • بهراممرد · ۱۵۲ هرتز
    با رقم۰
    باز شده۳
  • اردشیرمرد · ۱۳۳ هرتز
    با رقم۰
    باز شده۵
  • پرویزمرد · ۱۳۷ هرتز
    با رقم۰
    باز شده۴
  • کوروشمرد · ۱۴۳ هرتز
    با رقم۰
    باز شده۴
  • ژوبینمرد · ۱۱۹ هرتز
    با رقم۰
    باز شده۴
  • گودرزمرد · ۱۱۵ هرتز
    با رقم۰
    باز شده۴
  • رستممرد · ۱۲۴ هرتز
    با رقم۰
    باز شده۴
  • فریدونمرد · ۱۲۵ هرتز
    با رقم۰
    باز شده۴
  • منوچهرمرد · ۱۲۵ هرتز
    با رقم۰
    باز شده۴
  • آرشمرد · ۱۲۳ هرتز
    با رقم۰
    باز شده۴
  • بیژنمرد · ۱۲۵ هرتز
    با رقم۰
    باز شده۵
  • هومنمرد · ۱۲۶ هرتز
    با رقم۰
    باز شده۵
  • سهرابمرد · ۱۱۳ هرتز
    با رقم۰
    باز شده۳
  • داریوشمرد · ۱۱۰ هرتز
    با رقم۰
    باز شده۴
  • اسفندیارمرد · ۱۰۷ هرتز
    با رقم۰
    باز شده۵
  • نریمانمرد · ۱۰۳ هرتز
    با رقم۰
    باز شده۳
  • شاهینمرد · ۹۱ هرتز
    با رقم۰
    باز شده۴
  • تورجمرد · ۹۵ هرتز
    با رقم۰
    باز شده۵

چطور اندازه گرفتیم

  • هر جمله دو نسخه دارد که فقط در یک چیز فرق می‌کنند: عدد با رقم، یا همان عدد نوشته‌شده به حروف. باقی جمله مو به مو یکی است، پس تفاوت نتیجه نمی‌تواند از چیز دیگری آمده باشد.
  • نسخهٔ «باز شده» با همان تابعی ساخته می‌شود که سرور هنگام کار واقعی به کار می‌برد، نه با یک متن دستی. اگر آن تابع عوض شود، این صفحه هم عوض می‌شود.
  • تشخیص گفتار با whisper-large-v3-turbo و با اجبار زبان فارسی انجام شد.
  • یک عدد وقتی «درست خوانده‌شده» شمرده می‌شود که در متن برگردانده‌شده یا به صورت رقم بیاید یا به صورت حروف. پذیرفتن هر دو شکل عمدی است: سیستم تشخیص گاهی رقم می‌نویسد و گاهی حرف، و ابزاری که فقط یکی را بپذیرد گویندهٔ درست‌خوان را مردود اعلام می‌کند.
  • آزمون علامت در سطح کل مجموعه انجام شد: شمردیم چند گوینده بهتر شدند و چند گوینده بدتر. بدون فرض دربارهٔ توزیع، بدون نمونه‌گیری.

چهار چیزی که اندازه گرفتیم و مهم نبودند

پیش از آنکه به عدد برسیم، چهار فرضیهٔ دیگر را آزمودیم. همهٔ آن‌ها چیزهایی هستند که راهنماهای «تمیز کردن متن فارسی» سفارش می‌کنند. هیچ‌کدام روی درستی خواندن اثری نداشتند:

شکل نوشتنمیانهٔ درستی خواندناختلاف با متن استاندارد
متن استاندارد۰٫۹۳۸ـ
«ک» و «ی» عربی به جای فارسی۰٫۹۳۷۰٫۰۰۰
رقم فارسی ۱۲۳ به جای لاتین۰٫۹۳۶۰٫۰۰۱
بدون نیم‌فاصله۰٫۹۳۷۰٫۰۰۱
با اعراب۰٫۹۳۳۰٫۰۰۴

یعنی لازم نیست متنتان را پیش از چسباندن مرتب کنید. نیم‌فاصله بگذارید یا نگذارید، با کیبورد عربی بنویسید یا فارسی، فرقی در خروجی نمی‌کند. فقط عدد مهم بود، و عدد را خودمان درست می‌کنیم.

جایی که هنوز کار نمی‌کند

  • هرچه عدد بلندتر، نتیجه بدتر. ساعت و درصد پس از باز شدن کامل درست می‌شوند، ولی سال چهاررقمی و مبلغ پنج‌رقمی نه. زنجیرهٔ بلند واژه («بیست و پنج هزار») ظاهراً برای مدل سخت‌تر از یک واژهٔ کوتاه است.
  • هر ترکیب یک بار تولید شد. موتور صدا نمونه‌برداری تصادفی دارد، پس یک بار تولید برای هر گوینده نویز دارد؛ عدد کل مجموعه محکم است، عدد یک گویندهٔ تنها کمتر.
  • پنج نوع عدد آزمون شد، نه همهٔ انواع. تاریخ کامل، کسر، واحد پول با نماد، و شماره‌های ترکیبی هنوز اندازه گرفته نشده‌اند.
  • این سنجش دربارهٔ موتور صداست، نه دربارهٔ گویندگان. هیچ گوینده‌ای به خاطر نتیجهٔ این جدول از سایت حذف نشده است.

اندازه‌گیری در 2026-09-12 روی ۳۸ گویندهٔ این سایت.

برگشت به متن‌خوان