Thứ Ba, 27 tháng 11, 2018

Android - Văn bản thành lời nói

Học lập trình Android cho phép bạn chuyển văn bản thành giọng nói. Không chỉ bạn có thể chuyển đổi nó mà còn cho phép bạn nói văn bản bằng nhiều ngôn ngữ khác nhau.

Android cung cấp lớp TextToSpeech cho mục đích này. Để sử dụng lớp này, bạn cần khởi tạo một đối tượng của lớp này và cũng chỉ định initListener . Cú pháp của nó được đưa ra dưới đây

Học lập trình Android


private EditText write;
ttobj=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
   @Override
   public void onInit(int status) {
   }
});
Trong trình lắng nghe này, bạn phải xác định các thuộc tính cho đối tượng TextToSpeech, chẳng hạn như ngôn ngữ của nó, sân vv Ngôn ngữ có thể được thiết lập bằng cách gọi phương thức setLanguage () . Cú pháp của nó được đưa ra dưới đây

ttobj.setLanguage(Locale.UK);

Phương thức setLanguage lấy một đối tượng Locale làm tham số. Danh sách một số ngôn ngữ có sẵn được cung cấp dưới đây

Sr.NoNgôn ngữ
1Mỹ
2CANADA_FRENCH
3NƯỚC ĐỨC
4ITALY
5NHẬT BẢN
6TRUNG QUỐC
Khi bạn đã đặt ngôn ngữ, bạn có thể gọi phương thức nói của lớp để nói văn bản. Cú pháp của nó được đưa ra dưới đây
ttobj.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);
Ngoài phương thức nói, có một số phương thức khác có sẵn trong lớp TextToSpeech. Chúng được liệt kê dưới đây

Sr.NoPhương pháp & mô tả
1addSpeech (Chuỗi văn bản, Tên tệp chuỗi)

Phương thức này thêm một ánh xạ giữa một chuỗi văn bản và một tệp âm thanh.
2getLanguage ()
Phương thức này trả về một cá thể Locale mô tả ngôn ngữ.
3isSpeaking ()

Phương pháp này kiểm tra xem động cơ TextToSpeech có đang bận không.
4setPitch (sân nổi)
Phương thức này thiết lập cường độ giọng nói cho công cụ TextToSpeech.
5setSpeechRate (float speechRate)

Phương thức này đặt tốc độ giọng nói.
6tắt()
Phương thức này giải phóng các tài nguyên được sử dụng bởi công cụ TextToSpeech.
7dừng lại()
Phương pháp này ngừng nói.
Thí dụ

Học lập trình Android. Ví dụ dưới đây minh họa việc sử dụng lớp TextToSpeech. Nó thùng một ứng dụng cơ bản cho phép bạn đặt văn bản viết và nói nó.

Để thử nghiệm với ví dụ này, bạn cần chạy trên một thiết bị thực tế.

Các bướcSự miêu tả
1Bạn sẽ sử dụng Android studio để tạo ứng dụng Android theo gói com.example.sairamkrishna.myapplication.
2Sửa đổi tệp src / MainActivity.java để thêm mã TextToSpeech.
3Sửa đổi tệp XML bố trí res / layout / activity_main.xml thêm bất kỳ thành phần GUI nào nếu cần.
4Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả.
Đây là nội dung của 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();
   }
}
Đây là nội dung của activity_main.xml
Trong đoạn mã sau abc cho biết logo của 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>
Đây là nội dung của Strings.xml .
<resources>
   <string name="app_name">My Application</string>
</resources>
Đây là nội dung của 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>
Học lập trình Android Hãy thử chạy ứng dụng của bạn. Tôi cho rằng bạn đã kết nối thiết bị Android Mobile thực tế với máy tính của mình.

Để chạy ứng dụng từ Android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ.

Trước khi bắt đầu ứng dụng của bạn, studio android sẽ hiển thị cửa sổ sau để chọn tùy chọn mà bạn muốn chạy ứng dụng Android của mình.

Chọn thiết bị di động của bạn làm tùy chọn và sau đó kiểm tra thiết bị di động của bạn sẽ hiển thị màn hình sau đây.

Bây giờ chỉ cần gõ một số văn bản trong lĩnh vực này và bấm vào nút văn bản để nói dưới đây. Một thông báo sẽ xuất hiện và văn bản sẽ được nói. Nó được thể hiện trong hình dưới đây -

Bây giờ gõ cái gì khác và lặp lại bước một lần nữa với miền địa phương khác nhau. Bạn sẽ lại nghe thấy âm thanh. Điều này được hiển thị bên dưới

Không có nhận xét nào:

Đăng nhận xét

Lập trình Android - RenderScript

Trong chương này, chúng ta sẽ tìm hiểu về Android RenderScript. Thông thường các ứng dụng trên Android được thiết kế để tiêu thụ tài nguyên ...