وقتی یک فایل صوتی فارسی را به یک سرویس رونویسی میدهی و چند ثانیه بعد متن تحویل میگیری، اتفاقی که افتاده اصلاً ساده نیست. این نوشته مسیر را باز میکند: از موج صدا تا جملهٔ فارسی، و اینکه دقیقاً کجاها خطا وارد کار میشود.
مرحلهٔ اول: صدا عدد میشود
میکروفون فشار هوا را به ولتاژ تبدیل میکند و کارت صدا آن را نمونهبرداری میکند — معمولاً ۱۶ هزار بار در ثانیه برای گفتار. خروجی، یک رشتهٔ طولانی از عدد است. یک جلسهٔ یکساعته تقریباً ۵۷ میلیون عدد میشود.
هیچ مدلی این حجم خام را مستقیم نمیخورد. پس صدا به قطعههای کوچک بریده میشود و هر قطعه به یک نمایش فشرده تبدیل میشود که فرکانسهای مهم گفتار را نگه میدارد و بقیه را دور میریزد. این همان چیزی است که در متون فنی «طیفنگاره» یا اسپکتروگرام نامیده میشود: تصویری از اینکه در هر لحظه چه فرکانسهایی فعال بودهاند.
نکتهٔ عملی: کیفیت این مرحله سقف کیفیت کل سیستم است. میکروفون بد، اتاق پژواکدار، یا فشردهسازی شدید فایل، اطلاعاتی را از بین میبرد که هیچ مدلی بعداً نمیتواند بازسازیشان کند.
مرحلهٔ دوم: تشخیص اینکه اصلاً کسی حرف میزند
در یک جلسهٔ واقعی، بخش زیادی از فایل سکوت است یا صدای محیط. قبل از هر پردازش سنگینی، سیستم باید بازههای گفتار را از بازههای غیرگفتار جدا کند. این کار هم هزینهٔ پردازش را پایین میآورد و هم جلوی یک خطای آزاردهنده را میگیرد: مدلهای گفتار به متن وقتی به سکوت میرسند تمایل دارند چیزی از خودشان بسازند.
در همین مرحله معمولاً تفکیک گوینده هم انجام میشود: سیستم مشخصات صوتی هر بازه را با بقیه مقایسه میکند و بازهها را خوشهبندی میکند. خروجی این است که «از ثانیهٔ ۱۲ تا ۲۸ گویندهٔ ۱ حرف زده». اینکه گویندهٔ ۱ چه کسی است، تصمیم جداگانهای است.
اینجا سختترین حالت، همپوشانی است — دو نفر که روی هم حرف میزنند. در جلسههای فارسی که فضای گفتوگو معمولاً غیررسمیتر است، این حالت زیاد پیش میآید.
مرحلهٔ سوم: از صدا به حرف
حالا نوبت مدل اصلی است. مدلهای امروزی گفتار به متن، رمزگذار-رمزگشا هستند: بخش اول صدا را میخواند و به یک نمایش داخلی تبدیل میکند، بخش دوم آن نمایش را به متن مینویسد — کاراکتر به کاراکتر یا قطعهواژه به قطعهواژه.
نکتهٔ مهم این است که مدل، همزمان دو کار میکند: هم میشنود، هم حدس میزند. وقتی صدا مبهم است، مدل بر اساس آنچه تا اینجا نوشته، محتملترین ادامه را انتخاب میکند. این خاصیت باعث میشود خروجی روان بهنظر برسد حتی وقتی اشتباه است — و همین آن را خطرناک میکند. یک متن رونویسی غلطِ روان، خیلی دیرتر از یک متن ناقصِ آشکارا خراب لو میرود.
مرحلهٔ چهارم: تمیزکاری فارسی
خروجی خام مدل، فارسیِ قابلانتشار نیست. چند کار باید رویش انجام شود:
- نیمفاصله. «می رود» باید بشود «میرود». مدل عمومی معمولاً این را رعایت نمیکند و متن ظاهر شلختهای پیدا میکند.
- یکسانسازی حروف. «ي» و «ك» عربی باید به «ی» و «ک» فارسی تبدیل شوند، وگرنه جستوجو در آرشیو جلسات نتیجه نمیدهد.
- اعداد. تصمیم اینکه «بیست و سه» بماند یا «۲۳» شود، به کاربرد بستگی دارد. برای استخراج ددلاین، شکل عددی لازم است.
- نقطهگذاری. گفتار نقطه و ویرگول ندارد. اینها را مدل از روی مکث و آهنگ جمله حدس میزند و خطایش کم نیست.
چرا فارسی در هر چهار مرحله سختتر از انگلیسی است را جداگانه در فارسی برای مدلهای زبانی چرا سخت است نوشتهایم.
خطا کجا وارد میشود
در عمل، بیشتر خطاهایی که کاربر میبیند از سه جا میآیند:
- اسمهای خاص. اسم آدمها و شرکتهای ایرانی در دادهٔ آموزشی مدلهای عمومی کماند. و اسم اشتباه یعنی کاری که به هیچکس نسبت داده نمیشود.
- واژهٔ انگلیسی وسط جملهٔ فارسی. «این ticket رو تا sprint بعد close میکنیم» جملهٔ کاملاً عادی یک تیم فنی است. مدلی که وسط جمله باید زبان عوض کند، جای زیادی برای خطا دارد.
- صدای دور از میکروفون. نفری که ته اتاق نشسته، عملاً برای سیستم وجود ندارد.
چرا این برای جلسه مهم است
رونویسی بهتنهایی خروجی قابلاستفادهای نیست؛ یک متن هشتهزارکلمهای است که کسی نمیخواندش. ارزش واقعی وقتی ساخته میشود که روی این متن یک لایهٔ تحلیل هوشمند جلسات بنشیند و از آن خلاصه، تصمیم و کارِ صاحبدار بیرون بکشد.
و چون آن لایه ورودیاش همین متن است، هر درصد خطای رونویسی مستقیماً به خلاصه منتقل میشود. برای همین ما دقت را جدی میگیریم و روش سنجشمان را در دقت رونویسی را چطور اندازه میگیریم شفاف نوشتهایم.