سیری، کورتانا، گوگل ناو و دیگر دستیارهای صوتی چطور صدای انسان را درک میکنند؟
امروزه به راحتی میتوان از طریق دستورات صوتی، گوشی موبایل، تبلت، تلویزیون و چندین گجت دیگر را کنترل کنید و روز به روز بر تعداد و تنوع ابزارهایی که صدای انسان را متوجه میشوند، افزوده میشود. برخی از خودروها، دستورات را بصورت صوتی دریافت و اجرا میکنند و در آیندهی نه چندان دور خودروها میتوانند بدون لمس فرمان، شما را به مقصدی که به زبان آوردهاید برسانند.
دستیارهای صوتی همچون سیری اپل، الکسا آمازون، گوگل ناوِ گوگل و کورتانا مایکروسافت، همگی میتوانند آنچه به زبان میآورید را تشخیص داده و سپس در صورت امکان آنها را اجرا کنند. دستیارهای صوتی روز به روز قویتر شده و دستوراتی که قادر به انجام آنها هستند بیشتر و بیشتر میشود. به عنوان مثال کورتانا میتواند علاوه بر اجرای دستورات برایتان جک تعریف کند یا حتی شعر بخواند. الکسا نیز نه تنها به پرسشهای شما جواب میدهد بلکه میتواند ارتباط بین خانواده را بهتر کند و به عنوان یک معلم خانگی، به فرزندانتان آموزش دهد.
اما این سرویسها چطور کار میکنند؟ آنها چطور میتوانند کلماتی که به زبان میآورید را تشخیص داده و به دستورات قابل فهم برای کامپیوتر یا موبایل شما تبدیل کند و پس از اجرا، نتیجه را به زبان خود انسان خروجی دهد. تصور کنید که تک تک کلمات یک زبان را به کامپیوتر بدهیم و با صدای معادل هر کدام مطابقت دهیم به این ترتیب کامپیوتر میتواند کلماتی که به زبان میآورید را با فرهنگ لغت داخلی خود مقایسه کرده و در نهایت تشخیص دهد چه کلماتی را به زبان آوردهاید اما صرفا با درک هر کلمه نمیتوان مفهوم جمله را متوجه شد.
در همین راستا هر کدام از سرویسهای تشخیص صدا و دستیارهای صوتی، علاوه بر الگوهای تشخیص صدا، الگوهای پیشبینی جملات را نیز دارند. اگر تا به حال از دستیارهای صوتی مانند گوگل ناو استفاده کرده باشید یا بدنبال جستجوی موضوعی در گوگل باشید، پیش از آنکه کل جمله را به زبان بیاورید، پیشنهادهای بسیار نزدیک به آنچه در تلاش برای بیان آن هستید، پیشنهاد داده میشود. پس دستیارهای صوتی نه تنها تک تک کلماتی که به زبان میآورید را متوجه میشوند بلکه جملات را نیز درک میکنند اما کامپیوتر چطور به دانش درک جملات رسیده است؟
مدل سازی آگوستیک: شکل موجها و فونها
تشخیص صدا، فرایند بسیار پیچیدهای دارد که به واسطهی فناوریهای مدلسازی آکوستیک و مدلسازی زبان انجام میشود. مدلسازی آگوستیک در واقع فرایندی است که در آن موجهای صدا دریافت شده و توسط مدلهای از پیشتعریف شده، آنالیز میشود. معروفترین و رایجترین روشِ مدل سازی آکوستیک مدلسازی مخفی مارکوف (Hidden Markov Modeling) نام دارد که در آن مدلهای تلفظ با خرد کردن جملات انسان به بخشهای مختلف انجام میشود. در این سیستم به هر کدام از بخشها، فون (با گوشی موبایل یا تلفن همراهتان اشتباه نگیرید) گفته میشود. مایکروسافت در این روش پیشرو است و از سالها قبل در این زمینه تحقیق و فعالیت میکند. در این روش از مدلهای پیشبینی کنندهی ریاضی استفاده میشود.
برای درک بهتر این روش به این مثال دقت کنید. دو دوست با نامهای آرش و نادر در دو شهر مختلف زندگی میکنند، آنها هر روز از طریق تلفن با یکدیگر صحبت میکنند. نادر تنها به سه فعالیت علاقه دارد: پیاده روی، خرید و تمیز کردن آپارتمان. آب و هوای هر روز تعیین میکند که نادر در آن روز، کدامیک از این سه کار را انجام میدهد. آرش هیچ اطلاعاتی از وضعیت آب و هوا در شهری که نادر در آن زندگی میکند، ندارد؛ اما او میداند که مثلا وقتی نادر برای پیاده روی به پارک میرود، هوا آفتابی است. به این ترتیب آرش به صورت مستقیم وضعیت آب و هوا را نمیداند و به اصلاح وضعیت آب و هوا برای وی مخفی است، اما بصورت غیر مستقیم میتواند از فعالیت نادر متوجهی، وضعیت آب و هوای شهر زندگی وی شود. این همان روشی است که مدلسازی آکوستیک مدل سازی مخفی (HMM) کار میکند.
در تشخیص صدا در این مدل، هر بخش از موج صدا بصورت مستقل با آنچه قبل و بعد آن آمده، مقایسه میشود و با دیتابیسی از موجهای صدا مطابقت داده میشود تا متوجه شود کاربر چه چیز را به زبان آورده است. مثلا حروف th در زبان انگلیسی را در نظر بگیرید. اگر به تلفظ the یا that در زبان انگلیسی دقت کنید th در هر کدام تلفظ متفاوتی دارد. در روش HMM از طریق آنالیز موجهای at و e کامپیوتر متوجه میشود که شما چه کلمهای را به زبان آوردهاید.
مایکروسافت در مقالهای مفصل روش HMM را بطور کامل توضیح داده است.
مدل سازی زبان: فراتر از صدا
اما مدل سازی آگوستیک به تنهایی نمیتواند صدای شما را درک کند. اگر شما لهجهی خاصی داشته باشید یا مناطق خاصی کلمات را به شکل متفاوتی بیان کنند، آنوقت مدل سازی آگوستیک به تنهایی کارآمد نیست و مدلسازی زبان وارد عمل میشود. گوگل در این باره تحقیقات بسیاری انجام داده و آنها را در قالب مدلسازی N-gram استفاده میکند.
گوگل وقتی تلاش میکند تا صدای شما را تشخیص دهد، به بانکی از صداها که از طریق یوتیوب و جستجوی صوتی خود بدست آورده مراجعه میکند. گوگل همچنین از سیستم جستجوی محلی خود با نام GOOG-141 نیز بهره میبرد که در واقع سرویس تلفنی بود که در سال ۲۰۰۷ راهاندازی شد و در آن اطلاعات نحوهی صحبت کردن کاربران جمعآوری میشد. این سرویس در سال ۲۰۱۰ تعطیل شد. اما جستجوهای صوتی آن هنوز هم مورد استفاده گوگل قرار میگیرند.
گوگل تمام اطلاعات بدست آمده از سرویسهای یوتیوب، جستجوی صوتی و GOOG-141 را جمعآوری کرده و حالا پایگاهدادهای از صداها و لهجههای مختلف در اختیار دارد. به این ترتیب گوگل به سادگی میتواند تلفظهای مختلف از کلمات را در اختیار داشته و عبارتی را که به زبان میآورید فارغ از لهجهای که دارید با معادل آن در دیتابیس خود تطابق داده و متوجه شود چه چیز را به زبان آوردهاید.
هر چند گوگل در این زمینه پیشرو است، اما مدلهای ریاضی مختلفی نیز توسعه داده شدهاند که از جملهی آنها میتوان به مدلهای موضعی زبان یا مدل پیشرفتهتر مبتنی بر هوش مصنوعی اشاره کرد. این مدلها بر پایهی الگوبرداری نوعی از استدلال شبیه به آنچه دو انسان با هم گفتگو میکنند، کار میکند. این روشها بسیار پیچیده و پیشرفته هستند و برای تهیه نقشه این مدلها از ریاضی و کدنویسیهای پیچیده استفاده میشود.
مدل سازی N-Gram: احتمال
مدل سازی N-Gram بر پایهی احتمالات کار میکند و در آن از دیکشنری از کلمات برای ایجاد درختی از احتمالات، استفاده میشود. نقطهی قوت این روش در دسترسی به دیکشنری بزرگی از کلمات و استفاده آنها به جای اصوات ابتدایی است. در این نوع از مدل سازی، برنامه توانایی آن را دارد تا تفاوت بین کلمات همآوا مثل beat و beat را تشخیص دهد. این نوع مدل سازی بر پایهی محتوا کار میکند و در آن جملات تشخیص داده شده و درک میشوند.
با این حال، این روش نیز بهترین گزینه برای زبان نیست. مهمترین مشکل در این روش احتمالاتِ مختلف کلمات در جملات بلند است. هر چه کلمات در جمله بیشتر میشوند، این مدل دچار سردرگمی در برقراری ارتباط با کلمات ابتدایی جمله میشود و نهایتا نمیتواند درک صحیحی از جمله بیان شده داشته باشد.
از آنجایی که پیاده سازی این روش آسان است، آن را به گزینهای مناسب برای شرکتی شبیه به گوگل میکند که به سرورهای قدرتمند دسترسی دارد و مشکلی از بابت محاسبات سنگین ندارد.
چطور کامپیوتر جملات ما را تشخیص میدهد؟
تشخیص عبارت و جملات برای کامپیوتر یک علم بسیار پیچیده و وسیع است که هر چه بیشتر در آن عمیق شوید بیشتر متوجهی پیچیدگی آن میشوید. این علم ترکیبی از زبان شناسی بسیار پیچیدهی ماشین، ریاضیات و همچنین محاسبات است. اگر بخواهیم اطلاعاتی که ارائه کردیم را گردآوری کنیم، ماشین برای آنکه صحبتهای ما را درک کند:
- صحبتهای ما را با الگوهای ضبط شدهای که در دیتابیس خود دارد مقایسه میکند و پس از تشخیص کلمات، وارد درختی و جدولی از عبارت میشود که کلمه مورد نظر شما در آن وجود دارد و سپس به آنالیز احتمالات ممکن برای مطابقت با جملهی شما میشود.
- مدل سازی زبان و آنالیزهای آماری روش دیگری است که در آن دانش گرامری و احتمالا ممکن برای کلمات و صداها بکار گرفته میشود.
- ریاضیات و شبکهی عصبی شبیه به مغز انسان در کامپیوتر مدل سازی میشود تا الگوی تشخیص صدا ایجاد شده و کلمات در کنار یکدیگر مفهوم پیدا کنند.
با این ترتیب هر کدام از شرکتها از روشهای مختلف و یا ترکیبی از روشهای بیان شده استفاده میکنند تا کلمات را متوجه شده و پس از آن به کمک الگوریتمهای پیچیده ریاضی و بکار گیری بانک گستردهای از عبارات، جملات بیان شده کاربر را درک کنند. زبان ماشین روز به روز پیشرفتهتر میشود و کامپیوترها همچون انسان، زبان انسان را فرا گرفتهاند و می توانند آنچه به زبان آوردهایم را به خوبی درک کنند.
اهمیت سرویسهای ابری در دستیارهای صوتی
اگر تا به حال از دستیارهای صوتی مثل سیری یا گوگل ناو استفاده کرده باشید حتما در جریان هستید که اگر اتصال سریعی به اینترنت نداشته باشید، عملکرد آنها بسیار کند و آزار دهنده میشود. کورتانا در ویندوز نیز بدون اتصال به اینترنت بسیاری از عملکردهای آن غیر فعال میشود. اکو آمازون هم بدون اتصال اینترنت تنها یک اسپیکر بلوتوث خواهد بود.
اما چرا برای دستیارهای صوتی نیاز به اینترنت داریم؟ دلیل این موضوع است که دستیارهای صوتی مانند سیری، گوگل ناو و کورتانا برای تشخیص صدا و در آن به سرورهای فوقالعاده قدرتمندی متصل میشوند. پردازش مورد نیاز برای تشخیص صحیح صدا بسیار سنگین است و گوشی و تبلت از پس آن بر نمیآیند و اگر قرار باشد حتی در دستگاههای پرچمدار این فرایند بر روی خود گوشی یا تبلت انجام شود، باعث مصرف بیش از حد باتری میشود. به همین دلیل این سرویسها در قالب سرویسهای ابری در اختیار کاربران قرار میگیرند.
البته گوگل و برخی دیگر از شرکتها برخی از دستورات صوتی محدودی را که عموما برای اجرای اپلیکیشنها و برخی دستورات داخلی سیستم مورد استفاده قرار میگیرند بصورت آفلاین دریافت و پردازش میکنند.
پس فرایند تشخیص صدا به این صورت است که صدای ضبط شدهی شما به سرورهای قدرتمند سرویسدهنده ارسال شده، توسط الگوریتمهای مختلف مورد تجزیه و تحلیل قرار گرفته و درک میشود، سپس دستور مربوطه انجام شده و نتیجهی حاصل آن که میتواند از موتور جستجوی گوگل، وکیپدیا یا موتورهای جستجوی پیشرفته مانند WolframAlpha بدست امده باشد به زبان انسان بازگردانده شده و به گوش شما میرسد.