چرا هوش مصنوعی شماره تلفن فارسی را اشتباه میخواند؟
دستیار صوتی خوشصدایی را تصور کنید که میخواهد کد رهگیری ۴۸۲۷۱۹۰۳ را به مشتری بگوید و میگوید: «چهل و هشت میلیون و دویست و هفتاد و یک هزار و نهصد و سه». صدا عالی است، ولی مشتری چیزی یادداشت نمیکند. این اتفاق بیشتر از اینکه مشکل صدا باشد، مشکل متن است. در این مقاله میبینید تبدیل متن به گفتار فارسی کجا گیر میکند و متن را پیش از گفتار چطور باید آماده کرد.
محصول آماده کارن تکنولوژی
این را روی داده واقعی کسبوکار خودتان ببینید
آنچه در این مقاله میخوانید، در محصولات کارن پیادهسازی شده است. در جلسه دمو، همان را روی داده و فرآیند خودتان اجرا میکنیم.
درخواست دمو رایگان یا تماس بگیرید: ۰۲۱-۸۸۶۱۴۲۸۲در این صفحه
تبدیل متن به گفتار چطور کار میکند
موتور تبدیل متن به گفتار (TTS) را میشود سه مرحله دید:
- نرمالسازی متن: هر چیزی که کلمه نیست، به شکل قابل خواندن درمیآید؛ عدد، تاریخ، نشانه و کوتهنوشت.
- تبدیل نوشته به تلفظ: موتور باید بداند هر کلمه چطور گفته میشود.
- ساخت صدا: از تلفظ، موج صوتی ساخته میشود.
در موتورهای عصبی امروزی مرز این مرحلهها همیشه به این روشنی نیست و گاهی همه در یک مدل انجام میشوند. ولی خود مسئله سر جایش میماند. پیشرفتهای چشمگیر چند سال اخیر بیشتر در مرحله سوم دیده میشوند: صداها طبیعی شدهاند. ولی اگر موتور نداند «۰۹۱۲» چطور خوانده میشود، طبیعی بودن صدا کمکی نمیکند.
مسئله اصلی: یک رشته رقم، چند معنی دارد
یک رشته رقم بهتنهایی نمیگوید چیست. انسان از روی زمینه میفهمد و موتور گفتار معمولاً زمینه کمتری دارد.
| نوشته | معنی | خوانش درست |
|---|---|---|
| ۱۴۰۵ | سال | هزار و چهارصد و پنج |
| ۱۴۰۵ | شماره داخلی | یک، چهار، صفر، پنج |
| ۲۵۰۰۰۰۰ | مبلغ | دو میلیون و پانصد هزار |
| ۴۸۲۷۱۹۰۳ | کد رهگیری | چهار، هشت، دو، هفت، یک، نه، صفر، سه |
| ۰۹۱۲ | پیششماره تلفن | صفر، نه، یک، دو |
به صفر اول دقت کنید. اگر موتور «۰۹۱۲» را عدد حساب کند، حاصل «نهصد و دوازده» است و صفر از بین میرود. برای مشتریای که شماره را یادداشت میکند، این یعنی شماره غلط.
وقتی موتور رشتهای از رقمها را میبیند، چند اتفاق ممکن است بیفتد: آن را عدد بزرگ میخواند، بخشی را جا میاندازد، یا لحن و سرعتش به هم میریزد. نتیجه به موتور و نسخهاش بستگی دارد، پس باید موتور خودتان را آزمایش کنید.
چرا فارسی سختتر است
چند ویژگی نوشتار فارسی کار موتور گفتار را سختتر میکند:
- مصوتهای کوتاه نوشته نمیشوند: «کرم» میتواند کِرم، کَرَم یا کِرِم باشد و «مرد» میتواند مَرد یا مُرد باشد. موتور باید از جمله حدس بزند.
- کسره اضافه نوشته نمیشود: «سفارش شما» با کسره خوانده میشود، ولی در متن نشانی از آن نیست.
- چند شکل برای یک نویسه: رقم فارسی «۴» و رقم عربی «٤» دو نویسه متفاوتاند، و متن ممکن است رقم لاتین هم داشته باشد. «ی» و «ک» هم شکل عربی دارند.
- نیمفاصله: «میخواهم» و «میخواهم» و «می خواهم» در متن واقعی هر سه دیده میشوند.
- نامهای خاص و کلمههای لاتین: نام برند، محصول و آدمها اغلب در داده آموزشی نبودهاند.
به اینها این را هم اضافه کنید که بسیاری از موتورهای گفتار معمولاً برای زبانهای پرکاربردتر داده آموزشی بیشتری داشتهاند. برای همین چیزی که در انگلیسی بیدردسر است، در فارسی میتواند خطا بدهد.
راهحل: متن را پیش از گفتار آماده کنید
بهجای اینکه منتظر باشید موتور درست حدس بزند، متن را قبل از فرستادن به آن آماده کنید. مهمترین کار، تبدیل عددهای بلند به کلمه است:
- تبدیل رقمبهرقم: شماره تلفن و کد رهگیری به جای رشته رقم، به شکل کلمههای جدا نوشته میشوند: «چهار، هشت، دو، هفت».
- یکدست کردن نویسهها: رقمهای عربی و لاتین و «ی» و «ک» عربی به شکل فارسی درمیآیند.
- تشخیص نوع عدد: مبلغ و تعداد نباید رقمبهرقم خوانده شوند. فقط شناسهها اینطور خوانده میشوند.
- باز کردن کوتهنوشتها: نشانهها و کوتهنوشتها به شکل گفتاری درمیآیند.
این آمادهسازی باید بعد از مدل زبانی و پیش از موتور گفتار انجام شود، فقط روی متنی که قرار است گفته شود. نمایش روی صفحه باید با همان رقمهای معمولی بماند، چون چشم راحتتر رقم را میخواند.
یک فایده دیگر: میشود با کمی مکث میان گروههای رقم، شماره را برای شنونده راحتتر کرد. آدمها هم شماره را گروهگروه میگویند، نه یکنواخت.
چرا نوشتن یک دستور برای مدل زبانی کافی نیست
شاید بگویید: به مدل زبانی میگوییم عددها را به حروف بنویسد. این کمک میکند، ولی کافی نیست. مدل زبانی گاهی این دستور را رعایت نمیکند، مخصوصاً در جوابهای بلند. مهمتر اینکه اگر مدل موقع تبدیل، رقمی را جابهجا کند، شماره غلط به مشتری میرسد و کسی متوجه نمیشود.
تبدیل رقم به کلمه کاری قطعی است و یک تکه کد ساده انجامش میدهد. این جور کارها را بهتر است به کد سپرد، نه به مدل. هر کد قابل آزمایش است و همیشه همان نتیجه را میدهد.
آزمایش رفتوبرگشت: چطور بفهمیم درست خوانده شده
گوش دادن دستی خوب است، ولی روی چند نمونه جواب میدهد. آزمایش رفتوبرگشت یک راه ساده برای آزمایش تعداد بیشتر است: متن را به گفتار تبدیل میکنید، گفتار حاصل را دوباره با یک موتور گفتار به متن به نوشته برمیگردانید و نتیجه را با متن اول مقایسه میکنید. اگر رقمها یکی نبودند، جایی مشکل هست.
این آزمایش کامل نیست. خطا ممکن است از موتور گفتار به متن باشد و موتور گفتار بیتقصیر باشد. ولی با آن میشود دستههای مشکلدار را سریع پیدا کرد. بعد آن دستهها را با گوش بررسی کنید. این نمونهها را در آزمایش خود بگذارید:
- شماره موبایل و تلفن ثابت، با صفر اول.
- کد رهگیری، شماره فاکتور و کد پستی.
- مبلغ، تاریخ شمسی و ساعت.
- نام برند، نام محصول و نام شهرهای کمتر شناختهشده.
- جملههایی که فارسی و لاتین در آنها قاطی شده است.
واژهنامه تلفظ برای نامهای خاص
نام برند شما احتمالاً در داده آموزشی هیچ موتوری نبوده است. واژهنامه تلفظ فهرستی است که میگوید هر نام خاص چطور باید گفته شود. پیش از رسیدن متن به موتور، نام با شکل نوشتاریای جایگزین میشود که موتور درست میخواند. اصل نام هم در متن گفتگو دستنخورده میماند.
شروع این فهرست ساده است: نام شرکت، محصولهای اصلی و چند اصطلاح تخصصی کار شما. بعد هر بار که اشتباهی شنیدید، به فهرست اضافهاش کنید.
جواب را برای گوش بنویسید
آمادهسازی متن فقط درباره عدد نیست. متنی که برای خواندن نوشته شده، برای شنیدن همیشه مناسب نیست. چشم میتواند برگردد و دوباره بخواند، گوش نمیتواند. برای همین جواب صوتی این ویژگیها را میخواهد:
- جملههای کوتاه: جمله بلند با چند «که» در گفتار گم میشود.
- بدون فهرست و جدول: ستاره، خط تیره و شمارهگذاری نباید خوانده شوند. متن را به جملههای پشت هم تبدیل کنید.
- بدون لینک: کسی نشانی طولانی وب را از روی صدا یادداشت نمیکند. بگویید لینک را روی صفحه یا با پیام میفرستید.
- یک چیز در هر نوبت: بهجای گفتن پنج گزینه، بپرسید مشتری کدام را میخواهد.
- تکرار شماره مهم: برای شناسهها به مشتری فرصت بدهید و در صورت نیاز تکرار کنید.
این قاعدهها را میشود به دستور سیستمی دستیار صوتی اضافه کرد. بر خلاف تبدیل رقم، اینجا سبک نوشتن مهم است و مدل زبانی میتواند کمک کند. برای اصول نوشتن گفتگو، راهنمای طراحی مکالمه را هم ببینید.
مسیر کامل یک جمله تا صدا
این چند مرحله را کنار هم بگذارید تا تصویر کامل شود. فرض کنید مدل زبانی این جمله را نوشته است: «کد رهگیری شما ۴۸۲۷۱۹۰۳ است.»
- متن اصلی همانطور که هست در رشته گفتگو ذخیره میشود و روی صفحه میآید.
- برای گفتار، رقمها یکدست و شناسه تشخیص داده میشود.
- شناسه به کلمه تبدیل میشود: «چهار، هشت، دو، هفت، یک، نه، صفر، سه».
- نامهای خاص از روی واژهنامه تلفظ جایگزین میشوند.
- متن آماده به موتور گفتار میرود و صدا پخش میشود.
نکته مهم این است که دو نسخه از یک متن داریم: یکی برای چشم و یکی برای گوش. اگر این دو را یکی بگیرید، یا صفحه پر از کلمههایی میشود که باید رقم باشند یا صدا رقمها را غلط میخواند. برای آشنایی با کاربرد دستیار صوتی در مرکز تماس، دستیار صوتی در مخابرات را هم بخوانید.
نمونه عملی: گفتار فارسی در مانوتل
بهعنوان نمونه، تماس صوتی هوشمند مانوتل را ببینید. مانوتل، محصولی از کارن تکنولوژی، پیش از گفتار متن را آماده میکند: عددهای بلند مثل تلفن و کد رهگیری رقمبهرقم به کلمه فارسی تبدیل میشوند. این تصمیم از آزمایش رفتوبرگشت آمده است؛ آزمایش نشان داده موتور گفتار رشته رقم را درست نمیخواند.
برای نام برند و اسامی خاص هم واژهنامه تلفظ دارد که برای هر دستیار تنظیم میشود. متن کامل تماس هم در رشته گفتگو میماند، پس مشتری چیزی را که شنیده میتواند بخواند.

