手说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 实现中文语音播报)》对你有帮助,请点赞、收藏,并留下你的观点哦!