欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

语音合成 java_语音合成 JAVA SDK

发布时间:2024/3/24 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 语音合成 java_语音合成 JAVA SDK 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

语音合成 Java SDK

一、SDK描述

京东AI为满足TTS相关产品的快速接入,在REST API的基础上对各种平台和语言进行封装,大大降低客户接入的难度。现已发布的平台及语言有:C/C++,Java,Android,IOS,Python, H5等,已适用于大部分的应用场景。并成功应用于虚拟主播,智能客服,智能外呼,读书,新闻读报,引导机器人,智能音箱等各领域的应用场景。

用户通过SDK创建TTSEngine对象,设置用户需要的参数,把文本数据通过speak和synthesize方法,交给实例化的ttsEngine对象,即可通过注册的Listener对象,获取生成的语音数据和系统的各种状态,大大降低了AI功能接入的难度。

本文档只提供Java 版本中的在线语音合成功能

1.1. 功能描述

当前主要支持的功能:

基本功能: 语音数据合成功能。

1.2. 鉴权说明

平台为每个API提供试用体验服务,您在AI市场选择“免费试用”规格下单后,即可开始体验业内领先的人工智能API服务。 免费试用服务具有调用量、QPS限制,如需更高性能的API服务,可以提交咨询工单,联系京东AI扩容购买。

该SDK封装TTS API的功能,需要先参考 接入流程 获取AppKey和SecretKey,并在调用SDK时作为参数传入。

1.3. 支持的系统

通用Java平台系统

二、使用说明

2.1. 下载地址

TTS_SDK_JAVA.zip(5980552a7822a9df8bf1e67657661192)

三、接口说明

3.2 TTSParam 参数封装

setOpts()

函数定义:

setOpts(String key, String val)

功能:

设置TTS系统参数值。

参数说明:

key:参数名称

val:参数值

用例:

TTSParam ttsParam = new TTSParam();

ttsParam.setOpts("serverURL", "https://aiapi.jd.com/jdai/tts"); //接口地址(注意每个API接口地址不同,详见购买的API接口文档)

ttsParam.setOpts("appKey", "XXXXXX");

ttsParam.setOpts("appSecret", "XXXXXXX");

ttsParam.setOpts("CustomerType", "0"); //固定值,Neuhub平台

ttsParam.setOpts("tte", "1"); // 1:UTF-8 (目前仅支持UTF-8格式)

ttsParam.setOpts("aue", "1"); // 0:wav 1:pcm 2:opus 3:mp3

ttsParam.setOpts("tim", "0"); // 0:女声 1:男声 (注意每个API的音色参数不同,详见购买的API接口文档)

ttsParam.setOpts("vol", "2.0"); // 音量[0.1, 10.0]

ttsParam.setOpts("sp", "1.0"); // 语速 [0.5, 2.0]

ttsParam.setOpts("sr", "24000"); // 采样率 wav和pcm支持4k到24k的采样率 opus支持8k 12k 16k 和24k的采样率

ttsParam.setOpts("streamMode", "1"); // 1 流式模式, 0 非流式模式

ttsParam.setOpts("tt", "0"); // 文本格式, 0:文本 1:SSML

ttsEngine.setParam(ttsParam);

String txt = "我是京东小精灵";

System.out.println("start synthesize ....");

ttsEngine.synthesize(txt, listener);

System.out.println("synthesize end");

getOpts()

函数定义:

getOpts(String key)

功能:

获取系统参数值

参数:

key:参数名称

用例:

String readTimeout = ttsParam.getOpts("readTimeout")

toString()

功能:

输出系统的参数

用例:

String paramInfo = ttsParam.toString()

3.3 TTSEngineListener SDK事件监听类

onRecvData(byte[] data, int index);

功能:

合成数据的回调函数

参数:

data:合成的数据

index:数据返回的index值, 当index由正数变为负数时, 合成数据结束

onError()

函数定义:

onError(int err)

功能:

系统异常回调

参数:

err :错误码

3.4 TTSEngine 引擎类

TTSEngine()

函数定义:

TTSEngine()

功能:

创建tts engine对象

用例:

TTSEngine ttsEngine = new TTSEngine()

setParam()

函数定义:

setParam(TTSParam param)

功能:

设置参数。

参数:

param:TTSEngine 参数对象

用例:

ttsEngine.setParam(ttsParam)

synthesize()

函数定义:

synthesize(String txt, TTSEngineListener listener)

