- مستندات
- تبدیل متن به صوت
- استفادهی صحیح از سرویس TTS
استفادهی صحیح از سرویس TTS
امکان استفاده از سرویس TTS ستون در جملههایی که با فارسی استاندارد نوشته شده باشند فراهم شده است و TTS ستون از فارسی گفتاری یا محاوره پشتیبانی نمیکند. بهعنوان مثال جملهی «ما به تئاتر شهر میریم» باید به جملهی «ما به تئاتر شهر میرویم» تبدیل شود.
هیچ محصول مبتنی بر هوش مصنوعی بدون خطا نیست! در نتیجه ممکن است کلمات ورودی، گاهی اشتباه تلفظ شوند. این اشتباه ممکن است ناشی از اضافه یا کم گذاشتن یک کسرهی اضافه ، استفاده از تلفظ نادرست کلمات همنگاشت (مثلا کُشتی و کِشتی) یا تلفظ نادرست کلمات خارجی موجود در فارسی (مثلا الیناسیون) باشد. دو ابزار برای بهبود تلفظ در موارد این چنیت فراهم شده است :
فرض کنید عبارت «ما به تئاتر شهر میرویم» به شکل «mA be te'Atr Sahr miruyam» خوانده شود. با تغییر ورودی به صورت «ما به تئاترِ شهر میرَویم»، تلفظ اصلاح شده و بهصورت «mA be te'Atre Sahr miravim» خوانده خواهد شد.
یا مثلا در عبارت «پیرمرد عصا داشت» اگر خروجی به شکل «piremarde 'asA dASt» باشد، میتوانیم با گذاشتن سکون به شکل «پیرمردْ عصا داشت» تلفظ را به «piremard 'asA dASt» تغییر دهیم.
در صورتی که با حرکتگذاری به تلفظ مورد نظرتان نرسیدید، میتوانید از طریق آوانگاری کلمات با حروف انگلیسی، تلفظ دقیقِ مد نظرتان را در ورودی به سرویس بدهید. مثلا
«'emruz, sizdahome bahman, qeymate dolAr bisto se hezAro nohsad tomAn 'ast.»
یک آوانگاری صحیح برای ورودی دادن به سرویس است.
لیست زیر آواهای پشتیبانی شده در سرویس را نشان میدهد.
آوا | معادل تقریبی | مثال - فونیم | مثال - فارسی |
' | ع/همزه | sa'Adat | سعادت |
a | فتحه | zirak | زیرک |
A | آ | rAst | راست |
b | ب | bepiCid | بپیچید |
C | چ | Cap | چپ |
d | د | bepiCid | بپیچید |
e | کسره | bepiCid | بپیچید |
f | ف | Sarif | شریف |
g | گ | sobhgAh | صبحگاه |
h | ه | sohrAb | سهراب |
i | ی | zirak | زیرک |
j | ج | javAb | جواب |
k | ک | zirak | زیرک |
l | ل | livAn | لیوان |
m | م | mard | مرد |
n | ن | nAn | نان |
o | ضمه | omid | امید |
p | پ | Cap | چپ |
q | ق | qarn | قرن |
r | ر | zirak | زیرک |
s | س | sotun | ستون |
S | ش | Sarif | شریف |
t | ت | moratab | مرتب |
u | و | 'in su | این سو |
v | و | varzeS | ورزش |
x | خ | xiAbAn | خیابان |
y | ی | 'Ayene | آینه |
z | ز | zirak | زیرک |
Z | ژ | moZe | مژه |
خوانش اعداد شامل ارقام فارسی و انگلیسی در سرویس تبدیل متن به صوت شامل چند دسته میشود که در ادامه هر دسته توضیح داده میشود.
در حالت عادی، اعداد ۴ رقمی و کمتر، بهصورت سر هم خوانده میشوند. اما این امکان وجود دارد تا با کاراکتر «٬» (جدا کنندهی فارسی ارقام، که در صفحهکلید استاندارد فارسی به شکل Shift+2 قابل نوشتن است) یا کاراکتر «'» (تک کوتیشن) اعداد بهصورت کامل خوانده شوند. همچنین مبالغی که منتهی به کلمهی «تومان» یا «ریال» باشند نیز به صورت کامل خوانده میشوند. به مثالهای زیر توجه کنید:
- نویسه: «کد تایید ، ۱۲۴۶» تلفظ: «kode ta'yid , hezAro devisto Cehelo SeS»
- نویسه: «اعداد بزرگی مانند ۲۵۰۰۰۰۰۰» تلفظ: «'a'dAde bozorgi mAnande bisto panj , SeSsefr»
- نویسه: «اعداد بزرگی مانند ۲۵٬۰۰۰٬۰۰۰» تلفظ: «'a'dAde bozorgi mAnande bisto panj milyun»
- نویسه: «چک به مبلغ ۲۰۰۰۰۰۰ ریال» تلفظ: «Cek be mablaqe do milyun riyAl»
استفادهی غلط: نویسه: «چک به مبلغ ۲۰۰۰۰۰۰ میلیون ریال» تلفظ: «Cek be mablaqe do milyun milyun riyAl»
در حالت عادی، اعداد بیش از ۴ رقم، از سمت چپ، دو رقم دو رقم جدا شده و خوانده میشوند. هم چنین این امکان وجود دارد که خوانش اعداد از جای دلخواه شکسته شود که در این صورت با کاراکتر «-» (دش) یا «،» (ویرگول فارسی) یا «,» (ویرگول انگلیسی) میتوان بخشهای مختلف را از هم جدا کرد. دقت کنید که کاراکتر «.» (نقطه) و «٫» (ممیز فارسی، قابل نوشتن با Shift+3 در کیبورد استاندارد فارسی) به معنای ممیز هستند. برای شمارههای تلفن، در صورت وجود علامت «+» اول شماره، لازم است تا این علامت اول شماره نوشته شود و در صورتی که نویسهی آن بهشکل «۹۸۲۱۳۳+» باشد (یعنی نوشتن عدد و سپس نوشتن علامت مثبت)، خطا برگردانده میشود. به مثالهای زیر توجه کنید:
«کد تایید ، ۱۲۴۶۳۷۲ «kode ta'yid , davAzdah , Cehelo SeS , sisado haftAdo do»
«کد تایید ، ۱۲-۴۶۳-۷۲» «kode ta'yid , davAzdah , CAhArsado Sasto se , haftAdo do»
«شماره تلفن +۹۸۲۱۳۳۳۰۰۰۰۴» «SomAreye telefone mosbate navado haSt , bisto yek , siyo se , si , sesefr , CAhAr»
«شماره موبایل 0930-125-76-80» «sefr , nohsado si , sado bisto panj , haftAdo SeS , haStAd»
«شماره تلفن ۹۸۲۱۳۳۰+» «error»
«نمره ۱۹.۷۱ در درس ریاضی» «nomreye nuzdaho haftAdo yek sadom dar darse riyAzi»
خوانش تاریخ به فرمت «روز/ماه/سال» است. مثلا «مدرسهها در تاریخ ۱۴۰۰/۰۷/۰۱ باز میشوند» به شکل «madresehA dar tArixe yeke hafte hezAro CAhArsad bAz miSavand» خوانده میشود. در صورت برعکس نوشتن تاریخ، خطا برگردانده میشود.
خوانش ساعت به فرمت «دقیقه:ساعت» و به شکل ۲۴ ساعت است. دقت کنید که عبارت «دقیقه» آخر خوانش ساعت بهطور خودکار اضافه خواهد شد. به مثالهای زیر توجه کنید:
«ساعت ۲۳:۰۵ به وقت تهران» «sA'ate bisto se'o panj daqiqeh be vaqte tehrAn»
«در ساعت ۹:۳۰ مغازه باز شد» «dar sA'ate noho si daqiqehe maqAzeye bAzSod»
«نیمه شب شرعی به وقت ۰۰:۰۳» «nimeye Sab Sar'i be vaqt se daqiqeye bAmdAd»
استفاده غلط: «ساعت ۲۳:۳۰ دقیقه» «sA'ate bisto se'o si daqiqehe daqiqe»
در صورتی که خوانش عددی با کسره به کلمهی بعدی خود بود، میتوان از علامت «ویرگول» بعد از آن استفاده کرد تا کسرهی اضافی حذف شود. مثلا اگر عبارت «تابستان ۱۴۰۰ گرم بود» بهصورت «tAbestAne hezAro CAhArsade garm bud»، میتوان ورودی را بهصورت «تابستان ۱۴۰۰ ، گرم بود» نوشت تا خروجی به «tAbestAne hezAro CAhArsad garm bud» تغییر کند.
در حال حاضر امکان خواندن حرف به حرف حروف انگلیسی و ترکیب آنها با اعداد در سرویس متن به صوت وجود دارد. مثلا عبارت «پرواز به شمارهی QB237» به صورت «parvAz be SomAreye kiyu bi devisto siyo haft» خوانده میشود. یا در عبارت «به سایت irgov مراجعه کنید» خوانش بهصورت «be sAyte 'Ay 'Ar ji 'o vi morAje'e konid» خواهد بود
با استفاده از علائم «ویرگول» و «نقطه» میتوانید در جمله مکث ایجاد کنید. برای مثال «بخشش، لازم نیست اعدامش کنید» مکث مناسب را برای ایجاد معنی مناسب ایجاد میکند.
در صورتی که چند علائم نگارشی پشت سر هم قرار بگیرند، تنها اولی آنها معنا میشود و بقیه نادیده گرفته میشوند.
در صورتی که ورودی از چند خط تشکیل شده باشد که با کاراکتر newline یا \n جدا شده باشند، میان هر خط به اندازه یک نقطه مکث میشود. برای مثال اگر ورودی به شکل زیر باشد:
«کاربر عزیز
لطفا شماره خود را وارد کنید»،
مکث این عبارت مشابه عبارت «کاربر عزیز . لطفا شماره خود را وارد کنید» خواهد بود.
در صورتی که نیاز دارید فایل صوتی بر بستر تلفن پخش شود، با توجه به اینکه خطوط تلفن نرخ نمونهبرداری ۸ کیلوهرتز را پشتیبانی میکند، نیاز است که در ورودی مقدار sample_rate_hertz را برابر 8000 قرار دهید.