تشخیص پایان حرف مشتری در تماس صوتی: ۸۰۰ میلیثانیهای که همهچیز را عوض میکند
در گفتگوی تلفنی معمولی کسی به شما نمیگوید حرف طرف مقابل تمام شده است. خودتان میفهمید. برای دستیار صوتی، همین تصمیم ساده یکی از سختترین بخشهای کار است. اگر زود تصمیم بگیرد وسط حرف مشتری میپرد و اگر دیر تصمیم بگیرد، گفتگو کند و بیجان میشود. در این مقاله میبینید VAD چیست، کف نویز و هیسترزیس چه کاری میکنند و چرا مکثهای فارسی این تصمیم را سختتر میکند.
محصول آماده کارن تکنولوژی
این را روی داده واقعی کسبوکار خودتان ببینید
آنچه در این مقاله میخوانید، در محصولات کارن پیادهسازی شده است. در جلسه دمو، همان را روی داده و فرآیند خودتان اجرا میکنیم.
درخواست دمو رایگان یا تماس بگیرید: ۰۲۱-۸۸۶۱۴۲۸۲در این صفحه
VAD چیست
VAD کوتاهشده Voice Activity Detection است؛ یعنی تشخیص اینکه در این لحظه کسی حرف میزند یا نه. دقت کنید: VAD نمیفهمد چه گفته میشود. فقط میگوید «صدای گفتار هست» یا «نیست». فهمیدن کلمهها کار مرحله بعد، یعنی تبدیل گفتار به متن است.
یک دستیار صوتی این خط لوله را دارد: گوش دادن، تشخیص پایان نوبت، تبدیل گفتار به متن، ساختن جواب و تبدیل متن به گفتار. VAD اول این زنجیره نشسته است و اگر اشتباه کند، هر چقدر هم مراحل بعدی خوب باشند، تجربه مشتری خراب میشود.
سادهترین شکل VAD شدت صدا را با یک آستانه مقایسه میکند. روشهای پیشرفتهتر با مدلهای آموزشدیده کار میکنند و گفتار را از بقیه صداها بهتر جدا میکنند. اصلهایی که در ادامه میخوانید در هر دو به کار میآیند.
تعادل سخت: زود قطع کردن یا دیر جواب دادن
رایجترین راه برای تشخیص پایان نوبت این است: اگر سکوت به اندازه مشخصی طول کشید، حرف تمام شده است. همه مسئله در همین «اندازه مشخص» است.
| مقدار سکوت | چه اتفاقی میافتد |
|---|---|
| خیلی کوتاه | دستیار وسط جمله میپرد و جمله نصفه به مرحله بعد میرود. جواب هم بیربط میشود. |
| خیلی بلند | مشتری حرفش را تمام کرده و منتظر است، ولی دستیار هنوز سکوت میشمارد. گفتگو کند به نظر میرسد و مشتری میپرسد «الو؟» |
این مقدار هیچ عدد جهانی ندارد. به زبان، به نوع مکالمه و حتی به این که مشتری چه چیزی میگوید بستگی دارد. کسی که یک شماره طولانی را میخواند، بیشتر از کسی که «بله» میگوید مکث میکند.
چرا مکث فارسی مهم است
گوینده فارسی در میانه جمله هم مکث میکند. فعل در جمله فارسی معمولاً آخر میآید. پس اگر کسی بگوید «میخواستم سفارشم رو...» و برای پیدا کردن کلمه مکث کند، هنوز فعل نیامده و جمله تمام نیست. دستیاری که این مکث را پایان حرف بداند، جمله نصفه را پردازش میکند.
به این مکثها، مکثهای طبیعی پیدا کردن شماره سفارش روی برگه یا گرفتن یک تصمیم کوچک را هم اضافه کنید. برای همین مقداری که برای یک زبان یا یک موتور پیشفرض است، لزوماً برای گفتگوی فارسی درست نیست و باید با گفتگوی واقعی فارسی آزمایش شود.
کف نویز: چرا آستانه ثابت جواب نمیدهد
اگر بگویید «هر صدایی بلندتر از این مقدار، گفتار است»، در اتاق ساکت خوب کار میکند و کنار خیابان نه. مشتری با میکروفون گوشی، هدست یا لپتاپ تماس میگیرد و هر کدام سطح صدای متفاوتی دارد. در محیط پرنویز، سکوت هرگز تشخیص داده نمیشود و دستیار تا ابد منتظر میماند.
راهحل این است که اول خود محیط اندازهگیری شود. به سطح صدای محیط در نبود گفتار، کف نویز میگویند. سیستم در لحظههای اول تماس این سطح را میسنجد و آستانه را از روی آن میسازد، نه از روی یک عدد ثابت. اینطور هر تماس آستانه خودش را دارد.
هیسترزیس: دو آستانه به جای یک آستانه
فرض کنید صدا درست حول و حوش آستانه بالا و پایین میرود. با یک آستانه، سیستم مدام میگوید «حرف میزند، نمیزند، حرف میزند» و نوبتهای خالی و تکهتکه میسازد.
راهحل هیسترزیس است: دو آستانه جدا. برای «شروع گفتار» صدا باید از آستانه بالاتر رد شود و برای «پایان گفتار» باید از آستانه پایینتر هم پایین بیاید. بین این دو، وضعیت قبلی حفظ میشود. ترموستات اتاق هم همین کار را میکند: در یک دمای دقیق مدام روشن و خاموش نمیشود.
یک قاعده دیگر هم لازم است: صدای خیلی کوتاه مثل سرفه، بستن در یا برخورد چیزی به میکروفون نباید نوبت حساب شود. برای همین حداقل طولی برای گفتار در نظر گرفته میشود.
سکوت فقط بخشی از زمان انتظار است
مشتری از لحظهای که حرفش تمام میشود منتظر است. این انتظار از چند تکه ساخته میشود: زمان شمردن سکوت، تبدیل گفتار به متن، ساختن جواب و رسیدن اولین صدا.
پس اگر برای پرهیز از قطع کردن، سکوت بیشتری میخواهید، باید بقیه تکهها را کوتاه کنید. مهمترین راه، پخش جریانی است: صدا تکهتکه میرسد و پخش پیش از تمام شدن تولید شروع میشود. مشتری زودتر چیزی میشنود، حتی اگر کل جواب هنوز ساخته نشده باشد.
نوبتگیری و قطع کردن حرف دستیار
تشخیص پایان حرف فقط نیمی از نوبتگیری است. گفتگوی طبیعی این را هم دارد که آدمها وسط حرف هم میآیند. به این قابلیت barge-in میگویند: مشتری وسط حرف دستیار شروع به صحبت میکند و دستیار باید ساکت شود.
برای اینکه این کار مرتب انجام شود، معمولاً از یک ماشین حالت استفاده میشود: گوش دادن، فکر کردن، صحبت کردن. هر حالت میداند با چه رویدادی به حالت بعد برود.
یک دام رایج هم پژواک است. میکروفون ممکن است صدای خود دستیار را از بلندگو بگیرد و سیستم فکر کند مشتری حرف زده است. برای همین حذف پژواک و آزمایش با بلندگوی واقعی مهم است.
فراتر از سکوت: وقتی معنی هم کمک میکند
سکوت تنها نشانه پایان حرف نیست. انسان به معنی هم گوش میدهد. وقتی کسی میگوید «میخواستم بپرسم که...» میدانید هنوز تمام نشده است، حتی اگر مکث کند. وقتی میگوید «همین، ممنون» میدانید تمام شده است.
برای همین برخی سیستمها کنار سکوت از متن هم استفاده میکنند: متنی که تا این لحظه از گفتار به دست آمده را میسنجند و حدس میزنند جمله کامل است یا نه. این روش میتواند هم انتظار را کم کند و هم قطع کردن را، ولی پیچیدگی و هزینه هم اضافه میکند. کیفیتش برای فارسی محاورهای هم باید جداگانه آزمایش شود.
پس برای بیشتر تیمها، نقطه شروع معقول همان VAD خوب با کف نویز و هیسترزیس و مقدار سکوت آزمایششده است. لایههای بعدی را وقتی اضافه کنید که با داده بدانید کجا مشکل دارید. اگر مشتریها بیشتر از کندی گله دارند، راهحلش با وقتی که از قطع شدن گله دارند فرق میکند.
وقتی مشتری حرف نمیزند یا دستیار جواب ندارد
طراحی نوبتگیری فقط برای حالت خوب نیست. چند حالت دیگر هم باید فکر شده باشند:
- سکوت طولانی: مشتری شاید پرسش را نشنیده یا میکروفونش کار نمیکند. دستیار باید یک بار با جمله کوتاهی بپرسد، نه اینکه تا ابد منتظر بماند.
- صدای پسزمینه: اگر کسی کنار مشتری حرف میزند، VAD آن را هم گفتار میداند. تبدیل گفتار به متن هم چیز بیربطی مینویسد. دیدن متن روی صفحه به مشتری کمک میکند خطا را زود بفهمد.
- نبود جواب: مثل چت، دستیار صوتی هم نباید حدس بزند. جواب باید از دانش سازمان بیاید و در نبودش، تماس به انسان برسد.
- طولانی شدن تماس: سقف مدت تماس هم جلوی هزینه ناخواسته را میگیرد و هم جلوی تماسهایی که باز ماندهاند.
چند قدم برای تنظیم در کار واقعی
- با گفتگوی واقعی فارسی آزمایش کنید، نه متن خواندهشده از روی برگه.
- محیطهای مختلف را امتحان کنید: اتاق ساکت، خیابان، خودرو، و میکروفونهای مختلف.
- جملههای پر از مکث و خواندن شماره را هم آزمایش کنید.
- نوبتهای قطعشده و نوبتهای خالی را جدا بشمارید. اینها دو خطای متفاوتاند.
- هر تغییری را با شنیدن چند تماس کامل بسنجید، نه فقط یک عدد.
برای دیدن کاربرد دستیار صوتی در یک صنعت، دستیار صوتی در مرکز تماس مخابرات را هم بخوانید.
نمونه عملی: ۸۰۰ میلیثانیه در مانوتل
بهعنوان نمونه، تماس صوتی هوشمند مانوتل، محصولی از کارن تکنولوژی، VAD را در مرورگر اجرا میکند. ۷۰۰ میلیثانیه اول تماس، کف نویز اتاق اندازهگیری میشود و آستانه از رویش ساخته میشود. دو آستانه با هیسترزیس (روشن و خاموش) جلوی نوبتهای خالی را میگیرند و صدای کوتاه مثل سرفه نوبت حساب نمیشود.
پایان نوبت ۸۰۰ میلیثانیه سکوت است، چون فارسی مکث میانجملهای دارد و کمتر از این، وسط حرف میپرد. این عدد انتخاب مانوتل برای گفتگوی فارسی است، نه قاعدهای برای همه سیستمها.
نوبتگیری در سرور با ماشین حالت گوش دادن، فکر کردن و صحبت کردن انجام میشود. صدا هم پخش جریانی دارد. اگر مشتری وسط حرف دستیار شروع به صحبت کند، پخش همان لحظه میایستد و تولید صدا در سرور هم لغو میشود. جواب از همان دستیار و همان دانش چت میآید و اگر دستیار جواب را نداشت، تماس به کارشناس ارجاع میشود. برای هر دستیار سقف مدت تماس هم تنظیم میشود.

