Android позволяет конвертировать ваш текст в голос. Вы можете не только конвертировать его, но и говорить на разных языках.
Android предоставляет класс TextToSpeech для этой цели. Чтобы использовать этот класс, вам нужно создать экземпляр объекта этого класса, а также указать initListener . Его синтаксис приведен ниже —
private EditText write; ttobj=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() { @Override public void onInit(int status) { } });
В этом слушателе вы должны указать свойства объекта TextToSpeech, такие как его язык, высота тона и т. Д. Язык можно установить, вызвав метод setLanguage () . Его синтаксис приведен ниже —
ttobj.setLanguage(Locale.UK);
Метод setLanguage принимает объект Locale в качестве параметра. Список некоторых доступных локалей приведен ниже —
Sr.No | место действия |
---|---|
1 | НАС |
2 | CANADA_FRENCH |
3 | ГЕРМАНИЯ |
4 | ИТАЛИЯ |
5 | ЯПОНИЯ |
6 | КИТАЙ |
После того, как вы установили язык, вы можете вызвать метод класса говорить, чтобы произнести текст. Его синтаксис приведен ниже —
ttobj.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);
Помимо метода speak, в классе TextToSpeech доступны и другие методы. Они перечислены ниже —
Sr.No | Метод и описание |
---|---|
1 |
addSpeech (текст строки, имя файла строки) Этот метод добавляет отображение между строкой текста и звуковым файлом. |
2 |
GetLanguage () Этот метод возвращает экземпляр Locale, описывающий язык. |
3 |
говорит() Этот метод проверяет, занят ли механизм TextToSpeech разговором. |
4 |
setPitch (плавная подача) Этот метод устанавливает речевую высоту для механизма TextToSpeech. |
5 |
setSpeechRate (float speechRate) Этот метод устанавливает скорость речи. |
6 |
неисправность() Этот метод освобождает ресурсы, используемые движком TextToSpeech. |
7 |
стоп() Этот метод остановить разговор. |
addSpeech (текст строки, имя файла строки)
Этот метод добавляет отображение между строкой текста и звуковым файлом.
GetLanguage ()
Этот метод возвращает экземпляр Locale, описывающий язык.
говорит()
Этот метод проверяет, занят ли механизм TextToSpeech разговором.
setPitch (плавная подача)
Этот метод устанавливает речевую высоту для механизма TextToSpeech.
setSpeechRate (float speechRate)
Этот метод устанавливает скорость речи.
неисправность()
Этот метод освобождает ресурсы, используемые движком TextToSpeech.
стоп()
Этот метод остановить разговор.
пример
Приведенный ниже пример демонстрирует использование класса TextToSpeech. Это базовое приложение, которое позволяет вам задавать текст и произносить его.
Чтобы поэкспериментировать с этим примером, вам нужно запустить его на реальном устройстве.
меры | Описание |
---|---|
1 | Вы будете использовать Android studio для создания приложения Android в пакете com.example.sairamkrishna.myapplication. |
2 | Измените файл src / MainActivity.java, чтобы добавить код TextToSpeech. |
3 | Измените XML-файл макета. Res / layout / activity_main.xml добавьте любой компонент GUI, если это необходимо. |
4 | Запустите приложение и выберите работающее устройство Android, установите на него приложение и проверьте результаты. |
Вот содержание src / MainActivity.java .
package com.example.sairamkrishna.myapplication; import android.app.Activity; 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; import android.widget.Toast; public class MainActivity extends Activity { TextToSpeech t1; EditText ed1; Button b1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ed1=(EditText)findViewById(R.id.editText); b1=(Button)findViewById(R.id.button); t1=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() { @Override public void onInit(int status) { if(status != TextToSpeech.ERROR) { t1.setLanguage(Locale.UK); } } }); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String toSpeak = ed1.getText().toString(); Toast.makeText(getApplicationContext(), toSpeak,Toast.LENGTH_SHORT).show(); t1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null); } }); } public void onPause(){ if(t1 !=null){ t1.stop(); t1.shutdown(); } super.onPause(); } }
Вот содержание activity_main.xml
В следующем коде abc указывает логотип tutorialspoint.com
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:transitionGroup="true"> <TextView android:text="Text to Speech" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textview" android:textSize="35dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials point" android:id="@+id/textView" android:layout_below="@+id/textview" android:layout_centerHorizontal="true" android:textColor="#ff7aff24" android:textSize="35dp" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src="@drawable/abc" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:theme="@style/Base.TextAppearance.AppCompat" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText" android:layout_below="@+id/imageView" android:layout_marginTop="46dp" android:hint="Enter Text" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="#ff7aff10" android:textColorHint="#ffff23d1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Text to Speech" android:id="@+id/button" android:layout_below="@+id/editText" android:layout_centerHorizontal="true" android:layout_marginTop="46dp" /> </RelativeLayout>
Вот содержимое Strings.xml .
<resources> <string name="app_name">My Application</string> </resources>
Вот содержание AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" > <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Давайте попробуем запустить ваше приложение. Я предполагаю, что вы подключили свое фактическое мобильное устройство Android к компьютеру. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок с панели инструментов. Перед запуском вашего приложения, Android Studio покажет следующее окно, чтобы выбрать вариант, где вы хотите запустить свое приложение Android.
Выберите мобильное устройство в качестве опции, а затем проверьте свое мобильное устройство, которое отобразит следующий экран.
Теперь просто введите текст в поле и нажмите кнопку преобразования текста в речь ниже. Появится уведомление и произнесется текст. Это показано на рисунке ниже —
Теперь напечатайте что-нибудь еще и повторите шаг снова с другим языком. Вы снова услышите звук. Это показано ниже —