- ASR :語(yǔ)音識(shí)別服務(wù),提供語(yǔ)音轉(zhuǎn)文本服務(wù)搞隐。
- TTS :文本轉(zhuǎn)語(yǔ)音服務(wù)判哥,提供將文本轉(zhuǎn)為普通話語(yǔ)音的語(yǔ)音合成功能鲤屡。
- NLU :自然語(yǔ)言理解服務(wù)毯炮,提供自然語(yǔ)言處理功能分瘾。
語(yǔ)音識(shí)別ASR
語(yǔ)音識(shí)別服務(wù)适揉,可提供語(yǔ)音轉(zhuǎn)文本服務(wù)窖剑,包括:一句話識(shí)別斗蒋、實(shí)時(shí)語(yǔ)音識(shí)別捌斧、錄音文件識(shí)別笛质。同時(shí),還提供用戶(hù)自定義熱詞接口捞蚂,提高特定領(lǐng)域的識(shí)別率妇押。
一句話識(shí)別:即實(shí)時(shí)短語(yǔ)音識(shí)別,可提供Java姓迅、Android敲霍、iOS SDK、C++ SDK丁存。
實(shí)時(shí)語(yǔ)音識(shí)別:即實(shí)時(shí)長(zhǎng)語(yǔ)音識(shí)別肩杈,可支持長(zhǎng)時(shí)間語(yǔ)音識(shí)別〗馇蓿可提供Java SDK扩然、C++ SDK。
錄音文件識(shí)別:可提供RESTful接口聋伦,支持錄音文件的語(yǔ)音識(shí)別夫偶。
阿里云語(yǔ)音服務(wù)為用戶(hù)提供語(yǔ)音識(shí)別的基礎(chǔ)服務(wù),Android觉增、iOS SDK封裝了錄音(Recoder)兵拢、靜音檢測(cè)(VAD)、語(yǔ)音服務(wù)訪問(wèn)(WSAPI)等功能逾礁,可以極大的簡(jiǎn)化App開(kāi)發(fā)说铃。
阿里云語(yǔ)音識(shí)別技術(shù)是基于后臺(tái)服務(wù)器的密集CPU計(jì)算,語(yǔ)音SDK負(fù)責(zé)在App端打開(kāi)錄音機(jī)嘹履,進(jìn)行語(yǔ)音壓縮后截汪,傳送到服務(wù)器端。服務(wù)器進(jìn)行語(yǔ)音識(shí)別轉(zhuǎn)成文字后植捎,通常還需要進(jìn)行自然語(yǔ)言處理衙解,分析其語(yǔ)法結(jié)構(gòu),并把語(yǔ)意結(jié)果返回給SDK焰枢。
一句話識(shí)別
一句話識(shí)別:即實(shí)時(shí)短語(yǔ)音識(shí)別蚓峦,可用于語(yǔ)音輸入法、智能客服等領(lǐng)域济锄。
提供Java暑椰、Android、iOS荐绝、C++ 等平臺(tái)的SDK一汽。
支持語(yǔ)言包括:中文、英文、粵語(yǔ)
支持方言包括:東北召夹、河南岩喷、四川等方言
支持結(jié)果返回方式包括:“流式”和“非流式”兩種模式
支持用戶(hù)自定義熱詞功能。
(1) “支持的結(jié)果返回方式”包括“流式”和“非流式”兩種模式监憎,“流式”模式下用戶(hù)一邊說(shuō)話一邊返回識(shí)別結(jié)果纱意,“非流式”簡(jiǎn)單來(lái)說(shuō)就是用戶(hù)整句話說(shuō)完后返回識(shí)別結(jié)果。
(2) “一句話識(shí)別”支持的領(lǐng)域包括:社交聊天鲸阔、家庭娛樂(lè)偷霉、電商購(gòu)物、智能客服等褐筛。用戶(hù)可針對(duì)具體的使用場(chǎng)景選擇對(duì)應(yīng)領(lǐng)域的app_key类少。
OPUS 編碼使用說(shuō)明
Opus編碼器 是一個(gè)有損聲音編碼的格式,由互聯(lián)網(wǎng)工程任務(wù)組(IETF)進(jìn)來(lái)開(kāi)發(fā)渔扎,適用于網(wǎng)絡(luò)上的實(shí)時(shí)聲音傳輸硫狞,標(biāo)準(zhǔn)格式為RFC 6716。Opus 格式是一個(gè)開(kāi)放格式赞警,使用上沒(méi)有任何專(zhuān)利或限制妓忍。
Bitrates from 6 kb/s to 510 kb/s
Sampling rates from 8 kHz (narrowband) to 48 kHz (fullband)
Frame sizes from 2.5 ms to 60 ms
Support for both constant bitrate (CBR) and variable bitrate (VBR)
Audio bandwidth from narrowband to fullband
Support for speech and music
Support for mono and stereo
OPUS 在NLS服務(wù)中的使用
目前我們的Android 和 iOS客戶(hù)端sdk中集成了OPUS編碼(encoder)功能虏两。根據(jù)我們的參數(shù)進(jìn)行語(yǔ)音編解碼愧旦,可以做到大概9:1的語(yǔ)音壓縮比,能夠有效的節(jié)省傳輸帶寬和響應(yīng)時(shí)間定罢。
在使用Java SDK時(shí)笤虫,SDK本身不支持OPUS的編解碼,我們提供了使用JNI方式調(diào)用Opus的編解碼工具祖凫,用戶(hù)可以通過(guò)下面的代碼自行編譯動(dòng)態(tài)鏈接庫(kù)琼蚯。
實(shí)時(shí)語(yǔ)音識(shí)別
功能介紹:
實(shí)時(shí)語(yǔ)音轉(zhuǎn)寫(xiě)服務(wù)適用場(chǎng)景如實(shí)時(shí)會(huì)議記錄、視頻直播實(shí)時(shí)字幕等惠况。
本文檔提供服務(wù)端程序的Java SDK遭庶,Java SDK內(nèi)部不自帶語(yǔ)音采集功能,只提供將語(yǔ)音流實(shí)時(shí)轉(zhuǎn)寫(xiě)成文字的功能稠屠。
支持16k 16bit PCM峦睡、16k 16bit WAV的語(yǔ)音格式。
sdk本身未設(shè)置超時(shí)時(shí)間权埠,用戶(hù)可以調(diào)用client.close()方法關(guān)閉鏈接榨了。
錄音文件識(shí)別
錄音文件識(shí)別:
“錄音文件識(shí)別”服務(wù)是以Restful方式提供長(zhǎng)語(yǔ)音文件識(shí)別接口∪帘危基于該Restful API接口龙屉,開(kāi)發(fā)者可以方便獲取語(yǔ)音識(shí)別能力。
本文檔描述了使用“錄音文件識(shí)別”服務(wù) Restful API 的方法满俗,并提供了完整示例供開(kāi)發(fā)者參考转捕,適用使用 HTTPS 接口的開(kāi)發(fā)人員作岖。
功能介紹:
支持單軌/雙軌的wav格式、MP3格式的語(yǔ)音文件識(shí)別
目前只支持8k和16k的采樣率瓜富;
支持普通話識(shí)別
Restful架構(gòu)的描述參考:
http://www.ruanyifeng.com/blog/2011/09/restful
http://www.ruanyifeng.com/blog/2014/05/restful_api.html
NLU
自然語(yǔ)言理解(Natural Language Understanding鳍咱,NLU)以語(yǔ)言學(xué)為基礎(chǔ),融合邏輯學(xué)与柑、心理學(xué)和計(jì)算機(jī)科學(xué)等學(xué)科谤辜,試圖解決以下問(wèn)題:語(yǔ)言究竟是怎樣組織起來(lái)傳輸信息的?人又是怎樣從一連串的語(yǔ)言符號(hào)中獲取信息的价捧?換種表達(dá)就是丑念,通過(guò)語(yǔ)法、語(yǔ)義结蟋、語(yǔ)用的分析脯倚,獲取自然語(yǔ)言的語(yǔ)義表示。在自然人機(jī)交互大發(fā)展的背景下嵌屎,自然語(yǔ)言理解平臺(tái)應(yīng)運(yùn)而生推正,本文將對(duì)自然語(yǔ)言理解平臺(tái)中的各個(gè)領(lǐng)域的語(yǔ)義表示協(xié)議進(jìn)行詳細(xì)介紹。
語(yǔ)義表示協(xié)議
協(xié)議描述語(yǔ)言
協(xié)議采用結(jié)構(gòu)化的描述語(yǔ)言JSON進(jìn)行表示宝惰,采用utf8編碼植榕。JSON (JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。 易于人閱讀和編寫(xiě)尼夺,也易于機(jī)器解析和生成尊残,具體請(qǐng)參考: Json介紹。
此處只簡(jiǎn)述JSON的幾個(gè)核心概念:
值(value)
值(value)可以是雙引號(hào)括起來(lái)的字符串(string)淤堵、數(shù)值(number)寝衫、true、false拐邪、 null慰毅、對(duì)象(object)或者數(shù)組(array)。這些結(jié)構(gòu)可以嵌套扎阶。
數(shù)組(array)
數(shù)組是值(value)的有序集合汹胃。一個(gè)數(shù)組以“[”(左中括號(hào))開(kāi)始,“]”(右中括號(hào))結(jié)束乘陪。值之間使用“,”(逗號(hào))分隔统台。比如,[value1啡邑,value2贱勃,……]。
對(duì)象(object)
對(duì)象是一個(gè)無(wú)序的“‘鍵/值’對(duì)”集合。一個(gè)對(duì)象以“{”(左括號(hào))開(kāi)始贵扰,“}”(右括號(hào))結(jié)束仇穗。每個(gè)“鍵”后跟一個(gè)“:”(冒號(hào));“‘鍵/值’ 對(duì)”之間使用“,”(逗號(hào))分隔戚绕。比如纹坐,{key1:value1, key2:value2, ……}。
關(guān)于JSON
http://www.json.org/json-zh.html?spm=5176.doc30439.2.1.S6f0AQ
結(jié)構(gòu)上看舞丛,所有的數(shù)據(jù)(data)最終都可以分解成三種類(lèi)型:
第一種類(lèi)型是標(biāo)量(scalar)耘子,也就是一個(gè)單獨(dú)的字符串(string)或數(shù)字(numbers),比如"北京"這個(gè)單獨(dú)的詞球切。
第二種類(lèi)型是序列(sequence)谷誓,也就是若干個(gè)相關(guān)的數(shù)據(jù)按照一定順序并列在一起,又叫做數(shù)組(array)或列表(List)吨凑,比如"北京捍歪,上海"。
第三種類(lèi)型是映射(mapping)鸵钝,也就是一個(gè)名/值對(duì)(Name/value)糙臼,即數(shù)據(jù)有一個(gè)名稱(chēng),還有一個(gè)與之相對(duì)應(yīng)的值恩商,這又稱(chēng)作散列(hash)或字典(dictionary)变逃,比如"首都:北京"。
21世紀(jì)初痕届,Douglas Crockford尋找一種簡(jiǎn)便的數(shù)據(jù)交換格式韧献,能夠在服務(wù)器之間交換數(shù)據(jù)末患。當(dāng)時(shí)通用的數(shù)據(jù)交換語(yǔ)言是XML研叫,但是Douglas Crockford覺(jué)得XML的生成和解析都太麻煩,所以他提出了一種簡(jiǎn)化格式璧针,也就是Json嚷炉。
Json的規(guī)格非常簡(jiǎn)單,只用一個(gè)頁(yè)面幾百個(gè)字就能說(shuō)清楚探橱,而且Douglas Crockford聲稱(chēng)這個(gè)規(guī)格永遠(yuǎn)不必升級(jí)申屹,因?yàn)樵撘?guī)定的都規(guī)定了。
1) 并列的數(shù)據(jù)之間用逗號(hào)(", ")分隔隧膏。
2) 映射用冒號(hào)(": ")表示哗讥。
3) 并列數(shù)據(jù)的集合(數(shù)組)用方括號(hào)("[]")表示。
4) 映射的集合(對(duì)象)用大括號(hào)("{}")表示胞枕。
關(guān)鍵術(shù)語(yǔ)定義
領(lǐng)域(domain)
領(lǐng)域是指同一類(lèi)型的數(shù)據(jù)或者資源杆煞,以及圍繞這些數(shù)據(jù)或資源提供的服務(wù),比如“視頻”,“餐廳”决乎,“酒店”队询,“飛機(jī)票”、“火車(chē)票”构诚、“電話黃頁(yè)”等蚌斩。
意圖(intent)
意圖是指對(duì)于領(lǐng)域數(shù)據(jù)的操作,一般以動(dòng)賓短語(yǔ)來(lái)命名范嘱,比如視頻領(lǐng)域中送膳,有“查詢(xún)”、“播放”等意圖丑蛤。
屬性(slot)
屬性用來(lái)存放領(lǐng)域的屬性肠缨,比如視頻領(lǐng)域有“視頻名”“導(dǎo)演”“演員”等。 對(duì)于視頻領(lǐng)域盏阶,我們的語(yǔ)義表示結(jié)構(gòu)如下圖所示:
TTS
語(yǔ)音合成服務(wù)(TTS)晒奕,就是將文本轉(zhuǎn)成語(yǔ)音的服務(wù)。阿里云語(yǔ)音服務(wù)為用戶(hù)提供語(yǔ)音合成的基礎(chǔ)服務(wù)名斟,服務(wù)器將需要進(jìn)行合成的文本傳送到服務(wù)器端脑慧,服務(wù)器進(jìn)行語(yǔ)音合成后,以語(yǔ)音數(shù)據(jù)流的形式返回給SDK砰盐,用戶(hù)可直接進(jìn)行語(yǔ)音數(shù)據(jù)的播放或存儲(chǔ)闷袒。
同時(shí),阿里云語(yǔ)音合成服務(wù)提供給用戶(hù)豐富的接口岩梳,可以設(shè)置不同的發(fā)音人囊骤、語(yǔ)速、音量等冀值,獲取的語(yǔ)音形式也很豐富也物,包括PCM、WAV等格式列疗,可以極大的簡(jiǎn)化語(yǔ)音類(lèi)App的開(kāi)發(fā)滑蚯。
知識(shí)庫(kù)
知識(shí)庫(kù)簡(jiǎn)介
智能問(wèn)答系統(tǒng)基于一個(gè)問(wèn)答知識(shí)庫(kù)來(lái)回答用戶(hù)提問(wèn),該知識(shí)庫(kù)中每一條知識(shí)點(diǎn)是以“問(wèn)題-答案”形式組織的抵栈。每條知識(shí)點(diǎn)包含如下的關(guān)鍵內(nèi)容:
ID:每條知識(shí)點(diǎn)的唯一標(biāo)識(shí)符告材。
Question:知識(shí)點(diǎn)的問(wèn)題部分。這個(gè)內(nèi)容是匹配算法處理的內(nèi)容古劲。用戶(hù)的輸入會(huì)和這個(gè)字段內(nèi)容進(jìn)行語(yǔ)義匹配斥赋。
Answer:知識(shí)點(diǎn)的答案部分。這個(gè)內(nèi)容問(wèn)答系統(tǒng)不會(huì)做處理产艾,會(huì)在問(wèn)題匹配之后原樣返回給用戶(hù)疤剑。
其中的Question部分是語(yǔ)義匹配的關(guān)鍵部分洛波,書(shū)寫(xiě)良好的Question對(duì)于匹配的精確度有很大好處。一個(gè)較好的Question應(yīng)該遵循這樣一些規(guī)則:
首先表述盡可能完整骚露,能夠描述一個(gè)特定的問(wèn)題蹬挤。比如說(shuō)“吃了不干凈的東西導(dǎo)致拉肚子,用什么藥比較好”棘幸,要好于“拉肚子怎么辦”焰扳。
盡可能用通用的表述,避免特例误续,比如說(shuō)“支付寶轉(zhuǎn)賬到銀行卡吨悍,24小時(shí)了還未到賬怎么辦”,要好于“昨天上午用支付寶轉(zhuǎn)賬到賬戶(hù)為xxx的銀行卡蹋嵌,現(xiàn)在還沒(méi)到”
采用比較正規(guī)簡(jiǎn)潔的句式育瓜,避免不相關(guān)的問(wèn)候、語(yǔ)氣等內(nèi)容栽烂。
用詞盡可能用常見(jiàn)的詞匯躏仇,避免孤僻詞或者網(wǎng)絡(luò)用語(yǔ)。
知識(shí)庫(kù)格式
管控臺(tái)導(dǎo)入的知識(shí)庫(kù)文件格式要求如下:
文件格式:xls或xlsx格式
內(nèi)容格式:
【第一個(gè)sheet】
第1列:?jiǎn)栴}
第2列到第n列:?jiǎn)栴}對(duì)應(yīng)的不同問(wèn)法腺办,可以為空
【第二個(gè)sheet】
第1列:?jiǎn)栴}(保持與sheet1第一列一致)
第2列:?jiǎn)栴}的答案
知識(shí)庫(kù)上傳
系統(tǒng)提供兩種數(shù)據(jù)上傳方式焰手,一是通過(guò)用戶(hù)界面自動(dòng)上傳,支持全量上傳和增量上傳怀喉,全量上傳即所有的知識(shí)點(diǎn)都同一次上傳书妻,并且以前所有的知識(shí)點(diǎn)都將從系統(tǒng)中刪除;增量式的上傳躬拢,即只傳輸那些新增躲履、修改或者刪除的知識(shí)點(diǎn)。二是通過(guò)后臺(tái)服務(wù)人員手動(dòng)上傳聊闯。