日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

语音合成 java_语音合成 JAVA SDK

發(fā)布時(shí)間:2024/3/24 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 语音合成 java_语音合成 JAVA SDK 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

語音合成 Java SDK

一、SDK描述

京東AI為滿足TTS相關(guān)產(chǎn)品的快速接入,在REST API的基礎(chǔ)上對(duì)各種平臺(tái)和語言進(jìn)行封裝,大大降低客戶接入的難度。現(xiàn)已發(fā)布的平臺(tái)及語言有:C/C++,Java,Android,IOS,Python, H5等,已適用于大部分的應(yīng)用場(chǎng)景。并成功應(yīng)用于虛擬主播,智能客服,智能外呼,讀書,新聞讀報(bào),引導(dǎo)機(jī)器人,智能音箱等各領(lǐng)域的應(yīng)用場(chǎng)景。

用戶通過SDK創(chuàng)建TTSEngine對(duì)象,設(shè)置用戶需要的參數(shù),把文本數(shù)據(jù)通過speak和synthesize方法,交給實(shí)例化的ttsEngine對(duì)象,即可通過注冊(cè)的Listener對(duì)象,獲取生成的語音數(shù)據(jù)和系統(tǒng)的各種狀態(tài),大大降低了AI功能接入的難度。

本文檔只提供Java 版本中的在線語音合成功能

1.1. 功能描述

當(dāng)前主要支持的功能:

基本功能: 語音數(shù)據(jù)合成功能。

1.2. 鑒權(quán)說明

平臺(tái)為每個(gè)API提供試用體驗(yàn)服務(wù),您在AI市場(chǎng)選擇“免費(fèi)試用”規(guī)格下單后,即可開始體驗(yàn)業(yè)內(nèi)領(lǐng)先的人工智能API服務(wù)。 免費(fèi)試用服務(wù)具有調(diào)用量、QPS限制,如需更高性能的API服務(wù),可以提交咨詢工單,聯(lián)系京東AI擴(kuò)容購(gòu)買。

該SDK封裝TTS API的功能,需要先參考 接入流程 獲取AppKey和SecretKey,并在調(diào)用SDK時(shí)作為參數(shù)傳入。

1.3. 支持的系統(tǒng)

通用Java平臺(tái)系統(tǒng)

二、使用說明

2.1. 下載地址

TTS_SDK_JAVA.zip(5980552a7822a9df8bf1e67657661192)

三、接口說明

3.2 TTSParam 參數(shù)封裝

setOpts()

函數(shù)定義:

setOpts(String key, String val)

功能:

設(shè)置TTS系統(tǒng)參數(shù)值。

參數(shù)說明:

key:參數(shù)名稱

val:參數(shù)值

用例:

TTSParam ttsParam = new TTSParam();

ttsParam.setOpts("serverURL", "https://aiapi.jd.com/jdai/tts"); //接口地址(注意每個(gè)API接口地址不同,詳見購(gòu)買的API接口文檔)

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

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

ttsParam.setOpts("CustomerType", "0"); //固定值,Neuhub平臺(tái)

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:男聲 (注意每個(gè)API的音色參數(shù)不同,詳見購(gòu)買的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()

函數(shù)定義:

getOpts(String key)

功能:

獲取系統(tǒng)參數(shù)值

參數(shù):

key:參數(shù)名稱

用例:

String readTimeout = ttsParam.getOpts("readTimeout")

toString()

功能:

輸出系統(tǒng)的參數(shù)

用例:

String paramInfo = ttsParam.toString()

3.3 TTSEngineListener SDK事件監(jiān)聽類

onRecvData(byte[] data, int index);

功能:

合成數(shù)據(jù)的回調(diào)函數(shù)

參數(shù):

data:合成的數(shù)據(jù)

index:數(shù)據(jù)返回的index值, 當(dāng)index由正數(shù)變?yōu)樨?fù)數(shù)時(shí), 合成數(shù)據(jù)結(jié)束

onError()

函數(shù)定義:

onError(int err)

功能:

系統(tǒng)異?;卣{(diào)

參數(shù):

err :錯(cuò)誤碼

3.4 TTSEngine 引擎類

TTSEngine()

函數(shù)定義:

TTSEngine()

功能:

創(chuàng)建tts engine對(duì)象

用例:

TTSEngine ttsEngine = new TTSEngine()

setParam()

函數(shù)定義:

setParam(TTSParam param)

功能:

設(shè)置參數(shù)。

參數(shù):

param:TTSEngine 參數(shù)對(duì)象

用例:

ttsEngine.setParam(ttsParam)

synthesize()

函數(shù)定義:

synthesize(String txt, TTSEngineListener listener)

功能:

TTS 合成音頻功能。

參數(shù):

txt:文本輸入。

listener:監(jiān)聽函數(shù)。

用例:

String txt = "我是京東小精靈";

ttsEngine.synthesize(txt, listener);

五、錯(cuò)誤碼

此處錯(cuò)誤碼只包含的SDK,只處理SDK處理的錯(cuò)誤,API的錯(cuò)誤通過onError函數(shù)直接透?jìng)鳌?/p>

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) { // 沒有結(jié)束

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"); //接口地址(注意每個(gè)API接口地址不同,詳見購(gòu)買的API接口文檔)

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

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

ttsParam.setOpts("CustomerType", "0"); //固定值,Neuhub平臺(tái)

//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:男聲(注意每個(gè)API的音色參數(shù)不同,詳見購(gòu)買的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

總結(jié)

以上是生活随笔為你收集整理的语音合成 java_语音合成 JAVA SDK的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。