android集成语音功能

ONE Goal , ONE Passion !

第1步: 预备工作

导入SDK
将开发工具包中libs目录下的Msc.jar和armeabi复制到Android工程的libs目录(如果工程无libs目录,请自行创建)中,
如下图所示—eclipse:

如下图所示—Studio:

第2步: 添加用户权限

 <!-- 语音合成权限 -->    <!-- 连接网络权限,用于执行云端语音能力 -->    <uses-permission android:name="android.permission.INTERNET" />    <!-- 获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->    <uses-permission android:name="android.permission.RECORD_AUDIO" />    <!-- 读取网络信息状态 -->    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    <!-- 获取当前wifi状态 -->    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <!-- 允许程序改变网络连接状态 -->    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />    <!-- 读取手机信息权限 -->    <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <!-- 读取联系人权限,上传联系人需要用到此权限 -->    <uses-permission android:name="android.permission.READ_CONTACTS" />

第3步: 语音合成

与语音听写相反,合成是将文字信息转化为可听的声音信息,让机器像人一样开口说话。合成的调用方法如下:

public class Voicectivity extends Activity {    SynthesizerListener mSynListener;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_voicectivity);    }    public void read(View view) {//1.创建SpeechSynthesizer对象, 第二个参数:本地合成时传InitListener        SpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer(this, null);//2.合成参数设置,详见《科大讯飞MSC API手册(Android)》SpeechSynthesizer 类        mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");//设置发音人        mTts.setParameter(SpeechConstant.SPEED, "50");//设置语速        mTts.setParameter(SpeechConstant.VOLUME, "80");//设置音量,范围0~100        mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD); //设置云端        //设置合成音频保存位置(可自定义保存位置),保存在“./sdcard/iflytek.pcm”//保存在SD卡需要在AndroidManifest.xml添加写SD卡权限//如果不需要保存合成音频,注释该行代码        // mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH, "./sdcard/iflytek.pcm");//3.开始合成        mTts.startSpeaking("科大讯飞,让世界聆听我们的声音", mSynListener);//合成监听器        mSynListener = new SynthesizerListener() {            //会话结束回调接口,没有错误时,error为null            public void onCompleted(SpeechError error) {                System.out.println("error--------"+error);            }            //缓冲进度回调            //percent为缓冲进度0~100,beginPos为缓冲音频在文本中开始位置,endPos表示缓冲音频在文本中结束位置,info为附加信息。            public void onBufferProgress(int percent, int beginPos, int endPos, String info) {            }            //开始播放            public void onSpeakBegin() {                System.out.println("开始播放");            }            //暂停播放            public void onSpeakPaused() {            }            //播放进度回调            //percent为播放进度0~100,beginPos为播放音频在文本中开始位置,endPos表示播放音频在文本中结束位置.            public void onSpeakProgress(int percent, int beginPos, int endPos) {            }            //恢复播放回调接口            public void onSpeakResumed() {            }            //会话事件回调接口            public void onEvent(int arg0, int arg1, int arg2, Bundle arg3) {            }        };    }}

activity_listener.xml文件如下:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="btlh.eductaion.activity.Voicectivity">    <Button  android:onClick="read" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="开始"/></RelativeLayout>

点击确定就可以听到妹子的播报了.

更多相关文章

  1. Android(安卓)给 app默认权限(不弹窗申请权限)
  2. Android(安卓)Audio Focus的应用(requestAudioFocus)
  3. android获取经纬度和地方名称
  4. android学习轨迹之二:Android权限标签uses-permission的书写位置
  5. Android播放照相机声音
  6. Android(安卓)MediaPlayer音乐播放
  7. 【Android】如何用MediaPlayer实现一个简单的音视频播放器
  8. android音频、视频、拍照基础操作
  9. android 仿写 screen lock

随机推荐

  1. Android(安卓)P WMS addwindow流程
  2. android中获取网络图片
  3. RadioButton 带下划线切换的案例
  4. android ImageButton 左中右分段排列
  5. Android(安卓)9编译报错sdclang设置
  6. Android(安卓)配置环境
  7. Android开发环境搭建
  8. android中遍历arrayList的四种方法
  9. Layout布局
  10. Android(安卓)ListView例子