在线语音合成的使用方法:

首先下载相关的sdk,这个网址里有多种版本,我选择的Android。

http://open.voicecloud.cn/index.php/services/voicebase?type=tts&tab_index=1

需要注意的是,最好先创建应用,审核通过后会返回一个APPID号,这个号在开发时会使用。

下载并解压后如图:

Android 讯飞语音之语音合成(在线有声朗读)

其中,doc中是相关文档,libs中是待会儿要导入的语音包,sample中是自带的Demo,大家可以看看。

下面我们通过实例来简单的使用在线语音合成功能:

首先创建工程。

导入语音包,结构如下图:

Android 讯飞语音之语音合成(在线有声朗读)

接下来是布局文件

main.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <Button        android:id="@+id/btn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="有声朗读" /></LinearLayout>

然后MainActivity.java:

注意导入的外部包:

import com.iflytek.cloud.SpeechConstant;
import com.iflytek.cloud.SpeechError;
import com.iflytek.cloud.SpeechSynthesizer;
import com.iflytek.cloud.SpeechUtility;
import com.iflytek.cloud.SynthesizerListener;

public class MainActivity extends Activity {    private SpeechSynthesizer mTts;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        SpeechUtility.createUtility(this, SpeechConstant.APPID + "=53c4c169");        mTts = SpeechSynthesizer.createSynthesizer(this, null);        set_mTts();        Button btn = (Button) findViewById(R.id.btn);        btn.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                mTts.startSpeaking(                        "7月14日,2014年英国范堡罗航展正式开幕。瑞典萨伯公司研制的最新型“鹰狮NG”战斗机首次亮相该航展。该机在Jas-39“鹰狮”基础上进行全面改进,更换了最新型的AESA雷达,并配备有“流星”中程空空导弹、IRIS-T近距格斗导弹、KEPD-350远程防区外空地导弹等最新一代机载武器,战斗力得到空前飞跃。",                        mTtsListener);            }        });    }    private void set_mTts() {        // 设置发音人        mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");        // 设置语速        mTts.setParameter(SpeechConstant.SPEED, "20");        // 设置音调        mTts.setParameter(SpeechConstant.PITCH, "50");        // 设置音量0-100        mTts.setParameter(SpeechConstant.VOLUME, "100");        // 设置播放器音频流类型        mTts.setParameter(SpeechConstant.STREAM_TYPE, "3");        // 如果不需要保存保存合成音频,请注释下行代码        // mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH,        // "./sdcard/iflytek.pcm");    }    private SynthesizerListener mTtsListener = new SynthesizerListener() {        // 缓冲进度回调,arg0为缓冲进度,arg1为缓冲音频在文本中开始的位置,arg2为缓冲音频在文本中结束的位置,arg3为附加信息        @Override        public void onBufferProgress(int arg0, int arg1, int arg2, String arg3) {            // TODO Auto-generated method stub        }        // 会话结束回调接口,没有错误时error为空        @Override        public void onCompleted(SpeechError error) {            // TODO Auto-generated method stub        }        // 开始播放        @Override        public void onSpeakBegin() {            // TODO Auto-generated method stub        }        // 停止播放        @Override        public void onSpeakPaused() {            // TODO Auto-generated method stub        }        // 播放进度回调,arg0为播放进度0-100;arg1为播放音频在文本中开始的位置,arg2为播放音频在文本中结束的位置。        @Override        public void onSpeakProgress(int arg0, int arg1, int arg2) {            // TODO Auto-generated method stub        }        // 恢复播放回调接口        @Override        public void onSpeakResumed() {            // TODO Auto-generated method stub        }    };    @Override    protected void onDestroy() {        mTts.stopSpeaking();        mTts.destroy();// 退出时释放连接        super.onDestroy();    }}

注意:千万不要忘记在清单文件中添加权限。

<uses-permission android:name="android.permission.RECORD_AUDIO" />    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    <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" />

运行软件(记住要联网),点击按钮即可有声朗读了。

Demo下载:http://download.csdn.net/detail/af74776/7638817(注意:appid前应该加上=)

更多相关文章

  1. FFmpeg3.3.2+SDL2实现流媒体音频播放
  2. 三种方式实现自定义圆形页面加载中效果的进度条
  3. 基于FFmpeg的音频编码(PCM数据编码成AAC android)
  4. Android音频系统之AudioTrack
  5. Android 多媒体应用——SoundPool音频播放
  6. android中SeekBar拖动进度条的使用及事件监听
  7. Android学习笔记:进度条ProgressBar和线程
  8. 关于控制android音频流的音量

随机推荐

  1. 【Android(安卓)Developers Training】 7
  2. Android(安卓)文件存储知识点总结
  3. android Support Annotations(注解支持)
  4. Android(安卓)即时音视频解决方案1——环
  5. Android中onActivityResult方法总结
  6. ListView改变里面TextView的字体颜色
  7. android SDK manager 以及ADT eclipse更
  8. 将android 8.1刷到nexus 6p上
  9. Android(安卓)四种启动模式(Launch Mode)
  10. No resource found that matches the giv