今天要使我的app说话,因此要使用到语音合成,安卓自带的语音合成技术好像并不支持中文,因此采用国内的api,其中有百度,科大讯飞,文章是采用了百度的api,亲测踩坑之后已经可用。
1、注册开发者账号,百度开发者平台http://ai.baidu.com/tech/speech/tts,然后点击免费试用,里面可以有创建应用。
2、填写包名要写安卓项目的包名,注册之后会有AppID、API Key、Secret Key,这些要进行相应替换。
包名看这儿:
3、申请好了就进入SDK下载:
4、下载好了解压出来有一个demo文件,可以直接演示,这里直接使用源文件加入我们的安卓项目中,首先将百度的jar包导入,路径在app/libs,关于导jar包可以参考我另一篇文档https://blog.csdn.net/jyfbug/article/details/88421221。导入后如下:
5、接下来将app/src/main里面的assets和jniLibs复制到我们项目的文件夹下,将app/src/main/com.baidu.tts.sample下的control、util、listener文件夹和MainHandlerConstant.java复制到我们项目对应文件夹下,复制后我的项目结构如下所示:
6、这里有一个大坑就是在control、listener、util中的import的包都是原来的包,所以我们要手动进去改成我们的包的路径,这里以一个做演示:
改成自己的项目路径:
7、建立工具类SpeakVoiceUtil.java(在原来的MiniActivity.java中改变),此后可直接调用,需要注意的也是路径问题(改成自己项目路径),代码如下。
package com.example.jy.myapplication;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.media.AudioManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;