功能:

TTS 合成音频功能。

参数:

txt:文本输入。

listener:监听函数。

用例:

String txt = "我是京东小精灵";

ttsEngine.synthesize(txt, listener);

五、错误码

此处错误码只包含的SDK,只处理SDK处理的错误,API的错误通过onError函数直接透传。

Name

Value

Description

OK_NO

0

Success

ERR_RESOURCE_NO

-100

Loading error

ERR_PLAYER_NO

-101

audio player error

ERR_TEXTEMPTY_NO

-102

Text is empty

ERR_TEXTTOOLONG_NO

-103

Text is too long

ERR_SYNTHESIZE_NO

-104

Synthesize error

ERR_INITTTSENGINE_NO

-105

Init TTS engine error

ERR_BATCHEMPTY_NO

-106

Batch speak empty

ERR_BATCHTOOLONG_NO

-107

Batch speak too long

ERR_PLAYERNULL_NO

-108

Audio player is null

ERR_PLAYERCLOSE_NO

-108

Audio player release failed

ERR_TTSENGINECLOSE_NO

-110

TTS engine release failed

ERR_NOT_SUPPORT

-111

TTS engine not support

ERR_SRV_Error

-112

TTS Srv status

ERR_NOT_AUTH

-113

TTS Not Auth

ERR_NO_Data_Recv

-114

Recv Data len = 0

ERR_PARAM_NO_SUPPORT

-115

Param Not Support

ERR_SRV_Exception

-116

Http Srv Exception

ERR_AUTH_OK

-117

TTS Auth OK

ERR_AUTH_Err

-118

TTS Auth Err

ERR_UNKNOWN_NO

-999

Unknown error

六、Demo示例

static boolean isSynthesizeStart = true;

static boolean isFileStart = true;

final boolean isEnd = false;

static int errno = -1;

public static void main( String[] args )

{

System.out.println( "Hello World!" );

System.out.println("Hello JD TTS ");

final Base64.Encoder encoder = Base64.getEncoder();

TTSEngine ttsEngine = new TTSEngine();

TTSParam ttsParam = new TTSParam();

TTSEngineListener listener = new TTSEngineListener() {

public int onRecvData(byte[] audioBin, int index) {

if(errno < 0) {

System.out.println("errno=" + errno);

return -1;

}

System.out.println("onRecvData :index=" + index + ", onRecvData=" + encoder.encodeToString(audioBin));

if (index > 0) { // 沒有結束

FileUtil.WriteBuf(audioBin, isFileStart, false);

} else {

FileUtil.WriteBuf(audioBin, isFileStart, true);

}

isFileStart = false;

return 0;

}

public void onError(int err) {

//System.out.println("onError");

errno = err;

return ;

}

};

//server

ttsParam.setOpts("serverURL", "https://aiapi.jd.com/jdai/tts"); //接口地址(注意每个API接口地址不同,详见购买的API接口文档)

ttsParam.setOpts("appKey", "XXXXXX");

ttsParam.setOpts("appSecret", "XXXXXXX");

ttsParam.setOpts("CustomerType", "0"); //固定值,Neuhub平台

//param

ttsParam.setOpts("tte", "1"); // 1:UTF-8 (目前仅支持UTF-8格式)

ttsParam.setOpts("aue", "3"); // 0:wav 1:pcm 2:opus 3:mp3

ttsParam.setOpts("tim", "0"); // 0:女声 1:男声(注意每个API的音色参数不同,详见购买的API接口文档)

ttsParam.setOpts("vol", "2.0"); // 音量[0.1, 10.0]

ttsParam.setOpts("sp", "1.0"); // 语速 [0.5, 2.0]

ttsParam.setOpts("sr", "24000"); // 采样率 wav和pcm支持4k到24k的采样率 opus支持8k 12k 16k 和24k的采样率

ttsParam.setOpts("streamMode", "1"); // 1 流式模式, 0 非流式模式

ttsParam.setOpts("tt", "0"); // 文本格式, 0:文本 1:SSML

ttsEngine.setParam(ttsParam);

String txt = "我是京东小精灵";

System.out.println("start synthesize ....");

ttsEngine.synthesize(txt, listener);

System.out.println("synthesize end");

}Copyright © JD AI Platform all right reserved,powered by GitbookFile Modify:

2021-01-28 07:06:14

总结

以上是生活随笔为你收集整理的语音合成 java_语音合成 JAVA SDK的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。