میخواهید دستیار صوتی فارسی را بشنوید؟
جلسه شناخت ۳۰ دقیقهای، رایگان و بدون تعهد.
پرسشهای متداول
چون مصوتهای کوتاه و کسره اضافه در نوشتار نمیآیند، یک نویسه چند شکل دارد و نیمفاصله یکدست رعایت نمیشود. موتور باید خیلی چیزها را از روی جمله حدس بزند. عددها و نامهای خاص هم این کار را سختتر میکنند.
یعنی هر چیزی که کلمه نیست پیش از ساختن صدا به شکل گفتنی درآید: عدد، تاریخ، مبلغ و کوتهنوشت. این مرحله اگر درست انجام نشود، صدا هر چقدر هم طبیعی باشد نتیجه غلط است.
نه. رقمبهرقم برای شناسههاست، مثل شماره تلفن، کد رهگیری و کد پستی. مبلغ و تعداد باید به شکل عدد عادی خوانده شوند، چون شنونده به اندازه آنها توجه میکند نه به تکتک رقمها.
متن را به گفتار تبدیل میکنید، گفتار را دوباره به متن برمیگردانید و دو متن را مقایسه میکنید. این آزمایش کامل نیست، ولی دستههای مشکلدار را زود نشان میدهد و بعد میشود آنها را با گوش بررسی کرد.
چون مدل زبانی گاهی این دستور را رعایت نمیکند یا رقمی را جابهجا میکند. تبدیل عدد به کلمه کاری قطعی است و یک تکه کد ساده همیشه همان نتیجه را میدهد و میشود آن را آزمایش کرد.
شماره تلفن با صفر اول، کد رهگیری، مبلغ، تاریخ شمسی، نام برند و جملههای دارای کلمه لاتین را با متن واقعی کسبوکار خودتان امتحان کنید. نمونههای آماده معرفی، معمولاً این موارد سخت را نشان نمیدهند.
بهتر است نه. اگر کانال اجازه میدهد، متن تماس یا شماره را روی صفحه هم نشان بدهید. شنیدن یک رشته طولانی رقم سخت است و دیدن همزمان آن، احتمال خطا را کم میکند.





