طراحی یک خط لوله TTS با رویکرد نمونهمحور
تبدیل یک جمله کوتاه به صدا کار آسانی است. متن را به یک سرویس میفرستید، یک صدا را انتخاب میکنید و یک فایل دریافت میکنید.
متنهای طولانی چالش متفاوتی دارند.
وقتی از جملات به سمت مقالات، کتابها یا آموزشها میروید، سیستم باید چیزی فراتر از متن را مدیریت کند. سیستم باید ساختار، ریتم (pacing) و نویزهای ناشی از قالببندی را مدیریت کند.
من این موضوع را هنگام ساخت سیستم تولید صدا به سبک کتاب صوتی یاد گرفتم. برخورد با متن طولانی به عنوان یک فراخوانی (call) واحد TTS منجر به شکست میشود. پاراگرافهایی که روی صفحه خوب به نظر میرسند، اغلب هنگام خوانده شدن سنگین و خستهکننده هستند. عناوین خیلی نزدیک به جمله بعدی خوانده میشوند. دنبال کردن دیالوگها دشوار میشود.
بهترین راه برای ساخت این سیستم، استفاده از یک خط لوله (pipeline) نمونهمحور است.
بلافاصله کل صدا را تولید نکنید. در عوض، این مراحل را دنبال کنید:
- پاکسازی متن ورودی
- تقسیم متن به بلوکهای مناسب برای شنیدن
- تولید یک پیشنمایش کوتاه
- بررسی نمونه
- تولید محتوای کامل تنها در صورتی که نمونه موفقیتآمیز بود
پاکسازی متن، اولین و مهمترین مرحله است. اگر کاربران متنی را از یک فایل PDF یا یک صفحه وب کپی کنند، آن متن اغلب شامل شماره صفحه، سرتیترهای تکراری یا خطوط شکسته است. یک انسان هنگام خواندن این موارد را نادیده میگیرد، اما یک سیستم TTS آنها را با صدای بلند میخواند که تجربه شنیداری را خراب میکند. پاکسازی باید قبل از تولید صدا انجام شود.
مرحله بعد، تمرکز بر ساختار است. صدا فاقد نشانههای بصری است. شنوندگان به ریتم و مکثها متکی هستند. شما باید متن طولانی را به بلوکهای مختلف تقسیم کنید. هر بلوک باید نشاندهنده یک ایده یا یک صحنه باشد. این کار تلاش مجدد برای بخشهای ناموفق و ذخیرهسازی (cache) نتایج را آسانتر میکند.
حیاتیترین بخش، پیشنمایش است.
یک نمونه کوتاه به شما اجازه میدهد بدون هدر دادن زمان یا هزینه، تجربه کاربری را اعتبارسنجی کنید. فقط نپرسید که آیا صدا واقعی به نظر میرسد یا خیر؛ این سوالات را بپرسید:
- آیا ریتم (pacing) طبیعی است؟
- آیا مکثها در جای درست قرار دارند؟
- آیا دیالوگها واضح هستند؟
- آیا نویز ناشی از قالببندی وجود دارد؟
اگر صدا بد به نظر میرسد، همیشه مشکل از مدل صوتی نیست. اغلب، متن برای شنیده شدن آماده نبوده است.
یک گردش کار نمونهمحور، هزینه اشتباهات را کاهش میدهد. این روش برای کاربر ایمنتر و برای سیستم کارآمدتر است.
کیفیت صدا قبل از شروع فرآیند تولید آغاز میشود؛ کیفیت از ورودی شروع میشود.
انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi