امروزه انسانها نهتنها با انسانها صحبت میکنند، بلکه ارتباطهای گفتاری مختلفی نیز با دستگاههای هوشمند خود برقرار میکنند. در ادامه این مطلب قصد داریم که به نحوه کار فناوری تشخیص صدا بپردازیم.
منظور از تکنولوژی تشخیص صدا چیست؟
دستگاههای هوشمند امروزی به همراه یک دستیار صوتی، روانه بازار میشوند. این دستیار در واقع با استفاده از فناوری تشخیص صدا، کارهایی را که از آن میخواهید، برای شما انجام میدهد. این تکنولوژی با استفاده از مجموعهای از الگوریتمها، سعی میکند که گفتار شما را به سیگنالهای دیجیتال تبدیل کرده و بدین ترتیب از تفهیم آنچه که گفتهاید، اطمینان حاصل کند. مثلا برنامهای همانند مایکروسافت ورد، از تشخیص صدا پشتیبانی کرده و بدین ترتیب میتوانید با استفاده از صدا، کلمات موردنظر خود را تایپ کنید.
اولین سیستم تشخیص صدا
نحوه کار فناوری تشخیص صدا را با بحث درباره اولین سیستم در این زمینه؛ یعنی Audrey آغاز میکنیم. واژه Audrey در واقع خلاصه شده Automated Digit Recognition (تشخیص خودکار رقم) است. Audrey در سال 1952 و توسط آزمایشگاههای بل اختراع شد و قادر به تشخیص اعداد بود. شیوه کار بدین صورت بود که کاربر، عددی را به زبان میآورد و دستگاه نیز در ادامه یکی از 10 لامپ موجود را روشن میکرد
.
هر چند که این یک اختراع مهم بود، اما آنچنان که باید، مورد استقبال واقع نشد. خود کامپیوتر حدود 6 فوت ارتفاع داشت و فضای زیادی را اشغال میکرد. جدا از این، Audrey فقط قادر به رمزگشایی اعداد 0 الی 9 بود. همچنین فقط یک شخص با یک نوع صدای مشخص، قادر به استفاده از این تکنولوژی بود. درست است که Audrey بدون نقص نبود، اما در هر صورت راهی را جهت رسیدن این فناوری به وضعیت حال حاضر، ایجاد کرد. در ادامه طراحی سیستمی که بتواند دنبالهای از کلمات را تشخیص دهد، زیاد طول نکشید.
تشخیص صدا با تبدیل صدا به سیگنالهای دیجیتال آغاز میشود
تکنولوژی تشخیص صدا برای اینکه بفهمد که ما چه جیزی بر زبان آوردهایم، باید گامهایی را طی کند. صدای شما توسط میکروفن دستگاه ضبط میشود، در ادامه این صدا به جریان الکتریکی تبدیل شده و به سمت مبدل آنالوگ به دیجیتال (ADC) روانه میشود. در همین جا است که جریان الکتریکی یا همان سیگنال آنالوگ، به سیگنالهای دیجیتال دو-دویی تبدیل میشود.
به محض رسیدن جریان آنالوگ به ADC، نمونههایی از جریان برداشته شده و ولتاژ آن در نقاط زمانی مشخصی، رمزگشایی میشود. هر نمونه در حدود چند هزارم ثانیه طول دارد. ADC بسته به ولتاژ نمونه، یک بایت از اطلاعات را اختصاص میدهد.
جهت وضوح بیشتر، صدا پردازش میشود
جهت اینکه صدا بهتر درک شود، باید پردازش شده تا کیفیت آن بالاتر برود. گاهی اوقات صدا در محیطی ضبط میشود که شلوغ است و بنابراین باید فیلترهایی اعمال شوند تا نویز پسزمینه حذف شود. در برخی از سیستمهای تشخیص صدا، فرکانسهای صوتی که بالا و یا پایینتر از دامنه شنیداری انسان هستند، فیلتر شده و کنار گذاشته میشوند.
این مطلب را نیز بخوانید: آموزش حذف صداهای ضبط شده گوگل اسیستنت
نهتنها فرکانسهای صوتی ناخواسته حذف میشوند، بلکه فرکانسهای مشخصی نیز برجسته شده و بدین ترتیب کامپیوتر بهتر میتواند که صدای انسان را از نویز پسزمینه جدا کند. برخی از سیستمها در اصل صدا را به چندین فرکانس گسسته از هم، تقسیم میکنند. سایر جنبههای صدا همانند سرعت و حجم آن نیز تعدیل شده تا بهتر با نمونههای صوتی موجود در سیستم تشخیص صدا، تطابق داده شوند. در کل اعمال این فیلترها باعث میشود که دقت کلی بالاتر برود.
سپس فرایند ایجاد کلمات آغاز میشود
دو روش محبوب جهت آنالیز صدای انسان وجود دارند: یکی مدل مخفی Markov بوده و دیگری نیز از طریق شبکههای عصبی انجام میگیرد.
روش مدل مخفی Markov
این روش در بسیاری از سیستمهای تشخیص صدا به کار برده میشود. بخش مهمی از این فرایند، تجزیه کلمات به زبان آورده شده به واج است (کوچکترین بخش یک زبان). در هر زبان، مجموعه محدودی از واجها وجود دارند و به همین دلیل، سیستم مدل Markov، همچنان عملکرد خوبی دارد. مثلا در زبان انگلیسی، حدود 40 واج وجود دارند. هنگامی که یک سیستم تشخیص صدا، یک واج را تشخیص میدهد، آنگاه سعی میکند که حدس بزند که واج بعدی کدام خواهد بود.
بهعنوان مثال اگر گوینده صدای “ta” را به زبان آورد، آنگاه این احتمال وجود دارد که واج بعدی “p” بوده و در نهایت کلمه “tap” تشخیص داده شود. البته در رابطه با این مثال نیز احتمال اینکه که واج بعدی “s” باشد، وجود دارد، اما به هر حال احتمال این مورد از “p” بسیار کمتر است. اگر واج بعدی که توسط گوینده ادا میشود، “p” باشد، آنگاه سیستم با اطمینانی بالا خواهد گفت که کلمه ادا شده، “tap” است.
روش شبکه عصبی
شبکه عصبی همانند یک مغز دیجیتال بوده که به شیوهای همانند مغز انسان، اقدام به یادگیری میکند. از شبکه عصبی در زمینه هوش مصنوعی و یادگیری عمیق، استفاده میشود. نوع شبکه عصبی که جهت تشخیص صدا استفاده میشود، Recurrent Neural Network (شبکه عصبی تکراری) یا به اختصار RNN نام دارد. در سیستم RNN، خروجی گامهای پیشین، تبدیل به ورودی گام فعلی میشود. این قضیه بدین معنا است که هنگامی که RNN یک بیت داده را پردازش میکند، در واقع آن دادهها بر روی اطلاعاتی که قرار است در ادامه پردازش شوند، تأثیر میگذارند. در واقع میتوان این فرایند را به یادگیری تشبیه کرد.
هر چه یک RNN بیشتر در معرض یک زبان خاص قرار گیرد، آنگاه بهتر و با دقت بیشتری میتواند صدا را تشخیص دهد. مثلا اگر سیستمی واژه “ta” را در حدود 100 بار بشوند و سپس از این 100 بار، 90 بار آن به دنبال “ta”، واج “p” بیاید، آنگاه شبکه این گونه یاد خواهد گرفت که معمولا پس از “ta”، واج “p” میآید.
به همین دلیل هنگامی که یک سیستم تشخیص صدا، واجی را تشخیص میدهد، آنگاه با استفاده از دادههای دقیق، میتواند واج بعدی را پیشبینی کند. پس از اینکه سیستم تشخیص صدا، کلمات را شناسایی کرد (حال چه با سیستم مدل مخفی Marvok باشد و چه از طریق RNN)، در ادامه اطلاعات به پردازنده ارسال میشوند. در نهایت نیز وظایف خواسته شده، توسط کامپیوتر و یا گوشی اجرا میشوند.
سخن پایانی
در بالا به نحوه کار فناوری تشخیص صدا پرداختیم. این فناوری اکنون به بخش مهمی از ارتباط انسان با دنیای فناوری تبدیل شده است. تشخیص صدا در چندین صنعت و سرویس، مورد استفاده قرار میگیرد. فناوری تشخیص صدا که در سال 1952 ابداع شده، امروزه با پیچیدگی خیلی بیشتر، در دستگاههای کوچکی همانند اپل واچ مورد استفاده قرار گرفته و قرار هم نیست که پیشرفت آن متوقف شود.