اگر سؤال آزمون شما «تشخیص گفتار فردی که قبلاً در داده تنظیم ندیدهایم چقدر درست است؟» باشد، تقسیم تصادفی قطعهها کافی نیست. یک گوینده ممکن است در چند ضبط باشد؛ یک ضبط هم چند گوینده داشته باشد. نمونه این صفحه هر دو رابطه را نگه میدارد و سپس گروههای واقعاً جدا را بین آموزش و آزمون پخش میکند.
چرا یک ستون گروه همیشه کافی نیست؟
در داده آموزشی زیر، گوینده s1 در ضبط r1 و r2 حضور دارد؛ گوینده s2 هم در r2 صحبت کرده است. اگر فقط شماره ضبط را گروه بگیریم، s1 میتواند وارد هر دو بخش شود. اگر فقط گوینده را گروه کنیم، قطعههای یک ضبط مشترک ممکن است جدا شوند. وقتی هر دو جدایی برای سؤال شما لازماند، این سه قطعه یک مؤلفه مرتبط میسازند.
| فایل نمونه | گوینده | ضبط اصلی |
|---|---|---|
| a1.wav | s1 | r1 |
| a2.wav | s1 | r2 |
| b1.wav | s2 | r2 |
| c1.wav | s3 | r3 |
| d1.wav | s4 | r4 |
کد چه کاری انجام میدهد؟
نمونه کامل تقسیم گوینده و ضبط از کتابخانه استاندارد پایتون استفاده میکند. الگوریتم ابتدا ردیفهای دارای گوینده یا ضبط مشترک را به هم وصل میکند، سپس مؤلفهها را با ترتیب هش ثابت مرتب میکند. بخشی از مؤلفهها آزمون و بقیه آموزش میشوند؛ در پایان کد بهصراحت تقاطع شناسههای دو بخش را کنترل میکند.
اگر همه ردیفها یک گروه مرتبط بسازند، برنامه خطا میدهد. راه درست، پنهانکردن این خطا و شکستن گروه نیست؛ برای سؤال گوینده مستقل به داده مستقل بیشتری نیاز دارید. کد مدل آموزش نمیدهد، صوتی بارگذاری نمیکند و نشتهای دیگر مانند نسخه کپی متن را بهطور خودکار کشف نمیکند.
نسبت گروه با نسبت مدت یکی نیست
یک گروه ممکن است ده دقیقه و گروه دیگر دو ساعت باشد. بنابراین انتخاب یکسوم گروهها به معنی یکسوم مدت یا یکسوم واژهها نیست. پس از تقسیم، تعداد گوینده، ضبط، دقیقه و واژه مرجع هر بخش را گزارش کنید. در داده بزرگتر، توازن لهجه و کانال هم باید بررسی شود؛ برای بهترشدن امتیاز، نمونه دشوار آزمون را جابهجا نکنید.
روش اجرای قابل بازتولید
- برای هر قطعه شناسه ناشناس گوینده و ضبط مبدأ را آماده کنید. شماره تلفن و نام واقعی برای این نمونه لازم نیست.
- برشهای همان ضبط را به recording_id اصلی متصل کنید؛ عوضکردن نام فایل گروه تازه نمیسازد.
- کد نمونه را اجرا و خروجی فهرست train/test را ذخیره کنید؛ این خروجی صرفاً دفتر تقسیم است.
- شناسه مجموعه، هش فهرست و نسخه قواعد ارزیابی را کنار نتیجه WER یا CER نگه دارید.
- پس از استفاده آزمون برای تنظیم مدل، یک ارزیابی نهایی مستقل لازم دارید؛ همان فایل را تنها با نام تازه مستقل ننامید.
مستند GroupShuffleSplit در scikit-learn فرق تقسیم گروه و نمونه را توضیح میدهد. کد این مقاله پیادهسازی آن کتابخانه نیست؛ برای نمایش قید همزمان گوینده و ضبط، الگوریتم مستقل و کوچک ساخته شده است و تضمین توازن آماری ندارد.
راهنمای نشت داده در تحلیل تماس مسئله مشتری و پرونده را پوشش میدهد. خروجی این صفحه تقسیم اجرایی داده صوتی با قید گوینده و منبع است. برای بررسی اپرانگار، یک مجموعه مجاز با هدف آزمون روشن مطرح کنید؛ اگر محصول را تنظیم نمیکنید، بخش train را مجموعه توسعه معیار بنامید، نه شاهد آموزش واقعی سامانه.