آموزش کامل تبدیل گفتار فارسی به متن در اندروید
7 آذر 1399 1399-09-07 12:57آموزش کامل تبدیل گفتار فارسی به متن در اندروید
توی این مطلب میخوام بهت یاد بدم که چطور گفتار رو به متن تبدیل کنی.
مثلا کاربرهات بجای اینکه بیان توی بخش های مختلف کیبورد گوشی رو باز کنن و متن های مختلفشون رو تایپ کنن،
خیلی راحت توسط این روش میتونن فارسی صحبت کنن و برنامه شما اون گفتار رو به متن تبدیل کنه.
این روش، یه روش خیلی جذابیه که برنامه های بزرگ ازش استفاده میکنن.
برنامه هایی مثل : دیوار، دیجیکالا، اسنپ و …
فرض کن کاربر میخواد یه متنی رو بنویسه و جستجو کنه. دیگه نیازی به نوشتن نیست!
میتونی بگی کاربر صحبت کنه و کلمه مورد نظرش رو بگه، بعد اون کلمه رو به متن تبدیل کنی و عبارت مورد نظر رو سرچ کنی.
این روش به طور کامل زبان شیرین فارسی رو پشتیبانی میکنه و هیچ مشکلی با زبان فارسی نداره.
خب بریم سراغ آموزش.
قبل از هرچیزی باید دسترسی برنامه به اینترنت رو براش ست کنید.
توی Manifest.xml این کد رو اضافه کنید:
<uses-permission android:name="android.permission.INTERNET"/>
و بعد کدهای زیر رو توی Activity موردنظرت بنویس:
class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private val REQ_CODE = 4757 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) binding.mainPageLoginBtn.setOnClickListener { val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH) intent.putExtra( RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM ) intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "fa") intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "لطفا صحبت کنید") try { startActivityForResult(intent, REQ_CODE) } catch (a: ActivityNotFoundException) { Toast.makeText(this, "گوشی شما از این قابلیت پشتیبانی نمیکند", Toast.LENGTH_SHORT) .show() } } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) when (requestCode) { REQ_CODE -> { if (resultCode == RESULT_OK && data != null) { val result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS) binding.mainPageTitleTxt.text = result[0] } } } } }
نمایش کامل ویدیو آموزشی تبدیل گفتار فارسی به متن
درضمن برای دسترسی به viewهای لایه های xml از ViewBinding استفاده کردم، برای دیدن آموزش روی لینک زیر بزنید