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