TextToSpeech原生语音播报

来源:互联网 发布:实战java高并发程序设 编辑:程序博客网 时间:2024/05/29 11:05

原生系统中TextToSpeech目前只支持英文、法文、意大利文、德文、西班牙文,暂不支持中文播放。可以在手机设置中找到"文字转语音(TTS)输出"查看所支持语言,测试机子华为KIW-TL00   系统版本6.0.1不支持中文,Honor 9   STF-AL00   系统版本7.0已安装讯飞语音引擎,调试代码是支持中文播放。查阅资料貌似如果想要在低版本的手机上支持中文播放,那需要下载安装引擎,那遇到内存不足的情况照样无法实现需求。因此参考了百度的语音合成跟讯飞语音,后来集成了百度语音合成SDK。

如果使用原生语音播放,那运行一下代码(可尝试英文调试):

mText2Speech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {    @Override    public void onInit(int status) {        /**         * 如果装载TTS成功         * */        if (status == TextToSpeech.SUCCESS) {            /**             * 有Locale.CHINESE,但是不支持中文             * */            int result = mText2Speech.setLanguage(Locale.ENGLISH);            /**             * LANG_MISSING_DATA-->语言的数据丢失             * LANG_NOT_SUPPORTED-->语言不支持             * */            if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {                Toast.makeText(MainActivity.this, "抱歉!不支持语音播报功能...", Toast.LENGTH_SHORT).show();            } else {                mSpeechSure.setEnabled(true);                mText2Speech.speak("支持原生中文语音播报功能", TextToSpeech.QUEUE_FLUSH, null);            }        }    }});
虽然只有这么点内容,但引申出来的知识点很多,后期可深入学习。

原创粉丝点击