语音合成是实现人机语音交互,建立一个有听和讲能力的交互系统所必需的关键技术。随着语音技术的发展,百度自主研发了语音合成系统(TTS),功能是接受用户发送的文本,生成语音发送给用户。 这篇文章将介绍如何使用百度Android语音合成SDK。 与语音识别SDK类似,使用语音合成SDK也需要注册,并开启语音合成API服务,详细步骤可以参考 点击打开链接 中的注册部分。 百度语音合成SDK以JAR包+动态链接库形式发布,需要开发者在 点击打开链接 下载SDK开发包,并将libs文件夹拷贝到工程中
申请必要的权限
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

初始化SpeechSynthesizer对象
        speechSynthesizer = new SpeechSynthesizer(getApplicationContext(),                "holder", this);        // 此处需要将setApiKey方法的两个参数替换为你在百度开发者中心注册应用所得到的apiKey和secretKey        speechSynthesizer.setApiKey("your-apiKey", "your-secretKey");

参数设置
private void setParams() {        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEAKER, "0");        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_VOLUME, "5");        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEED, "5");        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_PITCH, "5");        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_AUDIO_ENCODE, "1");        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_AUDIO_RATE, "4");        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_LANGUAGE, "ZH");        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_NUM_PRON, "0");        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_ENG_PRON, "0");        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_PUNC, "0");        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_BACKGROUND, "0");        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_STYLE, "0");        speechSynthesizer.setParam(SpeechSynthesizer.PARAM_TERRITORY, "0");    }
不需要实现这么多参数,具体参数的含义可以参看SDK的使用文档和参数设置。 如果需要对音频播报的音频流进行设置,可以调用如下接口
 speechSynthesizer.setAudioStreamType(AudioManager.STREAM_MUSIC);
以上内容即可以实现语音合成的操作,识别过程中可以使用SpeechSynthesizerListener来监听状态,从而更好的实现界面同步。
 class listener implements SpeechSynthesizerListener {        @Override        public void onStartWorking(SpeechSynthesizer synthesizer) {            logDebug("开始工作,请等待数据...");        }        @Override        public void onSpeechStart(SpeechSynthesizer synthesizer) {            logDebug("朗读开始");        }        @Override        public void onSpeechResume(SpeechSynthesizer synthesizer) {            logDebug("朗读继续");        }        @Override        public void onSpeechProgressChanged(SpeechSynthesizer synthesizer, int progress) {        }        @Override        public void onSpeechPause(SpeechSynthesizer synthesizer) {            logDebug("朗读已暂停");        }        @Override        public void onSpeechFinish(SpeechSynthesizer synthesizer) {            logDebug("朗读已停止");        }        @Override        public void onNewDataArrive(SpeechSynthesizer synthesizer, byte[] dataBuffer, int dataLength) {            logDebug("新的音频数据:" + dataLength);        }        @Override        public void onError(SpeechSynthesizer synthesizer, SpeechError error) {            logError("发生错误:" + error.errorDescription + "(" + error.errorCode + ")");        }        @Override        public void onCancel(SpeechSynthesizer synthesizer) {            logDebug("已取消");        }        @Override        public void onBufferProgressChanged(SpeechSynthesizer synthesizer, int progress) {        }    }



更多相关文章

  1. Android音频系统之AudioTrack起播线与underrun问题研究(Android(
  2. 安卓音频采集播放方法
  3. Android智能手机中各种音频场景下的audio data path
  4. Android(安卓)P2P语音通话实现(思路探讨)http://www.cnblogs.com/m
  5. Android(安卓)TTS 中文 文字转语音 使用TextToSpeech Svox
  6. Qt on android 播放视频的实现
  7. 高仿android 版微信(服务端,客户端都有)
  8. Android集成讯飞语音、百度语音、阿里语音识别
  9. android音频裁剪(2)——Wav裁剪

随机推荐

  1. Android(安卓)ProgressBar ImageLoading
  2. android按钮点击的四种响应方式
  3. Android(安卓)温度传感器返回当前的温度
  4. Gradle build error, Error:Execution fa
  5. Android中的设计模式--建造者模式
  6. android写入节点的方法
  7. Android(安卓)Intent/Context Flags 使用
  8. Android(安卓)M 新控件了解学习
  9. [Android]当Activity启动模式为singleTas
  10. Android(安卓)LinearLayout 实现 高度动