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

熊孩纸 阅读:677 2021-04-01 10:07:29 评论:0

手说TTS介绍:               

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

 

                      手说TTS,是Android平台下的中文语音引擎,提供了中文文本到语音的转换。
                      使用手说TTS进行中文文本的朗读,包括中文简繁体、阿拉伯数字、英文字母及一些符号的混读。并且处理了中文的多音字和音调转换等问题。
                      开发人员可以使用手说TTS来开发Android平台下需要中文语音的应用程序。

 

实例代码开发准备:                   

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

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

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

 

                             

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

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

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

  

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

                              布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
 
    <EditText 
        android:id="@+id/edtSpeectText" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="太阳从东边升起,慢慢的露出红彤彤的笑脸。" /> 
 
    <Button 
        android: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 android.content.ComponentName; 
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() { 
		@Override 
		public void handleMessage(Message msg) { 
			Toast.makeText(context, " 我的话说完了 ", Toast.LENGTH_SHORT).show(); 
			btnSpeechGo.setEnabled(true); 
		} 
	}; 
	/** 
	 * 回调参数. 
	 */ 
	private final ITtsCallback ttsCallback = new ITtsCallback.Stub() { 
		// 朗读完毕. 
		@Override 
		public void speakCompleted() throws RemoteException { 
			handler.sendEmptyMessage(0); 
		} 
	}; 
 
	/** 
	 * tts服务连接. 
	 */ 
	private final ServiceConnection ttsConnection = new ServiceConnection() { 
		@Override 
		public void onServiceDisconnected(ComponentName arg0) { 
			try { 
				// 注册回调参数 
				ttsService.unregisterCallback(ttsCallback); 
			} catch (RemoteException e) { 
				e.printStackTrace(); 
			} 
			ttsService = null; 
			ttsBound = false; 
		} 
 
		@Override 
		public void onServiceConnected(ComponentName name, IBinder service) { 
			ttsService = ITts.Stub.asInterface(service); 
			ttsBound = true; 
			try { 
				// tts服务初始化 
				ttsService.initialize(); 
				// 撤销回调参数. 
				ttsService.registerCallback(ttsCallback); 
			} catch (RemoteException e) { 
			} 
		} 
	}; 
 
	@Override 
	public 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() { 
 
			@Override 
			public void onClick(View v) { 
				// TODO Auto-generated method stub 
				speechText(); 
			} 
 
		}); 
 
	} 
 
	/** 
	 * 按钮:朗读. 
	 *  
	 * @param v 
	 */ 
	public void speechText() { 
		try { 
			ttsService.speak(edtSpeectText.getText().toString(), 
					TextToSpeech.QUEUE_FLUSH); 
		} catch (RemoteException e) { 
			e.printStackTrace(); 
		} 
	} 
 
	@Override 
	protected void onDestroy() { 
		if (ttsBound) { 
			ttsBound = false; 
			// 撤销tts服务 
			this.unbindService(ttsConnection); 
		} 
		super.onDestroy(); 
	} 
 
	@Override 
	protected 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); 
		} 
	} 
 
}


 资源下载地址:http://download.csdn.net/detail/zhouzhiwengang/6470715

 

 

 

标签:Android
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号