讯飞能力平台语音识别ASR接口,AIUI接口问题
訊飛能力平臺開發(fā)者,之前產(chǎn)于所有的開發(fā)測試,ASR接口包括AIUI接口我全部了解的,有不懂的可以評論留言,我一一回復(fù),不需要走工單。
中文站?
- 新手指南
- 文檔中心
- SDK下載
- 樂享會員
- 財務(wù)中心
控制臺
|
1592230999922
-
產(chǎn)品服務(wù)
-
解決方案
-
行業(yè)專題
-
服務(wù)市場
-
AI大學(xué)堂
-
1024
-
AI大賽
-
生態(tài)平臺
-
服務(wù)與支持
-
最新活動
文檔中心
-
?平臺文檔
-
?語音識別
-
語音聽寫
- WebAPI文檔
- Android SDK文檔
- iOS SDK文檔
- Linux SDK文檔
- Windows SDK文檔
- Java SDK文檔
- 音頻格式說明
- 語音聽寫服務(wù)說明
- HarmonyOS SDK 文檔
-
語音轉(zhuǎn)寫
-
實時語音轉(zhuǎn)寫
-
離線語音聽寫
-
語音喚醒
-
離線命令詞識別
-
-
?語音合成
-
?語音擴展
-
?自然語言處理
-
?人臉識別
-
?文字識別
-
?圖像識別
-
?基礎(chǔ)服務(wù)
-
?解決方案
-
?MSC API文檔
- 文檔中心
- 語音識別
- 語音聽寫
- WebAPI 文檔
#語音聽寫(流式版)WebAPI 文檔
#接口說明
語音聽寫流式接口,用于1分鐘內(nèi)的即時語音轉(zhuǎn)文字技術(shù),支持實時返回識別結(jié)果,達到一邊上傳音頻一邊獲得識別文本的效果。
高階功能-動態(tài)修正現(xiàn)在免費開放!多個小語種已上線!
動態(tài)修正:可到這里?動態(tài)修正效果?在線體驗
- 未開啟動態(tài)修正:實時返回識別結(jié)果,每次返回的結(jié)果都是對之前結(jié)果的追加;
- 開啟動態(tài)修正:實時返回識別結(jié)果,每次返回的結(jié)果有可能是對之前結(jié)果的追加,也有可能是要替換之前某次返回的結(jié)果(即修正);
- 開啟動態(tài)修正,相較于未開啟,返回結(jié)果的顆粒度更小,視覺沖擊效果更佳;
- 使用動態(tài)修正功能需到控制臺-流式聽寫-高級功能處點擊開通,并設(shè)置相應(yīng)參數(shù)方可使用,參數(shù)設(shè)置方法詳見?業(yè)務(wù)參數(shù)說明?;
- 動態(tài)修正功能僅?中文?支持;
- 未開啟與開啟返回的結(jié)果格式不同,詳見?動態(tài)修正返回結(jié)果?;
小語種
- 支持的語種請到語音聽寫?頁面或控制臺查看;
- 使用少數(shù)民族語言和小語種時,URL和中英文URL不同,詳見?接口要求?;
- 小語種參數(shù)設(shè)置方法詳見?業(yè)務(wù)參數(shù)說明?;
該語音能力是通過Websocket API的方式給開發(fā)者提供一個通用的接口。Websocket API具備流式傳輸能力,適用于需要流式數(shù)據(jù)傳輸?shù)腁I服務(wù)場景,比如邊說話邊識別。相較于SDK,API具有輕量、跨語言的特點;相較于HTTP API,Websocket API協(xié)議有原生支持跨域的優(yōu)勢。
原WebAPI普通版本接口(http[s]: //api.xfyun.cn/v1/service/v1/iat) 不再對外開放,已經(jīng)使用WebAPI普通版本的用戶仍可使用,同時也歡迎體驗新版流式接口并盡快完成遷移~
#接口Demo
示例demo請點擊?這里?下載。
目前僅提供部分開發(fā)語言的demo,其他語言請參照下方接口文檔進行開發(fā)。
也歡迎熱心的開發(fā)者到?訊飛開放平臺社區(qū)?分享你們的demo。
#接口要求
集成語音聽寫流式API時,需按照以下要求。
| 請求協(xié)議 | ws[s](為提高安全性,強烈推薦wss) |
| 請求地址 | 中英文(推薦使用):ws[s]: //iat-api.xfyun.cn/v2/iat 中英文:ws[s]: //ws-api.xfyun.cn/v2/iat 小語種:ws[s]: //iat-niche-api.xfyun.cn/v2/iat 注:服務(wù)器IP不固定,為保證您的接口穩(wěn)定,請勿通過指定IP的方式調(diào)用接口,使用域名方式調(diào)用 |
| 請求行 | GET /v2/iat HTTP/1.1 |
| 接口鑒權(quán) | 簽名機制,詳情請參照下方接口鑒權(quán) |
| 字符編碼 | UTF-8 |
| 響應(yīng)格式 | 統(tǒng)一采用JSON格式 |
| 開發(fā)語言 | 任意,只要可以向訊飛云服務(wù)發(fā)起Websocket請求的均可 |
| 操作系統(tǒng) | 任意 |
| 音頻屬性 | 采樣率16k或8K、位長16bit、單聲道 |
| 音頻格式 | pcm speex(8k) speex-wb(16k) mp3(僅中文普通話和英文支持,其他方言及小語種敬請期待) 樣例音頻請參照音頻樣例 |
| 音頻長度 | 最長60s |
| 語言種類 | 中文、英文、小語種以及中文方言,可在控制臺-語音聽寫(流式版)-方言/語種處添加試用或購買 |
#接口調(diào)用流程
- 通過接口密鑰基于hmac-sha256計算簽名,向服務(wù)器端發(fā)送Websocket協(xié)議握手請求。詳見下方?接口鑒權(quán)?。
- 握手成功后,客戶端通過Websocket連接同時上傳和接收數(shù)據(jù)。數(shù)據(jù)上傳完畢,客戶端需要上傳一次數(shù)據(jù)結(jié)束標識。詳見下方?接口數(shù)據(jù)傳輸與接收?。
- 接收到服務(wù)器端的結(jié)果全部返回標識后斷開Websocket連接。
注: Websocket使用注意事項如下
#白名單
默認關(guān)閉IP白名單,即該服務(wù)不限制調(diào)用IP。
在調(diào)用該業(yè)務(wù)接口時
- 若關(guān)閉IP白名單,接口認為IP不限,不會校驗IP。
- 若打開IP白名單,則服務(wù)端會檢查調(diào)用方IP是否在訊飛開放平臺配置的IP白名單中,對于沒有配置到白名單中的IP發(fā)來的請求,服務(wù)端會拒絕服務(wù)。
IP白名單規(guī)則
- 在 控制臺-相應(yīng)服務(wù)的IP白名單處編輯,保存后五分鐘左右生效。
- 不同Appid的不同服務(wù)都需要分別設(shè)置IP白名單。
- IP白名單需設(shè)置為外網(wǎng)IP,請勿設(shè)置局域網(wǎng)IP。
- 如果握手階段返回{"message":"Your IP address is not allowed"},則表示由于IP白名單配置有誤或還未生效,服務(wù)端拒絕服務(wù)。
#接口鑒權(quán)
在握手階段,請求方需要對請求進行簽名,服務(wù)端通過簽名來校驗請求的合法性。
#鑒權(quán)方法
通過在請求地址后面加上鑒權(quán)相關(guān)參數(shù)的方式。示例url:
wss://iat-api.xfyun.cn/v2/iat?authorization=YXBpX2tleT0ia2V5eHh4eHh4eHg4ZWUyNzkzNDg1MTlleHh4eHh4eHgiLCBhbGdvcml0aG09ImhtYWMtc2hhMjU2IiwgaGVhZGVycz0iaG9zdCBkYXRlIHJlcXVlc3QtbGluZSIsIHNpZ25hdHVyZT0iSHAzVHk0WmtTQm1MOGpLeU9McFFpdjlTcjVudm1lWUVIN1dzTC9aTzJKZz0i&date=Wed%2C%2010%20Jul%202019%2007%3A35%3A43%20GMT&host=iat-api.xfyun.cn鑒權(quán)參數(shù):
| host | string | 是 | 請求主機 | iat-api.xfyun.cn |
| date | string | 是 | 當前時間戳,RFC1123格式 | Wed, 10 Jul 2019 07:35:43 GMT |
| authorization | string | 是 | 使用base64編碼的簽名相關(guān)信息(簽名基于hmac-sha256計算) | 參考下方authorization參數(shù)生成規(guī)則 |
· date參數(shù)生成規(guī)則
date必須是UTC+0或GMT時區(qū),RFC1123格式(Wed, 10 Jul 2019 07:35:43 GMT)。
服務(wù)端會對Date進行時鐘偏移檢查,最大允許300秒的偏差,超出偏差的請求都將被拒絕。
· authorization參數(shù)生成規(guī)則
1)獲取接口密鑰APIKey 和 APISecret。
在訊飛開放平臺控制臺,創(chuàng)建WebAPI平臺應(yīng)用并添加語音聽寫(流式版)服務(wù)后即可查看,均為32位字符串。
2)參數(shù)authorization base64編碼前(authorization_origin)的格式如下。
api_key="$api_key",algorithm="hmac-sha256",headers="host date request-line",signature="$signature"其中 api_key 是在控制臺獲取的APIKey,algorithm 是加密算法(僅支持hmac-sha256),headers 是參與簽名的參數(shù)(見下方注釋)。
signature 是使用加密算法對參與簽名的參數(shù)簽名后并使用base64編碼的字符串,詳見下方。
注:?headers是參與簽名的參數(shù),請注意是固定的參數(shù)名("host date request-line"),而非這些參數(shù)的值。
3)signature的原始字段(signature_origin)規(guī)則如下。
signature原始字段由 host,date,request-line三個參數(shù)按照格式拼接成,
拼接的格式為(\n為換行符,’:’后面有一個空格):
假設(shè)
請求url = wss://iat-api.xfyun.cn/v2/iat date = Wed, 10 Jul 2019 07:35:43 GMT那么 signature原始字段(signature_origin)則為:
host: iat-api.xfyun.cn date: Wed, 10 Jul 2019 07:35:43 GMT GET /v2/iat HTTP/1.14)使用hmac-sha256算法結(jié)合apiSecret對signature_origin簽名,獲得簽名后的摘要signature_sha。
signature_sha=hmac-sha256(signature_origin,$apiSecret)其中 apiSecret 是在控制臺獲取的APISecret
5)使用base64編碼對signature_sha進行編碼獲得最終的signature。
signature=base64(signature_sha)假設(shè)
APISecret = secretxxxxxxxx2df7900c09xxxxxxxx date = Wed, 10 Jul 2019 07:35:43 GMT則signature為
signature=Hp3Ty4ZkSBmL8jKyOLpQiv9Sr5nvmeYEH7WsL/ZO2Jg=6)根據(jù)以上信息拼接authorization base64編碼前(authorization_origin)的字符串,示例如下。
api_key="keyxxxxxxxx8ee279348519exxxxxxxx", algorithm="hmac-sha256", headers="host date request-line", signature="Hp3Ty4ZkSBmL8jKyOLpQiv9Sr5nvmeYEH7WsL/ZO2Jg="注:?headers是參與簽名的參數(shù),請注意是固定的參數(shù)名("host date request-line"),而非這些參數(shù)的值。
7)最后再對authorization_origin進行base64編碼獲得最終的authorization參數(shù)。
authorization = base64(authorization_origin) 示例: authorization=YXBpX2tleT0ia2V5eHh4eHh4eHg4ZWUyNzkzNDg1MTlleHh4eHh4eHgiLCBhbGdvcml0aG09ImhtYWMtc2hhMjU2IiwgaGVhZGVycz0iaG9zdCBkYXRlIHJlcXVlc3QtbGluZSIsIHNpZ25hdHVyZT0iSHAzVHk0WmtTQm1MOGpLeU9McFFpdjlTcjVudm1lWUVIN1dzTC9aTzJKZz0i#鑒權(quán)url示例(golang)
//@hosturl : like wss://iat-api.xfyun.cn/v2/iat//@apikey : apiKey//@apiSecret : apiSecretfunc assembleAuthUrl(hosturl string, apiKey, apiSecret string) string {ul, err := url.Parse(hosturl)if err != nil {fmt.Println(err)}//簽名時間date := time.Now().UTC().Format(time.RFC1123)//參與簽名的字段 host ,date, request-linesignString := []string{"host: " + ul.Host, "date: " + date, "GET " + ul.Path + " HTTP/1.1"}//拼接簽名字符串sgin := strings.Join(signString, "\n")//簽名結(jié)果sha := HmacWithShaTobase64("hmac-sha256", sgin, apiSecret)//構(gòu)建請求參數(shù) 此時不需要urlencodingauthUrl := fmt.Sprintf("api_key=\"%s\", algorithm=\"%s\", headers=\"%s\", signature=\"%s\"", apiKey,"hmac-sha256", "host date request-line", sha)//將請求參數(shù)使用base64編碼authorization:= base64.StdEncoding.EncodeToString([]byte(authUrl))v := url.Values{}v.Add("host", ul.Host)v.Add("date", date)v.Add("authorization", authorization)//將編碼后的字符串url encode后添加到url后面callurl := hosturl + "?" + v.Encode()return callurl}#鑒權(quán)結(jié)果
如果握手成功,會返回HTTP 101狀態(tài)碼,表示協(xié)議升級成功;如果握手失敗,則根據(jù)不同錯誤類型返回不同HTTP Code狀態(tài)碼,同時攜帶錯誤描述信息,詳細錯誤說明如下:
| 401 | 缺少authorization參數(shù) | {“message”:”Unauthorized”} | 檢查是否有authorization參數(shù),詳情見authorization參數(shù)詳細生成規(guī)則 |
| 401 | 簽名參數(shù)解析失敗 | {“message”:”HMAC signature cannot be verified”} | 檢查簽名的各個參數(shù)是否有缺失是否正確,特別確認下復(fù)制的api_key是否正確 |
| 401 | 簽名校驗失敗 | {“message”:”HMAC signature does not match”} | 簽名驗證失敗,可能原因有很多。 1. 檢查api_key,api_secret 是否正確 2.檢查計算簽名的參數(shù)host,date,request-line是否按照協(xié)議要求拼接。 3. 檢查signature簽名的base64長度是否正常(正常44個字節(jié))。 |
| 403 | 時鐘偏移校驗失敗 | {“message”:”HMAC signature cannot be verified, a valid date or x-date header is required for HMAC Authentication”} | 檢查服務(wù)器時間是否標準,相差5分鐘以上會報此錯誤 |
| 403 | IP白名單校驗失敗 | {"message":"Your IP address is not allowed"} | 可在控制臺關(guān)閉IP白名單,或者檢查IP白名單設(shè)置的IP地址是否為本機外網(wǎng)IP地址 |
握手失敗返回示例:
HTTP/1.1 401 ForbiddenDate: Thu, 06 Dec 2018 07:55:16 GMTContent-Length: 116Content-Type: text/plain; charset=utf-8{"message": "HMAC signature does not match"}#接口數(shù)據(jù)傳輸與接收
握手成功后客戶端和服務(wù)端會建立Websocket連接,客戶端通過Websocket連接可以同時上傳和接收數(shù)據(jù)。
當服務(wù)端有識別結(jié)果時,會通過Websocket連接推送識別結(jié)果到客戶端。
發(fā)送數(shù)據(jù)時,如果間隔時間太短,可能會導(dǎo)致引擎識別有誤。
建議每次發(fā)送音頻間隔40ms,每次發(fā)送音頻字節(jié)數(shù)(即java示例demo中的frameSize)為一幀音頻大小的整數(shù)倍。
請注意不同音頻格式一幀大小的字節(jié)數(shù)不同,我們建議:
| speex 8k | 7 | 11 | 16 | 21 | 21 | 29 | 29 | 39 | 39 | 47 | 63 |
| speex-wb 16k | 11 | 16 | 21 | 26 | 33 | 43 | 53 | 61 | 71 | 87 | 107 |
| speex 8k | 6 | 10 | 15 | 20 | 20 | 28 | 28 | 38 | 38 | 46 | 62 |
| speex-wb 16k | 10 | 15 | 20 | 25 | 32 | 42 | 52 | 60 | 70 | 86 | 106 |
speex相關(guān)說明詳見speex編碼
整個會話時長最多持續(xù)60s,或者超過10s未發(fā)送數(shù)據(jù),服務(wù)端會主動斷開連接。
數(shù)據(jù)上傳完畢,客戶端需要上傳一次數(shù)據(jù)結(jié)束標識表示會話已結(jié)束,詳見下方data參數(shù)說明。
#請求參數(shù)
請求數(shù)據(jù)均為json字符串
| common | object | 是 | 公共參數(shù),僅在握手成功后首幀請求時上傳,詳見下方 |
| business | object | 是 | 業(yè)務(wù)參數(shù),僅在握手成功后首幀請求時上傳,詳見下方 |
| data | object | 是 | 業(yè)務(wù)數(shù)據(jù)流參數(shù),在握手成功后的所有請求中都需要上傳,詳見下方 |
#公共參數(shù)說明
common
| app_id | string | 是 | 在平臺申請的APPID信息 |
#業(yè)務(wù)參數(shù)
business
| language | string | 是 | 語種 zh_cn:中文(支持簡單的英文識別) en_us:英文 其他小語種:可到控制臺-語音聽寫(流式版)-方言/語種處添加試用或購買,添加后會顯示該小語種參數(shù)值,若未授權(quán)無法使用會報錯11200。 另外,小語種接口URL與中英文不同,詳見接口要求。 | "zh_cn" |
| domain | string | 是 | 應(yīng)用領(lǐng)域 iat:日常用語 medical:醫(yī)療 gov-seat-assistant:政務(wù)坐席助手 seat-assistant:金融坐席助手 gov-ansys:政務(wù)語音分析 gov-nav:政務(wù)語音導(dǎo)航 fin-nav:金融語音導(dǎo)航 fin-ansys:金融語音分析 注:除日常用語領(lǐng)域外其他領(lǐng)域若未授權(quán)無法使用,可到控制臺-語音聽寫(流式版)-高級功能處添加試用或購買;若未授權(quán)無法使用會報錯11200。 坐席助手、語音導(dǎo)航、語音分析相關(guān)垂直領(lǐng)域僅適用于8k采樣率的音頻數(shù)據(jù),另外三者的區(qū)別詳見下方。 | "iat" |
| accent | string | 是 | 方言,當前僅在language為中文時,支持方言選擇。 mandarin:中文普通話、其他語種 其他方言:可到控制臺-語音聽寫(流式版)-方言/語種處添加試用或購買,添加后會顯示該方言參數(shù)值;方言若未授權(quán)無法使用會報錯11200。 | "mandarin" |
| vad_eos | int | 否 | 用于設(shè)置端點檢測的靜默時間,單位是毫秒。 即靜默多長時間后引擎認為音頻結(jié)束。 默認2000(小語種除外,小語種不設(shè)置該參數(shù)默認為未開啟VAD)。 | 3000 |
| dwa | string | 否 | (僅中文普通話支持)動態(tài)修正 wpgs:開啟流式結(jié)果返回功能 注:該擴展功能若未授權(quán)無法使用,可到控制臺-語音聽寫(流式版)-高級功能處免費開通;若未授權(quán)狀態(tài)下設(shè)置該參數(shù)并不會報錯,但不會生效。 | "wpgs" |
| pd | string | 否 | (僅中文支持)領(lǐng)域個性化參數(shù) game:游戲 health:健康 shopping:購物 trip:旅行 注:該擴展功能若未授權(quán)無法使用,可到控制臺-語音聽寫(流式版)-高級功能處添加試用或購買;若未授權(quán)狀態(tài)下設(shè)置該參數(shù)并不會報錯,但不會生效。 | "game" |
| ptt | int | 否 | (僅中文支持)是否開啟標點符號添加 1:開啟(默認值) 0:關(guān)閉 | 0 |
| rlang | string | 否 | (僅中文支持)字體 zh-cn :簡體中文(默認值) zh-hk :繁體香港 注:該繁體功能若未授權(quán)無法使用,可到控制臺-語音聽寫(流式版)-高級功能處免費開通;若未授權(quán)狀態(tài)下設(shè)置為繁體并不會報錯,但不會生效。 | "zh-cn" |
| vinfo | int | 否 | 返回子句結(jié)果對應(yīng)的起始和結(jié)束的端點幀偏移值。端點幀偏移值表示從音頻開頭起已過去的幀長度。 0:關(guān)閉(默認值) 1:開啟 開啟后返回的結(jié)果中會增加data.result.vad字段,詳見下方返回結(jié)果。 注:若開通并使用了動態(tài)修正功能,則該功能無法使用。 | 1 |
| nunum | int | 否 | (中文普通話和日語支持)將返回結(jié)果的數(shù)字格式規(guī)則為阿拉伯數(shù)字格式,默認開啟 0:關(guān)閉 1:開啟 | 0 |
| speex_size | int | 否 | speex音頻幀長,僅在speex音頻時使用 1 當speex編碼為標準開源speex編碼時必須指定 2 當speex編碼為訊飛定制speex編碼時不要設(shè)置 注:標準開源speex以及訊飛定制SPEEX編碼工具請參考這里?speex編碼?。 | 70 |
| nbest | int | 否 | 取值范圍[1,5],通過設(shè)置此參數(shù),獲取在發(fā)音相似時的句子多侯選結(jié)果。設(shè)置多候選會影響性能,響應(yīng)時間延遲200ms左右。 注:該擴展功能若未授權(quán)無法使用,可到控制臺-語音聽寫(流式版)-高級功能處免費開通;若未授權(quán)狀態(tài)下設(shè)置該參數(shù)并不會報錯,但不會生效。 | 3 |
| wbest | int | 否 | 取值范圍[1,5],通過設(shè)置此參數(shù),獲取在發(fā)音相似時的詞語多侯選結(jié)果。設(shè)置多候選會影響性能,響應(yīng)時間延遲200ms左右。 注:該擴展功能若未授權(quán)無法使用,可到控制臺-語音聽寫(流式版)-高級功能處免費開通;若未授權(quán)狀態(tài)下設(shè)置該參數(shù)并不會報錯,但不會生效。 | 5 |
注:?多候選效果是由引擎決定的,并非絕對的。即使設(shè)置了多候選,如果引擎并沒有識別出候選的詞或句,返回結(jié)果也還是單個。
注:?以上common和business參數(shù)只需要在握手成功后的第一幀請求時帶上。
注:
坐席助手:電話坐席助手,一般用于人與人對話的場景。
語音導(dǎo)航:電話語音導(dǎo)航,一般用于機器與人對話的場景。
語音分析:基于大量存量的電話客服錄音做質(zhì)檢,即事后音頻轉(zhuǎn)文字的場景(識別率會優(yōu)于前兩者)。
#業(yè)務(wù)數(shù)據(jù)流參數(shù)
data
| status | int | 是 | 音頻的狀態(tài) 0 :第一幀音頻 1 :中間的音頻 2 :最后一幀音頻,最后一幀必須要發(fā)送 |
| format | string | 是 | 音頻的采樣率支持16k和8k 16k音頻:audio/L16;rate=16000 8k音頻:audio/L16;rate=8000 |
| encoding | string | 是 | 音頻數(shù)據(jù)格式 raw:原生音頻(支持單聲道的pcm) speex:speex壓縮后的音頻(8k) speex-wb:speex壓縮后的音頻(16k) 請注意壓縮前也必須是采樣率16k或8k單聲道的pcm。 lame:mp3格式(僅中文普通話和英文支持,方言及小語種暫不支持) 樣例音頻請參照音頻樣例 |
| audio | string | 是 | 音頻內(nèi)容,采用base64編碼 |
請求參數(shù)示例:
{ "common":{// 公共請求參數(shù)"app_id":"123456" },"business":{"language":"zh_cn","domain":"iat","accent":"mandarin"},"data":{"status":0,"format":"audio/L16;rate=16000","encoding":"raw","audio":"exSI6ICJlbiIsCgkgICAgInBvc2l0aW9uIjogImZhbHNlIgoJf..." }}數(shù)據(jù)上傳結(jié)束標識示例:
{"data":{"status":2}}#返回參數(shù)
| sid | string | 本次會話的id,只在握手成功后第一幀請求時返回 |
| code | int | 返回碼,0表示成功,其它表示異常,詳情請參考錯誤碼 |
| message | string | 錯誤描述 |
| data | object | 聽寫結(jié)果信息 |
| data.status | int | 識別結(jié)果是否結(jié)束標識: 0:識別的第一塊結(jié)果 1:識別中間結(jié)果 2:識別最后一塊結(jié)果 |
| data.result | object | 聽寫識別結(jié)果 |
| data.result.sn | int | 返回結(jié)果的序號 |
| data.result.ls | bool | 是否是最后一片結(jié)果 |
| data.result.bg | int | 保留字段,無需關(guān)心 |
| data.result.ed | int | 保留字段,無需關(guān)心 |
| data.result.ws | array | 聽寫結(jié)果 |
| data.result.ws.bg | int | 起始的端點幀偏移值,單位:幀(1幀=10ms) 注:以下兩種情況下bg=0,無參考意義: 1)返回結(jié)果為標點符號或者為空;2)本次返回結(jié)果過長。 |
| data.result.ws.cw | array | 中文分詞 |
| data.result.ws.cw.w | string | 字詞 |
| data.result.ws.cw.其他字段 sc/wb/wc/we/wp | int/string | 均為保留字段,無需關(guān)心。如果解析sc字段,建議float與int數(shù)據(jù)類型都做兼容 |
#動態(tài)修正返回參數(shù)
若開通了動態(tài)修正功能并設(shè)置了dwa=wpgs(僅中文支持),還有如下字段返回:
注:動態(tài)修正結(jié)果解析可參考頁面下方的java demo。
| data.result.pgs | string | 開啟wpgs會有此字段 取值為 "apd"時表示該片結(jié)果是追加到前面的最終結(jié)果;取值為"rpl" 時表示替換前面的部分結(jié)果,替換范圍為rg字段 |
| data.result.rg | array | 替換范圍,開啟wpgs會有此字段 假設(shè)值為[2,5],則代表要替換的是第2次到第5次返回的結(jié)果 |
#vinfo返回參數(shù)
若設(shè)置了vinfo=1,還有如下字段返回(若同時開通并設(shè)置了dwa=wpgs,則vinfo失效):
| data.result.vad | object | 端點幀偏移值信息 |
| data.result.vad.ws | array | 端點幀偏移值結(jié)果 |
| data.result.vad.bg | int | 起始的端點幀偏移值,單位:幀(1幀=10ms) |
| data.result.vad.ed | int | 結(jié)束的端點幀偏移值,單位:幀(1幀=10ms) |
| data.result.vad.eg | number | 無需關(guān)心 |
返回參數(shù)示例(動態(tài)修正dwa=wpgs)
注:動態(tài)修正結(jié)果解析可參考頁面下方的java demo。
返回參數(shù)示例(vinfo=1)
{"code": 0,"message": "success","sid": "iatxxxxxxxxxxxxxx","data": {"result": {"bg": 0,"ed": 0,"ls": false,"sn": 1,"vad": {"ws": [{"bg": 40,"ed": 366,"eg": 63.58}]},"ws": [{"bg": 53,"cw": [{"sc": 0,"w": "4月"}]},{...},{"bg": 293,"cw": [{"sc": 0,"w": "選手"}]}]},"status": 1} }返回參數(shù)示例(句子多候選nbest)
{"code": 0,"message": "success","sid": "iatxxxxxxxxxxxxx","data": {"result": {"bg": 0,"ed": 0,"ls": false,"sn": 1,"ws": [{"bg": 35,"cw": [{"sc": 0,"w": "打電話給梁玉生"},{"sc": 0,"w": "打電話給梁玉升"}]}]},"status": 0} }返回參數(shù)示例(詞級多候選wbest)
{"code": 0,"message": "success","sid": "iatxxxxxxxxxxxxxx","data": {"result": {"bg": 0,"ed": 0,"ls": false,"sn": 1,"ws": [{...},{"bg": 159,"cw": [{"sc": 0,"w": "梁"}]},{"bg": 191,"cw": [{"sc": 0,"w": "玉"},{"sc": 0,"w": "育"}]},{"bg": 215,"cw": [{"sc": 0,"w": "生"},{"sc": 0,"w": "升"}]}]},"status": 0} }#錯誤碼
備注:如出現(xiàn)下述列表中沒有的錯誤碼,可到?這里?查詢。
| 10005 | licc fail | appid授權(quán)失敗 | 確認appid是否正確,是否開通了聽寫服務(wù) |
| 10006 | Get audio rate fail | 獲取某個參數(shù)失敗 | 檢查報錯信息中的參數(shù)是否正確上傳 |
| 10007 | get invalid rate | 參數(shù)值不合法 | 檢查報錯信息中的參數(shù)值是否在取值范圍內(nèi) |
| 10010 | AIGES_ERROR_NO_LICENSE | 引擎授權(quán)不足 | 請到控制臺提交工單聯(lián)系技術(shù)人員 |
| 10014 | AIGES_ERROR_TIME_OUT | 會話超時 | |
| 10019 | service read buffer timeout, session timeout | session超時 | 檢查是否數(shù)據(jù)發(fā)送完畢但未關(guān)閉連接 |
| 10043 | Syscall AudioCodingDecode error | 音頻解碼失敗 | 檢查aue參數(shù),如果為speex,請確保音頻是speex音頻并分段壓縮且與幀大小一致 |
| 10101 | engine inavtive | 引擎會話已結(jié)束 | 檢查是否引擎已結(jié)束會話但客戶端還在發(fā)送數(shù)據(jù),比如音頻數(shù)據(jù)雖然發(fā)送完畢但并未關(guān)閉websocket連接,還在發(fā)送空的音頻等 |
| 10114 | session timeout | 會話超時 | 檢查整個會話是否已經(jīng)超過了60s |
| 10139 | invalid param | 參數(shù)錯誤 | 引擎編解碼錯誤 |
| 10313 | appid cannot be empty | appid不能為空 | 檢查common參數(shù)是否正確上傳,或common中的app_id參數(shù)是否正確上傳或是否為空 |
| 10317 | invalid version | 版本非法 | 聯(lián)系技術(shù)人員 |
| 11200 | auth no license | 沒有權(quán)限 | 檢查是否使用了未授權(quán)的功能,或者總的調(diào)用次數(shù)已超越上限 |
| 11201 | auth no enough license | 日流控超限 | 可聯(lián)系商務(wù)提高每日調(diào)用次數(shù) |
| 10160 | parse request json error | 請求數(shù)據(jù)格式非法 | 檢查請求數(shù)據(jù)是否是合法的json |
| 10161 | parse base64 string error | base64解碼失敗 | 檢查發(fā)送的數(shù)據(jù)是否使用了base64編碼 |
| 10163 | param validate error:/common 'app_id' param is required | 缺少必傳參數(shù),或者參數(shù)不合法 | 檢查報錯信息中的參數(shù)是否正確上傳 |
| 10165 | invalid handle | 無效的句柄 | 檢查下傳入第一幀音頻時,是否上傳了status=0 |
| 10200 | read data timeout | 讀取數(shù)據(jù)超時 | 檢查是否累計10s未發(fā)送數(shù)據(jù)并且未關(guān)閉連接 |
#調(diào)用示例
注:?demo只是一個簡單的調(diào)用示例,不適合直接放在復(fù)雜多變的生產(chǎn)環(huán)境使用
語音聽寫流式API demo java語言
語音聽寫流式API demo python3語言
語音聽寫流式API demo js語言
語音聽寫流式API demo go語言
語音聽寫流式API demo nodejs語言
注:?其他開發(fā)語言請參照?接口調(diào)用流程?進行開發(fā),也歡迎熱心的開發(fā)者到?訊飛開放平臺社區(qū)?分享你們的demo。
#音頻樣例
語音聽寫流式 音頻樣例 中文普通話 PCM文件 采樣率16k
語音聽寫流式 音頻樣例 中文普通話 PCM文件 采樣率8k
語音聽寫流式 音頻樣例 中文普通話 MP3文件 采樣率16k
語音聽寫流式 音頻樣例 中文普通話 MP3文件 采樣率8k
語音聽寫流式 音頻樣例 中文普通話 SPEEX文件(標準開源SPEEX編碼) 采樣率8k 7級壓縮
語音聽寫流式 音頻樣例 中文普通話 SPEEX文件(標準開源SPEEX編碼) 采樣率16k 7級壓縮
語音聽寫流式 音頻樣例 中文普通話 SPEEX文件(訊飛定制SPEEX編碼) 采樣率16k 7級壓縮
語音聽寫流式 音頻樣例 中文普通話 SPEEX文件(訊飛定制SPEEX編碼) 采樣率8k 7級壓縮
注:?音頻文件的錄制和格式確認(推薦使用Cool Edit Pro工具),以及訊飛定制SPEEX編碼工具請參考這里:?音頻格式說明
#視頻教程
語音聽寫-WebAPI接口詳解
#常見問題
#語音聽寫的APIKey在哪里查詢到?
答:控制臺--我的應(yīng)用---找到對應(yīng)應(yīng)用的語音聽寫(流式)服務(wù)---即能查看到。
#webapi流式聽寫能獲取到語音聽寫結(jié)果為空或錯誤內(nèi)容或者不全,原因是什么?
答:原因可能如下;
1、音頻格式不正確,請使用Cool Edit Pro工具(網(wǎng)頁搜索下載即可)查看音頻格式,webapi聽寫流式版:支持的格式是pcm、speex、speex-wb,其中中文普通話和英文還支持mp3格式
音頻采樣率要是 16k 或者 8k、采樣精度16 位、單聲道音頻。樣例音頻請參照音頻樣例
2、音頻中間有靜音或者雜音音頻超過了后端點(不設(shè)置默認為2000ms)的設(shè)置,此時請使用Cool Edit Pro工具查看音頻內(nèi)容,并且設(shè)置后端點(vad_eos)為最大值10000ms
包含超過后端點最大值的靜音或者雜音時,音頻識別不完整是正常的
#語音聽寫WebAPI支持的音頻格式有哪些?
答:支持8k和16k采樣率、16bit、單聲道的pcm、mp3、speex格式的音頻。需注意mp3格式的音頻僅支持中文普通話和英文。
#語音聽寫最長支持多少秒之內(nèi)的音頻?
答:聽寫支持識別60s之內(nèi)的音頻。
#語音聽寫Webapi支持多少路并發(fā)?如何提高并發(fā)?
答:默認支持50路并發(fā),如需更多并發(fā)可提交工單進行咨詢。
#聽寫報錯10163,length of $.data.audio must be between 0,13000是什么原因?
答:聽寫frameSize傳的音頻大小base64編碼后不能超出13000B,默認傳1280B不建議傳值過大。
#為什么每隔一段時間不發(fā)送數(shù)據(jù)就會斷開連接?
答:聽寫vad_eos為支持的最長靜音時間,超過這個時間會認為音頻結(jié)束自動斷開連接。
#最多支持多少熱詞,是否可以擴容?
答:控制臺最多支持2000個應(yīng)用級熱詞,暫不支持擴容。
#如何限制IP?
答:可通過在IP白名單設(shè)置自己服務(wù)的IP地址,限制其他IP地址訪問。
在這篇文章中:
- 接口說明
- 接口Demo
- 接口要求
- 接口調(diào)用流程
- 錯誤碼
- 調(diào)用示例
- 音頻樣例
- 視頻教程
- 常見問題
總結(jié)
以上是生活随笔為你收集整理的讯飞能力平台语音识别ASR接口,AIUI接口问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: airtest 获取分辨率 绝对坐标 相
- 下一篇: AIUI的技能工作室使用