有道智云在線 TTS SDK 簡介
概念解釋
TTS:功能包含對文本的合成功能,輸入需要合成的文本,返回可以播放的在線URL和本地可以播放的文件和路徑
說明
Hi,您好,歡迎使用有道智云TTS Android SDK。如果您想快速體驗服務(wù),建議您前往官網(wǎng)體驗中心或者搜索小程序(有道智云體驗中心)進行試用。
本文檔主要針對需要集成TTS服務(wù) Android SDK的開發(fā)工程師,詳細描述有道智云TTS能力及集成過程。
如果您有與我們商務(wù)合作的需求,可以通過一下方式聯(lián)系我們:
商務(wù)郵箱: AIcloud_Business@corp.youdao.com
如果您對文檔內(nèi)容有任何疑問,可以通過以下幾種方式聯(lián)系我們:
客服QQ:1906538062
智云語音技術(shù)交流QQ群:861723255
聯(lián)系郵箱: zyservice@corp.youdao.com
溫馨提示:
本文檔主要針對開發(fā)人員,接入測試前需要在后臺創(chuàng)建Android應(yīng)用,并綁定TTS實例;如果您還沒有,請按照新手指南操作。
平臺向每個賬戶贈送100元的體驗金,供用戶集成前測試所用,具體資費規(guī)則詳見TTS服務(wù)報價。
功能介紹
有道TTS SDK 是有道智云開放平臺提供的云服務(wù)之一,是有道TTS接口的一種實現(xiàn),支持文字合成語音等功能。
兼容性
支持設(shè)備:運行了 Android 4.1及以上系統(tǒng)的 Android 設(shè)備
TTS SDK集成指南
集成前提
開始集成SDK之前開發(fā)者需要登錄有道開放平臺(http://www.siyue168.cn), 創(chuàng)建應(yīng)用獲取應(yīng)用ID(或者通過運營人員獲取應(yīng)用ID),以便使用TTS服務(wù)。
集成步驟
SDK包導入
請在工程文件根目錄下創(chuàng)建一個名為 libs 的子目錄(有的話則不需要創(chuàng)建),并將YoudaoBase.jar,so包和YoudaoTTS.jar拷貝到 libs 目錄下,將以下代碼添加到app的build.gradle中:
android {
sourceSets.main.jniLibs.srcDirs = ['libs']
...
}
dependencies {
implementation files('libs/online_auth.jar')
implementation files('libs/zhiyun_offline_common.jar')
implementation files('libs/YoudaoBase_v20230803.jar')
implementation files('libs/YoudaoTTS_v1.0.1.jar')
}
也可以把so包放在jniLibs下(去掉上面的jniLibs的設(shè)置)
AndroidManifest配置
添加權(quán)限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
代碼混淆配置
代碼混淆文件proguard-project.txt,添加如下內(nèi)容
-ignorewarnings
-libraryjars libs/YoudaoBase_v2.0.0.jar
-libraryjars libs/YoudaoTTS_v1.0.0.jar
-keep class com.youdao.sdk.ydtranslate.** { ;}
-keep class com.youdao.speechsynthesizer.online.* { *;}
SDK初始化
使用TTS SDK,請在程序的Application中調(diào)用SDK初始化代碼,可以參考demo中DemoApplication
//appkey即應(yīng)用ID
YouDaoApplication.init(this, appkey);
功能集成
請參考demo中的 SpeechSynthesizerDemoActivity
使用
參數(shù)說明
speed:合成語音的速度
lanType:支持語種的code
source:設(shè)置為app對應(yīng)的名稱(英文字符串)
timeout:表示超時時間
voice:翻譯結(jié)果發(fā)音選擇,0為女聲,1為男聲,默認為女聲
volume:音量大小,最大5.0,最小0.5
構(gòu)造TTS輸入對象
tps = new YoudaoSpeechSynthesizerParameters.Builder()
.source("youdaotts")
.timeout(12000)
.voiceName(currentVoiceName)
.speed(s)
.format(Constants.SOUND_OUTPUT_MP3)
.volume(Float.valueOf(volumeEditText.getText().toString().trim()))
.filePath(getExternalCacheDir().toString() + "/youdao/")///自定義文件夾需要獲取讀寫權(quán)限
.fileName("abc")
.build();
youdaoSpeechSynthesizer = YoudaoSpeechSynthesizer.getInstance(tps);
設(shè)置回調(diào),開始合成
設(shè)置回調(diào)接口包含兩個方法:onResult表示合成成功,相關(guān)結(jié)果存儲在result參數(shù)中,onError表示失敗,失敗信息放在TTSErrorCode是一個枚舉類中。
注意:整個合成是異步的,回調(diào)在子線程進行,若涉及到界面操作,請切回主線程。
youdaoSpeechSynthesizer.synthesizeAndCache(text, listener, "requestid");
YoudaoSpeechSynthesizerListener listener = new YoudaoSpeechSynthesizerListener() {
@Override
public void onResult(final TTSResult result, String input, final int seq, String requestid) {
}
@Override
public void onError(final TTSErrorCode error, final String input, final int seq, String requestid) {
}
};
發(fā)言人列表
中文名稱 |
調(diào)用參數(shù) |
音色 |
語種 |
計費分類 |
有小智 |
youxiaozhi |
男 |
中文 |
常見語種 |
有小薰 |
youxiaoxun |
女 |
中文 |
常見語種 |
有小沁 |
youxiaoqin |
女 |
中文 |
常見語種 |
有雨婷 |
youyuting |
女 |
中文 |
常見語種 |
有婷婷 |
youtingting |
女 |
中文 |
常見語種 |
有小浩 |
youxiaohao |
男 |
中文 |
常見語種 |
有小楠 |
youxiaonan |
男 |
中文 |
常見語種 |
有小美 |
youxiaomei |
女 |
英文\美式 |
常見語種 |
有小英 |
youxiaoying |
女 |
英文\英式 |
常見語種 |
有小偉 |
youxiaowei |
男 |
英文\中文(混合) |
常見語種 |
有小官 |
youxiaoguan |
男 |
英文\英式 |
常見語種 |
有雅婷 |
youyating |
女 |
英文\美式 |
常見語種 |
有可醬 |
youkejiang |
女 |
日文 |
常見語種 |
原田君 |
yuantianjun |
男 |
日文 |
常見語種 |
宮崎帥 |
gongqishuai |
男 |
日文 |
非常見語種 |
有小貝 |
youxiaobei |
女 |
中文 |
常見語種 |
薇小美 |
weixiaomei |
女 |
英文\美式 |
非常見語種 |
薇小英 |
weixiaoying |
男 |
英文\英式 |
非常見語種 |
有梅梅 |
youmeimei |
女 |
英文(詞典發(fā)音) |
常見語種 |
有瑩瑩 |
youyingying |
女 |
英文(詞典發(fā)音) |
常見語種 |
有小紹 |
youxiaoshao |
女 |
中英混(詞典發(fā)音) |
常見語種 |
樸智幼 |
piaozhiyou |
女 |
韓文 |
常見語種 |
樸泰言 |
piaotaiyan |
男 |
韓文 |
常見語種 |
安娜 |
anna |
女 |
葡語 |
非常見語種 |
薇小粵 |
youxiaoyue |
女 |
粵語 |
非常見語種 |
艾米娜 |
aimina |
女 |
阿拉伯 |
非常見語種 |
阿西亞 |
axiya |
男 |
阿拉伯 |
非常見語種 |
薇加泰 |
weijiatai |
男 |
加泰隆 |
非常見語種 |
薇小加 |
weixiaojia |
女 |
加泰隆 |
非常見語種 |
Alois |
Alois |
男 |
捷克 |
非常見語種 |
Bara |
bara |
女 |
丹麥 |
非常見語種 |
Molly |
Molly |
女 |
荷蘭 |
非常見語種 |
William |
William |
男 |
英語(澳大利亞) |
非常見語種 |
Olivia |
Olivia |
女 |
英語(澳大利亞) |
非常見語種 |
neale |
neale |
女 |
英語(英國) |
非常見語種 |
Osric |
Osric |
男 |
英語(印度) |
非常見語種 |
Rama |
Rama |
女 |
英語(印度) |
非常見語種 |
Noah |
Noah |
男 |
英語(美國) |
非常見語種 |
芬小美 |
fenxiaomei |
女 |
芬蘭語 |
非常見語種 |
芬小帥 |
fenxiaoshuai |
男 |
芬蘭語 |
非常見語種 |
法小美 |
faxiaomei |
男 |
法語 |
非常見語種 |
法小帥 |
faxiaoshuai |
男 |
法語 |
非常見語種 |
法大拿 |
fadana |
女 |
法語(加拿大) |
非常見語種 |
德小美 |
dexiaomei |
女 |
德語 |
非常見語種 |
德小帥 |
dexiaoshuai |
男 |
德語 |
非常見語種 |
希小帥 |
xixiaoshuai |
男 |
希臘語 |
非常見語種 |
希伯小帥 |
xiboxiaoshuai |
男 |
希伯來語 |
非常見語種 |
印地小帥 |
yindixiaoshuai |
男 |
印地語 |
非常見語種 |
印地小美 |
yindixiaomei |
女 |
印地語 |
非常見語種 |
匈小帥 |
xiongxiaoshuai |
男 |
匈牙利語 |
非常見語種 |
意小帥 |
yixiaoshuai |
男 |
意大利語 |
非常見語種 |
意小美 |
yixiaomei |
女 |
意大利語 |
非常見語種 |
注意: 更多中文音色發(fā)音人列表請查看發(fā)音人列表
錯誤代碼列表
錯誤碼 |
含義 |
101 |
缺少必填的參數(shù) |
102 |
不支持的語言類型 |
103 |
翻譯文本過長 |
104 |
不支持的API類型 |
105 |
不支持的簽名類型 |
106 |
不支持的響應(yīng)類型 |
107 |
不支持的傳輸加密類型 |
108 |
應(yīng)用ID無效,注冊賬號,登錄后臺創(chuàng)建應(yīng)用和實例并完成綁定,可獲得應(yīng)用ID和應(yīng)用密鑰等信息 |
109 |
batchLog格式不正確 |
110 |
無相關(guān)服務(wù)的有效實例 |
111 |
開發(fā)者賬號無效 |
112 |
請求服務(wù)無效 |
113 |
q不能為空 |
114 |
不支持的圖片傳輸方式 |
201 |
解密失敗,可能為DES,BASE64,URLDecode的錯誤 |
202 |
簽名檢驗失敗 |
203 |
訪問IP地址不在可訪問IP列表 |
205 |
請求的接口與應(yīng)用的平臺類型不一致,如有疑問請參考入門指南 |
206 |
因為時間戳無效導致簽名校驗失敗 |
207 |
重放請求 |
301 |
辭典查詢失敗 |
302 |
翻譯查詢失敗 |
303 |
服務(wù)端的其它異常 |
304 |
會話閑置太久超時 |
401 |
賬戶已經(jīng)欠費停 |
402 |
offlinesdk不可用 |
411 |
訪問頻率受限,請稍后訪問 |
412 |
長請求過于頻繁,請稍后訪問 |
1001 |
無效的OCR類型 |
1002 |
不支持的OCR image類型 |
1003 |
不支持的OCR Language類型 |
1004 |
識別圖片過大 |
1201 |
圖片base64解密失敗 |
1301 |
OCR段落識別失敗 |
1411 |
訪問頻率受限 |
1412 |
超過最大識別字節(jié)數(shù) |
2003 |
不支持的語言識別Language類型 |
2004 |
合成字符過長 |
2005 |
不支持的音頻文件類型 |
2006 |
不支持的發(fā)音類型 |
2201 |
解密失敗 |
2301 |
服務(wù)的異常 |
2411 |
訪問頻率受限,請稍后訪問 |
2412 |
超過最大請求字符數(shù) |
3001 |
不支持的語音格式 |
3002 |
不支持的語音采樣率 |
3003 |
不支持的語音聲道 |
3004 |
不支持的語音上傳類型 |
3005 |
不支持的語言類型 |
3006 |
不支持的識別類型 |
3007 |
識別音頻文件過大 |
3008 |
識別音頻時長過長 |
3009 |
不支持的音頻文件類型 |
3010 |
不支持的發(fā)音類型 |
3201 |
解密失敗 |
3301 |
語音識別失敗 |
3302 |
語音翻譯失敗 |
3303 |
服務(wù)的異常 |
3411 |
訪問頻率受限,請稍后訪問 |
3412 |
超過最大請求字符數(shù) |
4001 |
不支持的語音識別格式 |
4002 |
不支持的語音識別采樣率 |
4003 |
不支持的語音識別聲道 |
4004 |
不支持的語音上傳類型 |
4005 |
不支持的語言類型 |
4006 |
識別音頻文件過大 |
4007 |
識別音頻時長過長 |
4201 |
解密失敗 |
4301 |
語音識別失敗 |
4303 |
服務(wù)的異常 |
4411 |
訪問頻率受限,請稍后訪問 |
4412 |
超過最大請求時長 |
5001 |
無效的OCR類型 |
5002 |
不支持的OCR image類型 |
5003 |
不支持的語言類型 |
5004 |
識別圖片過大 |
5005 |
不支持的圖片類型 |
5006 |
文件為空 |
5201 |
解密錯誤,圖片base64解密失敗 |
5301 |
OCR段落識別失敗 |
5411 |
訪問頻率受限 |
5412 |
超過最大識別流量 |
9001 |
不支持的語音格式 |
9002 |
不支持的語音采樣率 |
9003 |
不支持的語音聲道 |
9004 |
不支持的語音上傳類型 |
9005 |
不支持的語音識別 Language類型 |
9301 |
ASR識別失敗 |
9303 |
服務(wù)器內(nèi)部錯誤 |
9411 |
訪問頻率受限(超過最大調(diào)用次數(shù)) |
9412 |
超過最大處理語音長度 |
10001 |
無效的OCR類型 |
10002 |
不支持的OCR image類型 |
10004 |
識別圖片過大 |
10201 |
圖片base64解密失敗 |
10301 |
OCR段落識別失敗 |
10411 |
訪問頻率受限 |
10412 |
超過最大識別流量 |
11001 |
不支持的語音識別格式 |
11002 |
不支持的語音識別采樣率 |
11003 |
不支持的語音識別聲道 |
11004 |
不支持的語音上傳類型 |
11005 |
不支持的語言類型 |
11006 |
識別音頻文件過大 |
11007 |
識別音頻時長過長,最大支持30s |
11201 |
解密失敗 |
11301 |
語音識別失敗 |
11303 |
服務(wù)的異常 |
11411 |
訪問頻率受限,請稍后訪問 |
11412 |
超過最大請求時長 |
12001 |
圖片尺寸過大 |
12002 |
圖片base64解密失敗 |
12003 |
引擎服務(wù)器返回錯誤 |
12004 |
圖片為空 |
12005 |
不支持的識別圖片類型 |
12006 |
圖片無匹配結(jié)果 |
13001 |
不支持的角度類型 |
13002 |
不支持的文件類型 |
13003 |
表格識別圖片過大 |
13004 |
文件為空 |
13301 |
表格識別失敗 |
15001 |
需要圖片 |
15002 |
圖片過大(1M) |
15003 |
服務(wù)調(diào)用失敗 |
17001 |
需要圖片 |
17002 |
圖片過大(1M) |
17003 |
識別類型未找到 |
17004 |
不支持的識別類型 |
17005 |
服務(wù)調(diào)用失敗 |
常見問題及注意事項
返回110
應(yīng)用沒有綁定服務(wù)實例,可以新建服務(wù),綁定服務(wù)。
返回108
appKey無效,注冊賬號, 登錄后臺創(chuàng)建應(yīng)用并完成綁定, 可獲得應(yīng)用ID和密鑰等信息,其中應(yīng)用ID就是appKey( 注意不是應(yīng)用密鑰)
返回101
首先確保必填參數(shù)齊全,然后,確認參數(shù)書寫是否正確。
返回202
如果確認?appKey?和?appSecret?的正確性,仍返回202,一般是編碼問題。請確保?img?為UTF-8編碼.
版本更新記錄
上線日期 |
版本號 |
更新內(nèi)容 |
2023.08.08 |
v1.0.1 |
支持TTS 合成 |