国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android TTS文本轉(zhuǎn)語音TextToSpeech

2019-11-09 17:36:54
字體:
供稿:網(wǎng)友

Android 系統(tǒng)里內(nèi)置了PicoTTS,對中文的支持很不給力。但是我們可以安裝“訊飛語記”TTS,中文就不是問題了。 首先介紹下核心方法speak()及其參數(shù)

public int speak(final String text, final int queueMode, final HashMap<String, String> params) { return runAction(new Action<Integer>()

text 需要轉(zhuǎn)成語音的文字 queueMode 隊(duì)列方式: QUEUE_ADD:播放完之前的語音任務(wù)后才播報本次內(nèi)容 QUEUE_FLUSH:丟棄之前的播報任務(wù),立即播報本次內(nèi)容 params 設(shè)置TTS參數(shù),可以是null。 KEY_PARAM_STREAM:音頻通道,可以是:STREAM_MUSIC、STREAM_NOTIFICATION、STREAM_RING等 KEY_PARAM_VOLUME:音量大小,0-1f 返回值:int SUCCESS = 0,int ERROR = -1。

以下是Demo代碼

package com.interjoy.demoqrcode;import android.os.Bundle;import android.speech.tts.TextToSpeech;import android.support.v7.app.AppCompatActivity;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import java.util.Locale;public class MainActivity extends AppCompatActivity { PRivate Button btn_to_speak; private TextToSpeech mSpeech; private EditText et_input; private static final String TAG_TTS = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private <T> T f(int resId) { return (T) findViewById(resId); } private void init() { btn_to_speak = f(R.id.btn_to_speak); et_input = f(R.id.et_input); speechInit(); btn_to_speak.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String text = et_input.getText().toString(); if (TextUtils.isEmpty(text)) text = "請輸入要測試的內(nèi)容"; playTTS(text); } }); } /** * 初始化TextToSpeech,在onCreate中調(diào)用 */ private void speechInit() { if (mSpeech != null) { mSpeech.stop(); mSpeech.shutdown(); mSpeech = null; } // 創(chuàng)建TTS對象 mSpeech = new TextToSpeech(MainActivity.this, new TTSListener()); } /** * 將文本用TTS播放 * * @param str 播放的文本內(nèi)容 */ private void playTTS(String str) { if (mSpeech == null) mSpeech = new TextToSpeech(this, new TTSListener()); mSpeech.speak(str, TextToSpeech.QUEUE_FLUSH, null); Log.i(TAG_TTS, "播放語音為:" + str); } private final class TTSListener implements TextToSpeech.OnInitListener { @Override public void onInit(int status) { Log.e(TAG_TTS, "初始化結(jié)果:" + (status == TextToSpeech.SUCCESS)); int result = mSpeech.setLanguage(Locale.CHINESE); //如果返回值為-2,說明不支持這種語言 Log.e(TAG_TTS, "是否支持該語言:" + (result != TextToSpeech.LANG_NOT_SUPPORTED)); } } @Override protected void onDestroy() { if (mSpeech != null) { mSpeech.stop(); mSpeech.shutdown(); mSpeech = null; } super.onDestroy(); }}

注意:1.安裝訊飛語記之后,需要設(shè)置為把它設(shè)置為默認(rèn)TTS,就像安裝搜狗輸入法后要設(shè)置手機(jī)輸入法默認(rèn)為搜狗才能用一樣。我使用華為榮耀5A具體設(shè)置步驟:設(shè)置->輔助功能->文字轉(zhuǎn)語音(TTS)輸出->訊飛語記

這里寫圖片描述

2.不用時需要及時關(guān)閉釋放tts對象 mSpeech.shutdown();


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 科技| 望城县| 清新县| 翼城县| 克拉玛依市| 绍兴市| 化州市| 扎兰屯市| 准格尔旗| 安新县| 盱眙县| 齐齐哈尔市| 渝北区| 绥阳县| 吴川市| 大安市| 平度市| 汾阳市| 富民县| 丰城市| 黔东| 隆回县| 桦甸市| 伊吾县| 岳西县| 五指山市| 虎林市| 谷城县| 哈巴河县| 宁国市| 安阳市| 会东县| 凯里市| 博罗县| 灵寿县| 甘洛县| 健康| 廊坊市| 阳东县| 高唐县| 凌云县|