راهنمایی در حوزه voice to text برای زبان پارسی


#1

سلام به همگی دوستان
این روزها با اجرایی کردن یک ایده مشغولم که نیاز به نرم افزاری دارم که یک استریم صوتی فارسی (مثلا خروجی یک یا تعدادی شبکه های رادیویی) رو از ورودی بگیره و متن تحویل بدم
بعد از کلی جستجو، به نتیجه مطلوب نرسیدم
آیا راه حلی برای این موضوع سراغ دارید؟ پروژه موفقی در این مورد وجود داره ؟
اگر نه، کسی در موارد مشابه فعالیت کرده که راهنماییم کنه؟ (ابزاری که نیست رو شروع کنیم بسازیم)


#2

این یکی از مباحث Machine Learning به اسم Speech Recognition که عموما توسط Deep Learning حل میشه


#3

خوب دیتاست اصلا نداریم واسه زبان فارسی و البته خط فارسی (تشخیص نوشتار)
احتمالا تنها راه اینه که دیتاست جمع کنیم. یه وبسایت بسازیم مثل چیزی که mozilla درست کرده برای جمع کردن دیتاست صوتی. یا صبر کنیم موزیلا دلش به حالمون بسوزه بخش فارسی هم به سایتش اضافه کنه (احتمالا یک قرن بعد) و مردم برن دیتاست بسازن (اگه ارزش کارشون رو درک کنن).


#4

گوگل با API فارسی را پشتیبانی میکنه
https://cloud.google.com/speech-to-text/docs/languages


#5

خوب گوگل نامرده دیتاست نمیده بهمون.


#6

کمی بیشتر که گشتم نمونه ای مثل https://www.iotype.com/ را پیدا کردم که چیزی در مورد ابزاری که ازش استفاده میکنه نگفته

البته چند نمونه دیگه هم بود که همگی از گوگل استفاده میکردند

برای استفاده از api گوگل هم مشکلی دارم، اینکه که فعلا یک سرور رایگان داخل ایران در دسترس دارم و سعیم اینه که فعلا برای خودم هزینه ایجاد نکنم


در مورد جمع کردن دیتاست واقعا هیچ ایده ای ندارم که اصلا یعنی چی؟!
ممنون میشم راهنماییم کنید، چون به صورت جدی میخوام روی این موضوع وقت بگذارم ولی داده هام در موردش خیلی کم هستش و نیاز به یادگرفتن بیشتر دارم،
در هر جستجو هم یک سری داده جدید پیدا میکنم که برای فهم موضوع کلی وقت برای یادگیری اونها صرف میکنم


#7

خوب برای neural network training باید یه دیتاست (مجموع دیتا) داشته باشیم از یه تعداد انسان که یه سری کار رو چند بار انجام دادن. بعد اون دیتا رو میدیم به شبکه‌ی عصبی که طراحی کردیم و کامپیوتر یه ارتباط بین کاری که انسانها انجام دادن و جوابی که به دست آوردن پیدا میکنه. (خیلی کلی گفتم)

مثلا ما به ۱۰۰۰۰ نفر یه سری کاغذ میدیم میگیم اعداد ۰ تا ۹ رو روی قسمتهای مشخص شده‌ی این کاغذها بنویسن با خودکار مشکی.
بعد کاغذها رو اسکن میکنیم و با یه اسکریپت ساده اون تیکه‌ها (مثلا مربع‌هایی که اعداد داخلش نوشته شده) رو جدا میکنیم و این میشه دیتای ما. این عکسهای کوچیک رو label گذاری میکنیم و میشه دیتاست ما. (لیبل به این صورت که ۵۰۰هزارتا عکس داریم با لیبل 1 و ۵۰۰هزارتا با لیبل 2 و…)
توی این دیتاست مثلا از هر عدد ۵۰۰۰۰۰ تا داریم که با دستخطهای مختلف توسط انسانهای مختلف نوشته شده. یه سریاش دقیق و قشنگه. یه سریاش وسطش خودکار قطع شده. یه سریاش دوبار نوشته شده (پررنگه)، یه سریاش کج نوشته شده و…

