android 语音交互动画,Android SDK(旧版)
注意推荐您使用新版本Android SDK,本版本后续将不再更新。详情请参见前提条件阅读接口说明,详情请参见已获取项目appkey,详情请参见已获取智能语音服务访问令牌,详情请参见关键接口NlsClient:语音处理客户端,利用该客户端可以进行一句话识别、实时语音识别和语音合成的语音处理任务。该客户端为线程安全,建议全局仅创建一个实例。SpeechSynthesizer:代表一次语音合成请求。Sp
注意
推荐您使用新版本Android SDK,本版本后续将不再更新。详情请参见
前提条件阅读接口说明,详情请参见
已获取项目appkey,详情请参见
已获取智能语音服务访问令牌,详情请参见
关键接口NlsClient:语音处理客户端,利用该客户端可以进行一句话识别、实时语音识别和语音合成的语音处理任务。该客户端为线程安全,建议全局仅创建一个实例。
SpeechSynthesizer:代表一次语音合成请求。
SpeechSynthesizerCallback:语音合成回调接口,在获得合成音频数据、发生错误等事件发生时会触发回调。您需要实现此接口,在回调方法中加入自己的处理逻辑。
调用顺序创建NlsClient实例。
定义SpeechSynthesizerCallback实现类,按业务需求处理识别结果或错误情况。
调用NlsClient.createSynthesizerRequest()方法得到SpeechSynthesizer实例。
设置SpeechSynthesizer参数。
包括access Token、appkey、语音文本(text)、发音人(voice)和语速(speechRate)等。
调用SpeechSynthesizer.start()方法开始与云端服务连接。
在回调中获得合成的音频数据并播放,或者处理错误。
调用SpeechSynthesizer.stop()方法结束语音合成。
说明
如果需要发起新的请求,请重复步骤3~7。
调用NlsClient.release()方法释放客户端实例。
Proguard配置
如果代码使用了混淆,请在proguard-rules.pro中配置:-keep class com.alibaba.idst.util.*{*;}
代码示例创建识别请求
// 创建语音合成对象
speechSynthesizer = client.createSynthesizerRequest(callback);
speechSynthesizer.setToken("");
speechSynthesizer.setAppkey("");
// 设置语音编码,PCM编码可以直接用audioTrack播放,其他编码不行。
speechSynthesizer.setFormat(SpeechSynthesizer.FORMAT_PCM);
// 以下选项都会改变最终合成的语音效果。
// 设置语音数据采样率
speechSynthesizer.setSampleRate(SpeechSynthesizer.SAMPLE_RATE_16K);
// 设置人声
speechSynthesizer.setVoice(SpeechSynthesizer.VOICE_XIAOGANG);
// 设置语音合成方法
speechSynthesizer.setMethod(SpeechSynthesizer.METHOD_RUS);
// 设置语速
speechSynthesizer.setSpeechRate(100);
// 设置是否返回语音对应的时间戳信息
speechSynthesizer.setEnableSubtitle(true);
// 设置要转为语音的文本
speechSynthesizer.setText("欢迎使用智能语音!");
speechSynthesizer.start()获取合成语音并播放// 获取音频数据的回调,在这里将音频写入播放器。
@Override
public void OnBinaryReceived(byte[] data, int code)
{
Log.d(TAG, "binary received length: " + data.length);
if (!playing) {
playing = true;
audioTrack.play();
}
audioTrack.write(data, 0, data.length);
}返回语音时间戳信息// 调用onMetaInfo,需要设置:SpeechSynthesizer.setEnableSubtitle(true)。
@Override
public void onMetaInfo(String message, int code) {
Log.d(TAG,"onMetaInfo " + message + ": " + String.valueOf(code));
}
更多推荐
所有评论(0)