本篇內容主要講解“Android怎么實現自動朗讀功能”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Android怎么實現自動朗讀功能”吧!
前言: Android提供了自動朗讀支持??梢詫χ付ㄎ谋緝热葸M行朗讀,從而發生聲音;還允許把文本對應的音頻錄制成音頻文件,方便以后播放。Android的自動朗讀主要通過TextToSpeech來完成,構造器如:TextToSpeech(Context context, TextToSpeech.OnInitListennet listener);當創建TextToSpeech對象時,必須先提供一個OnInitListener監聽器——負責監聽TextToSpeech的初始化結果。
效果圖如下:

使用TextToSpeech的步驟如下:
1、創建TextToSpeech對象,創建時傳入OnInitListener監聽器監聽示范創建成功。
2、設置TextToSpeech所使用語言國家選項,通過返回值判斷TTS是否支持該語言、國家選項。
3、調用speak()或synthesizeToFile方法。
4、關閉TTS,回收資源。
布局文件:
<?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"> <EditText android:id="@+id/input_text" android:layout_marginTop="20dp" android:layout_width="match_parent" android:layout_height="wrap_content"/> <LinearLayout android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:id="@+id/speech" android:text="Speech" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="wrap_content"/> <Button android:id="@+id/record" android:text="Record" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> </LinearLayout>
Activity文件
public class SpeechActivity extends AppCompatActivity {
private EditText input;
private Button speech,record;
private TextToSpeech textToSpeech;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_speech);
textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if (status == textToSpeech.SUCCESS) {
int result = textToSpeech.setLanguage(Locale.CHINA);
if (result != TextToSpeech.LANG_COUNTRY_AVAILABLE
&& result != TextToSpeech.LANG_AVAILABLE){
Toast.makeText(SpeechActivity.this, "TTS暫時不支持這種語音的朗讀!",
Toast.LENGTH_SHORT).show();
}
}
}
});
input = (EditText) findViewById(R.id.input_text);
speech = (Button) findViewById(R.id.speech);
record = (Button) findViewById(R.id.record);
speech.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
textToSpeech.speak(input.getText().toString(),
TextToSpeech.QUEUE_ADD, null);
}
});
record.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String inputText = input.getText().toString();
HashMap<String, String> myHashRender = new HashMap<>();
myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, inputText);
textToSpeech.synthesizeToFile(inputText, myHashRender,
"/mnt/sdcard/my_recorder_audios/sound.wav");
Toast.makeText(SpeechActivity.this, "聲音記錄成功。", Toast.LENGTH_SHORT).show();
}
});
}
@Override
protected void onDestroy() {
if (textToSpeech != null)
textToSpeech.shutdown();
super.onDestroy();
}
}這里我們使用的是中文,int result = textToSpeech.setLanguage(Locale.CHINA);你也可以根據自己的需求更改為其他支持的語言。
最后在AndroidManifest.xml中加入權限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
總結:通過使用Android提供的TTS,我們可以對指定文本內容進行朗讀,從而發生聲音;還允許把文本對應的音頻錄制成音頻文件,保存到本地。
到此,相信大家對“Android怎么實現自動朗讀功能”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。