برای اینکه بدونید شبکه‌های عصبی چطور کار میکنه و نمونه کد ببینید بهتره سرچ کنید. آرتیکل و ویدیو زیاد هست،‌خیلی بهتر از من توضیح میدن. (سعی کردم توضیح بدم اینجا ولی به نظرم اگه یه کم سرچ کنید به توضیحات بهتری میرسید)
خلاصه‌ی مطلب اینه که یه دیتاست این مدلی میدیم به شبکه‌ی عصبی که طراحی کردیم و یاد میگیره که ۱ چه شکلیه و ۲ چه شکلیه و…

احتمالا این بهترین جا برای درک مفاهیم شبکه های عصبیه و در طول یادگیری، یه شبکه‌ی عصبی ساده هم میسازید و در فصلهای بعدی مفاهیم ریاضی و پیچیدش رو هم میبینید.


پ.ن:
ساخت یه شبکه‌ی عصبی معمولی خیلی سادست. فقط کافیه یه دیتاست داشته باشیم و یه شبکه‌ی عصبی ساده درست کنیم با استفاده از کدهایی که از اینترنت کپی میکنیم (یا فریموورکهایی که برای اینکار ساخته شدن)
ولی ساخت یه شبکه‌ی عصبی خیلی خوب، کار خیلی سختیه.
البته ساخت یه شبکه‌ی عصبی بی نقص، غیر ممکنه.


#8

من یک مدتی هست برای مشتریم یک افزونه آزمون آنلاین زدم به این صورت هست یک شعر یا یک متن به کاربر می دند طرف روی کاغذ می شینه می نویسه و عکسشو ارسال می کنه تاحالا هزار تا نمونه شده فقط

بعد یک نمونه از طرف استاد نوشته می شه و بر اساس اون به صورت دستی مدرسین نمره می دند.

ولی این فقط تصویر خام هست و مربوط به خوش نویسی خط تحریری با خودکار هست


#9

تنها راه استفادش اینه که این دیتاست رو تبدیل کنیم به کپچا، بدیم مردم ۲تا ۲تا کلمه‌ها رو تایپ کنن برامون به سبک قدیم recaptcha :sunglasses:


صرفا جهت یادآوری و در ادامه‌ی مطلبی که بالاتر نوشتم:

گوگل قدیما reCaptcha1 داشت که تیکه های متن اسکن شده‌ی کتابهای قدیمی رو نشون مردم میداد تا برای اینکه ثابت کنن انسان هستن، اون کلمه رو تایپ کنن، بعد از روی جوابهایی که دیگران داده بودن تشخیص میداد که درست جواب دادیم یا نه. (که اگه یه کلمه‌ی سخت رو اشتباه هم تایپ میکردیم بهمون گیر نمیداد چون احتمالا بقیه‌ هم خیلی اشتباه تایپ کرده بودن یا دیتاش کلا کم بود)

الآن اومده از دیتاهای street view استفاده میکنه برای reCaptcha2 و ما با اثبات اینکه انسان هستیم داریم به ماشین گوگل کمک میکنیم تا خوندن تابلو و پیدا کردن ویترین فروشگاه رو یاد بگیره.

اینهم یه جور درست کردن دیتاست هست.
با این تفاوت که گوگل نمیدونه کجای عکس تابلو وجود داره که اون تیکه رو جدا کنه، پس به ما نشون میده که اون قسمتی از عکس که تابلوی خیابون هست رو براش جدا کنیم.
بعد از اینکه اون عکس رو به ۱۰۰نفر (مثلا) نشون داد و مطمئن شد اونجای عکس یه تابلو‌ی خیابون وجود داره، اون عکس رو وارد دیتاستش میکنه برای یاد دادن به هوش مصنوعیش.