Android TTS(TextToSpeech)语音输出与RecognizerIntent语音识别

一、引言

在《Android 4 高级编程(第3版)》第11章中,讲到了语音输出及语音识别。
对语音识别,公司项目中有用到,但是我们用的第三方的(讯飞),由于这块功能不是由我来做,所以也就没有花时间去看第三方是怎么接入的,只是粗略的扫了一下项目中这块的代码,没有难度。跟其它第三方API一样。

二、正文

1、TTS(TextToSpeech)

TextToSpeech:在android speech包下,从字面意思就不难猜到,它是把文字转换成语音读出来。
那它是什么原理呢?
其实TTS是一个语音库,在这个库里收录了指定语言的所有单词,以字为基本单元,采用波形语音生成的方法来实现。在google最开始时,只能支持很少数种语言,当然也不支持中文,因为咱华夏文明源远流长,博大精深,不是你一下子就能建一个语音库的。
因此不难猜想到,在把文本转换成语音之前,得设置:
A,用哪种语言;
B,有没有下载安装相应的语音库;
实现比较简单,下面看下具体代码:
第一步:初始化TextToSpeech

 private void initParams() {
 //这里得由Activity实现OnInitListener监听
        mTextToSpeech = new TextToSpeech(this,this);
    }

....

 @Override
    public void onInit(int status) {

        if(status == TextToSpeech.SUCCESS){
           // int result = mTextToSpeech.setLanguage(Locale.US);//美式英语发音
            int result = mTextToSpeech.setLanguage(Locale.CHINESE);//中文
            if(result == TextToSpeech.LANG_MISSING_DATA ||
                    result == TextToSpeech.LANG_NOT_SUPPORTED){
                Toast.makeText(this,"数据丢失或不支持",Toast.LENGTH_SHORT)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值