دنیای باحال RepeaTTS: کشف ویژگی‌های جدید با فاین‌تیونینگ چندباره!

Fall Back

بذار همین اول کار یه تصویر کلی بهت بدم از چیزی که دارم درباره‌ش حرف می‌زنم. تو حوزه هوش مصنوعی و صدا، یه موضوع هست به اسم Text-To-Speech یا همون تبدیل متن به گفتار که خلاصه‌ش میشه TTS. این یعنی با استفاده از هوش مصنوعی، هر متنی رو که بدی، برات صدا درمیاره؛ کاملاً شبیه آدم واقعی حرف میزنه! حالا یه مدل‌هایی اومدن که حتی میشه با دستورهای زبان طبیعی (یعنی راست‌راستکی با جمله‌های معمولی خودمون مثل «آروم‌تر حرف بزن» یا «با صدای زنونه بخون») بهشون بگی چطور صحبت کنن. به چنین مدلی میگن Prompt-based Text-To-Speech. خلاصه‌ش اینه: مدلی که با پیام‌های ساده کاربر صدا تولید میکنه و باهاش راحت میشه رفتار کرد.

ولی بیاید رک حرف بزنیم؛ این مدل‌ها یه سری مشکل هم دارن. اولین ایراد اینه که کنترل کاربر روی جزئیات صدا (مثل سرعت، جنسیت و اینا) فقط همون چیزهاییه که موقع آموزش، خود مدل دیده. یعنی اگه بخوای چیزی خارج از محدوده‌ای که بهش یاد دادن تغییر بدی، جواب نمی‌گیری! دوم اینکه از یه طرف، زیادی انعطاف‌پذیرن و هر بار خروجی مدل ممکنه فرق کنه؛ یعنی مثلا دو بار یه جمله رو بدی، هر بار با یه استایل متفاوت میگه! اینم بعضی وقتا اعصاب‌خورد‌کنه.

این جاست که پژوهش جدیدی به اسم RepeaTTS وارد میشه. بچه‌های باهوش این مقاله، اومدن یه راه خلاقانه برای پیدا کردن و استفاده از ویژگی‌های پنهانی مدل پیدا کردن. اولش گفتن: بیاید همین تنوع کنترل‌نشده خروجی مدل رو تبدیل به فرصت کنیم! به زبان ساده، میان از مدل هزاران نمونه صدا تولید می‌کنن، بعد با یه تکنیک ریاضی به اسم Principal Component Analysis یا همون PCA (که تو یادگیری ماشین یعنی اینکه می‌فهمن کدوم ویژگی‌های پنهان مدل—که بهشون میگن نهفته یا لَتِنت—بیشترین تاثیر رو رو خروجی دارن) کارای جالبی می‌کنن: اون ویژگی‌هایی که بیشترین تفاوتو ایجاد می‌کنن رو جدا می‌کنن و به عنوان لیبل جدید به مدل میدن.

البته منظورم از لیبل همین برچسبیه که به داده‌ها میدن تا مدل بهتر بفهمه چه رفتاری نشون بده. یعنی اگه اون ویژگی رو هم اضافه کنی به آموزش، مدل کم‌کم اونُم یاد می‌گیره و کنترل‌پذیریش بالا میره!

برای آزمایش، این روشو روی دو مدل مختلف که با دیتاست گفتار آیسلندی آموزش دیده بودن امتحان کردن. این دیتاست هم خودش کلی صداهای متنوع و حتی نمونه‌های احساسی داره (یعنی گوینده‌ها با لحن و احساسات مختلف جمله‌ها رو می‌گن). یه مدل رو با لحن احساسی داده بودن و یکی بدون. جالب اینجاست که روی مدلی که هیچ برچسب احساسی بهش نداده بودن، این روش نتیجه‌ای باحال داد: هم ویژگی‌های پیوسته (یعنی چیزی بینابینی، مثل افزایش تدریجی یه گزینه) و هم ویژگی‌های گسسته (یعنی دیگه باینری، مثلاً مرد یا زن) رو تونستن کنترل کنن و کلّی قدرت کنترل مدل بیشتر شد!

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

منبع: +