android平台tts中文语音合成核心代码及设置流程

因项目需要中文朗读推送信息,做了一个简单调查。现站在应用开发者角度介绍一下android系统下语音合成的开发配置流程:

1)核心代码

android自带api,引入包import android.speech.tts.TextToSpeech;

private TextToSpeech tts;
//The constructor for the TextToSpeech class, using the default TTS engine. This will also initialize the associated TextToSpeech engine if it isn't already //running,即初始化一个语音合成类,使用默认TTS合成引擎。若引擎未实例化则实例化引擎
tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
        //实例化语音合成类时回调该方法
            @Override
            public void onInit(int status) {
                // TODO Auto-generated method stub
                if (status == TextToSpeech.SUCCESS)
                {
                    int result = tts.setLanguage(Locale.CHINA);
                    if (result == TextToSpeech.LANG_MISSING_DATA
                            || result == TextToSpeech.LANG_NOT_SUPPORTED)
                    {
                        Toast.makeText(getBaseContext(), "Language is not available.",
                                Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });

//朗读输入的字符串str
tts.speak(str, TextToSpeech.QUEUE_FLUSH, null);


2)引擎设置

现有好多手机自带支持中文语音合成的引擎,但早些默认tts(不支持中文)。若手机或设备无自带的支持中文的引擎推荐下载科大讯飞的语音引擎(同事加本人亲测),不特别生硬,基本可以达到要求(不过软件兼容性不是很好,有一些机型无法下载的情况)。

无论使用何种引擎,开发者只需调用tts即可,底层代码已被封装好。下面介绍一下如何在手机中选择引擎:

设置-->语言和输入法-->文字转语音(TTS)输出

有些手机在辅助功能或者别的里面




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值