اذهب إلى المحتوى

السؤال

نشر

السلام عليكم 

لدي تطبيق لقائمة الطعام يحتوي مثلا على: 

===========================

      الاسم بالنجليزي    |   الاسم بالعربي

-------------------------------------------------

    1. chicken           |    دجاج

    2. fish pie            |   فطيرة السمك

     3. pizza              |  بيتزا

========================

كيف اجعل تطبيقي ينطق باسماء جميع الاصناف الموجودة في القائمة باستخدام مكتبة TextToSpeech(TTS) بالاندريد ستوديو، أي عند انتهائة من نطق الصنف الاول يقوم بنطق الصنف الثاني وهكذا

Recommended Posts

  • 1
نشر

يقوم تطبيق Text to Speech بتحويل النص المكتوب على الشاشة إلى كلام كما لو كنت قد كتبت "Hello World" على الشاشة وعندما تضغط على الزر سيتحدث "Hello World". تُستخدم ميزة تحويل النص إلى كلام بشكل شائع كميزة إمكانية الوصول لمساعدة الأشخاص الذين يواجهون صعوبة في قراءة النص على الشاشة ، ولكنها أيضًا مناسبة لأولئك الذين يرغبون في قراءتها أيضًا. لقد أصبحت هذه الميزة ميزة شائعة جدًا ومفيدة للمستخدمين.

  • الخطوة الأولى: إنشاء مشروع جديد

  • الخطوة الثانية: العمل مع ملف activity_main.xml

    انتقل إلىapp -> res -> layout ->  activity_main.xml وقم بتعيين تخطيط التطبيق. في هذا الملف ، أضف EditText لإدخال النص من المستخدم ، زر ، لذلك عندما ينقر المستخدم على الزر ، يتم تحويله إلى كلام وعرض نص لعرض نص Hsoub. يوجد أدناه الكود الكامل لملف activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:app="http://schemas.android.com/apk/res-auto"
	xmlns:tools="http://schemas.android.com/tools"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:orientation="vertical"
	android:layout_margin="30dp"
	tools:context=".MainActivity">
	
	<!--To add text in the app-->
	<EditText
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:id="@+id/Text"
		android:layout_marginBottom="20dp"
		android:hint="Enter Any Sentence"
		android:gravity="center"
		android:textSize="16dp"/>
	
	<!--when you press this button it will
		convert text into speech-->
	<Button
		android:layout_width="wrap_content"
		android:id="@+id/btnText"
		android:layout_height="wrap_content"
		android:text="Click Here"
		android:layout_gravity="center"/>

	<!--To display the name of Hsoub -->
	<TextView
		android:id="@+id/textView"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:layout_marginTop="70dp"
		android:gravity="center_horizontal"
		android:text="Hsoub"
		android:textColor="@android:color/holo_green_dark"
		android:textSize="36sp" />

</LinearLayout>
  • الخطوة 3: العمل مع ملف MainActivity.java

انتقل إلى التطبيق -> java -> com.example.GFG (اسم الحزمة) -> قسم MainActivity.java. انضم الآن إلى Button و Edittext إلى كود Java وتضاف التعليقات داخل الكود لفهم الكود بسهولة. يوجد أدناه الكود الكامل لملف MainActivity.java.

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {

	EditText Text;
	Button btnText;
	TextToSpeech textToSpeech;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		Text = findViewById(R.id.Text);
		btnText = findViewById(R.id.btnText);

		// إنشاء كائن textToSpeech وإضافة ميزات إليه
		textToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
			@Override
			public void onInit(int i) {

				// إذا لم يتم العثور على خطأ ، فسيتم تشغيله فقط
				if(i!=TextToSpeech.ERROR){
					// لاختيار لغة الكلام
					textToSpeech.setLanguage(Locale.UK);
				}
			}
		});

		// مضيفا OnClickListener
		btnText.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View view) {
				textToSpeech.speak(Text.getText().toString(),TextToSpeech.QUEUE_FLUSH,null);
			}
		});

	}
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...