میخواهید نوبتگیری فارسی را خودتان امتحان کنید؟
جلسه شناخت ۳۰ دقیقهای، رایگان و بدون تعهد.
پرسشهای متداول
کوتاهشده Voice Activity Detection است؛ سازوکاری که تشخیص میدهد در این لحظه کسی حرف میزند یا نه. دستیار صوتی با کمک آن میفهمد کی گوش بدهد و کی نوبت خودش است.
VAD فقط میگوید گفتار هست یا نیست و کاری به معنی کلمهها ندارد. تبدیل گفتار به متن کلمهها را مینویسد. VAD پیش از آن کار میکند و مشخص میکند کدام تکه صدا باید پردازش شود.
نه. مقدار مناسب به زبان، نوع گفتگو و محیط بستگی دارد. این عدد را باید برای کار خودتان با تماسهای واقعی آزمایش کنید و ببینید چند بار وسط حرف پریده میشود و چند بار پاسخ کند به نظر میرسد.
چون نزدیک میکروفون است و برای تصمیم گرفتن منتظر رفتوبرگشت شبکه نمیماند. فایده دیگرش این است که سکوت و صدای بیمصرف میتواند پیش از رسیدن به پردازشهای بعدی کنار گذاشته شود.
آستانه را از روی نویز همان تماس بسازید، نه یک عدد ثابت. از حذف نویز و پژواک مرورگر و دستگاه هم استفاده کنید و حتماً یک راه جایگزین مثل گفتگوی متنی یا ارجاع به کارشناس بگذارید.
یعنی برای روشن و خاموش شدن دو آستانه جدا بگذارید تا سیستم با نوسان کوچک صدا مدام بین دو حالت عوض نشود. مثل ترموستات که در یک دمای دقیق پشتسرهم روشن و خاموش نمیشود.
زمان انتظار را تکهتکه ببینید: سکوت پایان نوبت، تبدیل گفتار به متن، ساختن جواب و رسیدن اولین صدا. پخش جریانی معمولاً بیشترین اثر را روی حس سرعت دارد، چون مشتری زودتر چیزی میشنود.





