`
wen742538485
  • 浏览: 229233 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android 通过手说tts中文语音包实现中文朗读

阅读更多
Android 通过手说tts中文语音包实现中文朗读


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

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

开发准备:

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

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

安装到真实手机或者手机模拟器中。



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

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

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



第二步:demo实现

xml文件

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<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:text="开始朗读" 
    android:onClick="speechText" 
    /> 
</LinearLayout> 
java代码:

Java代码
package com.zhouzijing.android.demo;  
 
import com.shoushuo.android.tts.ITts;  
import com.shoushuo.android.tts.ITtsCallback;  
import android.app.Activity;  
import android.content.ComponentName;  
import android.content.Context;  
import android.content.Intent;  
import android.content.ServiceConnection;  
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.widget.Button;  
import android.widget.EditText;  
import android.widget.Toast;  
 
public class SpeechActivity 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.speech_text);  
        context = this;  
        edtSpeectText = (EditText) findViewById(R.id.edtSpeectText);  
        btnSpeechGo = (Button) findViewById(R.id.btnSpeechGo);  
    }  
 
    /** 
     * 按钮:朗读. 
     *  
     * @param v 
     */ 
    public void speechText(View v) {  
        v.setEnabled(false);  
        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);  
        }  
    }  
 

分享到:
评论

相关推荐

    android实现语音朗读 支持中文朗读 TTS 讯飞语音库

    android下实现对文本的语音朗读,TTS技术,支持中文朗读。Android SDK 4.04下测试通过。 附件包含测试源代码及语音库文件 这是语音合成测试工程,如果需要朗读中文请安装中文引擎。我采用的是讯飞语音库,手机版本...

    科大讯飞TTS离线语音包

    科大讯飞TTS离线语音包,供科大讯飞Android TTS引擎使用

    TTS_library_stub_3.0_market.jar

    用于android开发语音识别TTS的jar包。支持朗读中文。为在google无法下载提供方便!

    离线语音合成(TTS)安卓版(Android)

    包含两款支持安卓(Android)离线语音合成(朗读)的演示App源码,采用塘上科技语音合成SDK,支持变声,变音高和语速,无需联网可节省流量。项目请用Eclipse+ADT进行编译,ADT需要v21.1.0-569685或更新的版本。 最新版...

    度秘语音引擎3.0-BaiduSpeechService.apk

    度秘语音引擎,3.0版本,android系统安装后可以选择引擎进行TTS转换。

    TTS_library_stub_3.0_market.jar.rar_TTS library stub.jar_TTS_lib

    一个能说中文tts jar包,辅助开发者开发。Android 从1.6 版本开始支持Text To Speech ,使用的是Pico 语音合成引擎,但是只支持 English 、 French 、 German...因此使用 Android 默认的 TTS Engine 是没法朗读中文的。

    疯狂Android讲义源码

     8.5 自动朗读(TTS) 347  8.6 本章小结 350  第9章 使用ContentProvider实现  第9章 数据共享 351  9.1 数据共享标准:  ContentProvider简介 352  9.1.1 ContentProvider简介 352  9.1.2 Uri简介 353  ...

    疯狂Android讲义.part2

    8.5 自动朗读(TTS) 347 8.6 本章小结 350 第9章 使用ContentProvider实现 第9章 数据共享 351 9.1 数据共享标准: ContentProvider简介 352 9.1.1 ContentProvider简介 352 9.1.2 Uri简介 353 9.1.3 使用...

    疯狂Android讲义.part1

    8.5 自动朗读(TTS) 347 8.6 本章小结 350 第9章 使用ContentProvider实现 第9章 数据共享 351 9.1 数据共享标准: ContentProvider简介 352 9.1.1 ContentProvider简介 352 9.1.2 Uri简介 353 9.1.3 使用...

    PowerWord.exe

    在默认情况下,语音识别的语言为英文,你可以通过长按语音按钮切换语言,当然,你要是不嫌麻烦,在设置中也能进行更改。金山词霸给出的识别结果有时不仅仅只有一个备选项,而相 对来说,字母拼写的方式更加准确。 ...

Global site tag (gtag.js) - Google Analytics