糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > android 语音播报(通过手说tts 实现中文语音播报)

android 语音播报(通过手说tts 实现中文语音播报)

时间:2019-09-06 09:22:48

相关推荐

android 语音播报(通过手说tts 实现中文语音播报)

手说TTS介绍:

关于手说tts中文语音包的详细资料可以查看官网 /index.html

手说TTS,是Android平台下的中文语音引擎,提供了中文文本到语音的转换。

使用手说TTS进行中文文本的朗读,包括中文简繁体、阿拉伯数字、英文字母及一些符号的混读。并且处理了中文的多音字和音调转换等问题。

开发人员可以使用手说TTS来开发Android平台下需要中文语音的应用程序。

实例代码开发准备:

第一步:安装手说TTS安装包

从官网 /sstts.html 下载手说TTS安装包:ShoushuoTTS.apk 。

安装到真实手机或者手机模拟器中。(如果不安装shoushouTTS.apk文件,就进行功能代码编写肯定会报错,记住:第一步先安装shuoshouTTS.apk)

第二步:下载手说TTS客户类库包

下载手说TTS客户类库包:shoushuotts.jar 。

将该jar文件引入到你的应用中。

废话不多说,直接上源码:

布局文件:

<LinearLayout xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><EditTextandroid:id="@+id/edtSpeectText"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="太阳从东边升起,慢慢的露出红彤彤的笑脸。" /><Buttonandroid:id="@+id/btnSpeechGo"android:layout_width="fill_parent"android:layout_height="wrap_content"android:onClick="speechText"android:text="开始朗读" /></LinearLayout>

核心功能代码文件:

package com.shoushuo.voicebroadcast;import com.shoushuo.android.tts.ITts;import com.shoushuo.android.tts.ITtsCallback;import android.os.Bundle;import android.os.Handler;import android.os.IBinder;import android.os.Message;import android.os.RemoteException;import android.speech.tts.TextToSpeech;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import android.app.Activity;import ponentName;import android.content.Context;import android.content.Intent;import android.content.ServiceConnection;public class MainActivity extends Activity {private EditText edtSpeectText;private Button btnSpeechGo;private Context context;private ITts ttsService;private boolean ttsBound;/*** 定义Handler.*/private final Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {Toast.makeText(context, " 我的话说完了 ", Toast.LENGTH_SHORT).show();btnSpeechGo.setEnabled(true);}};/*** 回调参数.*/private final ITtsCallback ttsCallback = new ITtsCallback.Stub() {// 朗读完毕.@Overridepublic void speakCompleted() throws RemoteException {handler.sendEmptyMessage(0);}};/*** tts服务连接.*/private final ServiceConnection ttsConnection = new ServiceConnection() {@Overridepublic void onServiceDisconnected(ComponentName arg0) {try {// 注册回调参数ttsService.unregisterCallback(ttsCallback);} catch (RemoteException e) {e.printStackTrace();}ttsService = null;ttsBound = false;}@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {ttsService = ITts.Stub.asInterface(service);ttsBound = true;try {// tts服务初始化ttsService.initialize();// 撤销回调参数.ttsService.registerCallback(ttsCallback);} catch (RemoteException e) {}}};@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);context = this;edtSpeectText = (EditText) findViewById(R.id.edtSpeectText);btnSpeechGo = (Button) findViewById(R.id.btnSpeechGo);btnSpeechGo.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubspeechText();}});}/*** 按钮:朗读.* * @param v*/public void speechText() {try {ttsService.speak(edtSpeectText.getText().toString(),TextToSpeech.QUEUE_FLUSH);} catch (RemoteException e) {e.printStackTrace();}}@Overrideprotected void onDestroy() {if (ttsBound) {ttsBound = false;// 撤销tts服务this.unbindService(ttsConnection);}super.onDestroy();}@Overrideprotected void onStart() {super.onStart();if (!ttsBound) {String actionName = "com.shoushuo.android.tts.intent.action.InvokeTts";Intent intent = new Intent(actionName);// 绑定tts服务this.bindService(intent, ttsConnection, Context.BIND_AUTO_CREATE);}}}

资源下载地址:/detail/zhouzhiwengang/6470715

如果觉得《android 语音播报(通过手说tts 实现中文语音播报)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。