آموزش ساخت اپلیکیشن تبدیل صدا به متن در B4A – جلسه ششم
سلام
با ششمین جلسه ی آموزشی ساخت اپلیکیشن تبدیل صدا به متن در بیسیک فور اندروید در خدمتتون هستیم؛ در این قسمت قصد داریم تا چگونگی ساخت منوی پاپ آپ, کار کردن با کتابخانه TTS و جدا کردن آیتم ها از هم آشنا بشیم، در ادامه همراه بپرسم باشید.
در این جلسه یادخواهید گرفت:
- ساخت منو پاپ آپ به وسیله کتابخانه AriaPopupMenu (در انتهای پست برای دانلود قرار دادیم).
- کارکردن با کتابخانه TTS به منظور چک کردن اینکه متن فارسی است یا انگلیسی
- تابع جداکردن آیتم های لیست ویو
ساخت منوی پاپ آپ
- به منظور ساخت منوی پاپ آپ که شبیه یک لیست ویوی کوچک است ابتدا کتابخانه AriaPopupMenu را در بیسیک فور اندروید تیک میزنیم.
- سپس کتابخانه را تعریف میکنیم:
۱ |
Private menu_lst As AriaPopupMenu |
- در ادامه به این شکل کتابخانه را مقداردهی میکنیم:
۱ ۲ |
Private lst_items As ListView menu_lst.Initialize("menu",lst_items) |
پارامتر اول نام رویداد منو و پارامتر دوم یک لیست ویو برای نمایش آیتم های منو.
- حالا با استفاده از دستور زیر، آیتم به منو اضافه میکنیم:
۱ |
menu_lst.Menu.AddItem2(۱,۱," آیتم") |
حالا اگر این دستورات را مثلا در رویداد کلیک دکمه بنویسیم، به محض کلیک کردن دکمه، منوی پاپ آپ روی صفحه گوشی ظاهر میشود.
نکته: دقت کنید که در این جا ما نیاز داریم تا بتوانیم برروی آیتم های پاپ آپ ایجاد شده کلیک کنیم. پس ساب مربوط به کلیک منو را مینویسیم:
۱ ۲ ۳ |
Private Sub menu_MenuItemClick (menuItem As AriaMenuItem) As Boolean End Sub |
- در این ساب آیتم ها به وسیله متغیر menuItem از هم تفکیک میشوند. مثلا اگر منو سه تا آیتم داشت، برای اینکه بتوانیم روی سه تا آیتم کلیک کنیم و سه رفتار مختلف ببینیم، باید بیایم از یک، متغیر menuItem را به شکل ریر مقداردهی کنیم:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ |
Private Sub menu_MenuItemClick (menuItem As AriaMenuItem) As Boolean If menuItem.GetItemID=۱ Then Else If menuItem.GetItemID=۲ Then Else If menuItem.GetItemID=۳ Then End If End Sub |
کتابخانه TTS
- با استفاده از این کتابخانه میتوانیم چک کنیم که کلمات وارد شده انگلیسی هست و یا فارسی.
- ابتدا کتابخانه TTS ID را در لیست کتابخانه های b4a علامت میزنیم.
- سپس کتابخانه را تعریف میکنیم:
۱ |
Private tts As TTSID |
- سپس طبق معمول کتابخانه را راه اندازی میکنیم:
۱ |
tts.Initialize(Me,"tts") |
پارامتر اول همان اکتیویتی که داخلش هستیم، است و پارامتر دوم نام رویداد کتابخانه است.
دقت کنید که کتابخانه TTS هم دارای دستور Release میباشد که هرگاه کار با این کتابخانه تمام شد، میتوانید از این دستور استفاده کنید تا برنامه تان مشغول این کتابخانه نباشد.
- دستوری با نام Stop وجود دارد که میتواند کار کتابخانه را متوقف کند.
۱ |
tts.Stop |
- حالا میخواهیم از قابلیت اصلی برنامه که همان تشخیص متن فارسی از انگلیسی هست، استفاده کنیم. با استفاده از دستور زیر این کار را انجام میدهیم:
۱ |
tts.Speak(txt_text.Text,True) |
پارامتر اول متنی که میخواهیم بررسی کنیم و پارامتر دوم این که اگر صحیح بود، یعنی اگر زبان تنظی شده درست بود، کل متن را بررسی کند و بعد از بررسی حافظه کش را خالی کند.
- اما قبل از آن باید زبان مورد نظرمان را تنظیم کنیم. با استفاده از این دستور میتوانید این کار را انجام دهید.
۱ |
tts.SetLanguage("en","US") |
پارامترهای ورودی، زبان مورد نظر و کشور مربوط به آن زبان.
توجه کنید که لیست زبان و کشورهای مربوط به آن زبان را میتوانید از اینترنت پیدا کنید و حتما باید این پارامترها به اختصار وارد شوند.
در این کتابخانه دستوری است به اسم isSpeaking که با استفاده از آن میتوانید تشخیص دهید که آیا متنی داره از داخل برنامه به توسط خود برنامه خوانده میشود یا نه.
نکته: چون این برنامه بخشی دارد برای پخش صوتی یادداشت ها، به همین دلیل این دستور در این بخش به کار می آید.
جدا سازی خطی آیتم های لیست ویو:
- لیست ویو دارای آیتم های دلخواه است که برنامه نویس به عنوان آیتم های ورودی به آن، میدهد.
- حالا ما در این تابع، میخواهیم به شما یاددهیم که چگونه این آیتم های ورودی را از هم جدا کنید.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ |
Sub SetDivider(lv As ListView, Color As Int, Height As Int) Dim r As Reflector r.Target = lv Dim CD As ColorDrawable CD.Initialize(Color, ۰) r.RunMethod4("setDivider", Array As Object(CD), Array As String("android.graphics.drawable.Drawable")) r.RunMethod2("setDividerHeight", Height, "java.lang.int") End Sub |
- با استفاده از این ساب، یک خط جداکننده بین هر آیتم در لیست ویو قرار میگیرد.
- و تابع فوق را این گونه صدا میزنیم:
۱ |
SetDivider(lst_items,Colors.White,۰.۲%y) |
پارامترهای ورودی به ترتیب لیست ویوی آیتم ها، رنگ خط جداکننده و پارامتر آخری، میزان ضخامت جداکننده است.
آموزش را همینجا به پایان می رسانیم، همراه ما باشید با ادامه آموزش ها …
مشکلی یا سوالی داشتید میتوانید در بخش پرسش و پاسخ سایت، سوال خود را بپرسید.
موفق باشید.
ارسال نظر
شما باید وارد شوید یا عضو شوید تا بتوانید نظر ارسال کنید