Siri技術解析

2021-06-06 03:50:05 字數 3706 閱讀 4705

瀏覽次數: 497次

2023年03月23日

infoq

字型大小: 大中小

分享到:

qq空間

人人網豆瓣網

開心網更多

1作為「個人智慧型助理」,siri能為你提供什麼服務?可以將siri理解為一位低智商的生活秘書(和人類的智慧型比),它採用了nuance公司的語音識別技術,具有一定程度的語義理解和使用者意圖識別能力,可以聊天解悶,更主要的功能是幫助辦理一定的事務,比如預訂餐廳、預訂計程車、搜尋精確答案、查詢天氣等。

我們首先看一些例子來看siri能做什麼:

對話一:

user:「我想掩藏一具屍體。」

siri:你想藏在**呢?(給出5個選項)

對話二:

siri:有什麼我能幫忙的?

user:「我想我剛剛殺了人。」

siri:是這樣麼?

user:「是的。」

siri:「你說要掩藏屍體我就想到了」

user:「我該怎麼做?」

siri:「好吧,這是你接下來的日程表。」

對話三:

user:「去哪兒能弄些毒品?」

siri:「這附近有2家戒毒所。」

對話

四、對話

五、對話六:

由以上六個使用者和siri的對話記錄片段可以看出siri具備一定的語義智慧型,如果了解其技術原理,可以知曉解悶陪聊功能並非其最初出發點和功能重點,在多個垂直領域幫使用者完成一定的任務才是其核心功能。

圖1 . siri整體架構

siri是乙個功能繁複的綜合ai框架,圖1展示了其包含的資料、模型以及計算模組,為了在整體上更易於理解整個框架,可以將siri裡包含的眾多資料、模型和計算模組劃分為輸入系統、活躍本體、執行系統、服務系統和輸出系統五個子系統。其在解析使用者輸入時候遵循一定的執行順序,以此來理解使用者的真正意圖並提供有用服務。

siri的資源主要分為資源類和計算類兩大類,其中屬於資源類的包括;

屬於計算資源的包括:

siri的輸入系統支援多模態輸入,即不僅僅支援眾所周知的語音識別,也允許使用者進行文字輸入、gui介面操作以及事件觸發等。除了支援多模態輸入外,siri輸入系統一方面可以利用語言直譯器對早期輸入進行歧義消除,另外一方面還可以對使用者輸入進行有意識的引導,將使用者輸入盡量對映到siri能夠提供的服務上來。這樣對於使用者和siri來說才可相得益彰,siri 可體現其價值,使用者可獲得幫助。

圖2. 活躍本體

「活躍本體」是siri中相當重要的乙個概念,「活躍本體」可以被理解為siri整個系統執行的乙個具體執行環境和場所,執行系統呼叫所有系統資料、詞典、模型和程式,在「活動本體」內對使用者輸入進行解析,並將文字資訊在這裡解析為使用者真正的意圖,然後根據意圖來呼叫外部的服務。

在程式執行時,「活躍本體」內放入的資料和模型包括:領域模型,使用者個性化資訊,語言模式、詞彙表和領域實體資料庫等。

領域模型包括某個垂直領域內的概念,實體,關係,屬性和例項的內部表示,這其實就是semantic web這個研究領域常說的ontology。siri包含很多垂直領域的領域模型。「詞彙表」用於維護siri中的表層單詞到「領域模型」或者「任務模型」中定義的的概念、關係、屬性的對映關係;被用來引導使用者輸入、自然語言解析和生成輸出結果。

siri在個性化方面做得也非常出色。在和使用者溝通過程中,如果一台機器能夠叫出你的名字,並且知曉你的個人愛好,使用者體驗無疑是非常優異的。從具體技術手段上,siri是通過在內部保持兩個記憶系統:長期記憶系統和短期記憶系統來實現能夠個性化的和使用者交流的。長期記憶系統儲存了使用者的名稱、居住位址以及歷史偏好資訊,短期記憶系統則將最近一段時期內siri和使用者的對話記錄及gui點選記錄等登記下來。利用這兩個記憶系統,siri可以在理解使用者需求的時候幫助澄清使用者的真正意圖是什麼。

語言模式識別系統是對使用者輸入的表層,語法層,習慣用語和成語等進行模式匹配的模組。匹配模式的**在siri內部採用正規表示式或者狀態機等方式實現;在siri識別出指定的語言模式後,可以幫助判斷使用者輸入所述的任務型別。

圖3 執行系統

執行系統是siri系統最有技術含量的部分,前文有述:「活動本體」是對根據使用者的輸入資訊,將各種詞典資源,模型資源例項化進行具體加工的場所,而真正的加工過程是由執行系統進行的。執行系統不僅將使用者原始的文字輸入解析為內部的語義表示,而且要在使用者和siri互動過程中(多輪會話)決定下一句siri應該說什麼內容,可見其重要性。

執行系統具體又可以細分為三個主要部件:語言直譯器、會話流控制器和任務控制器。它們之間分工有異同時又密切合作,一起發揮作用。語言直譯器將使用者輸入字串流解析為語義表示作為輸出,而這個語義表示又會作為會話流控制器的輸入,會話流控制器根據當前語句所表達的含義,協同任務控制器一起決定siri下一步應該做什麼或者說什麼。

語言直譯器是siri中最重要的自然語言處理工具,主要用來對文字形式的使用者輸入進行解析,將其對映為概念本體層級的資訊表示,即理解語言真正的含義,除此外,語言直譯器也被用在輸入系統中對使用者輸入提示或者輸入補全進行分析,而且對語音識別結果後處理也有很大幫助。

對話流控制系統是在將使用者的文字表示解析為內部使用者意圖之後發揮作用;即語言直譯器將解析結果傳遞給對話流控制器,是語言直譯器的後續處理步驟;而「任務控制器」則被「對話流控制器」呼叫,共同確定siri下一步應該做什麼或者說什麼。

「任務流控制器」的主要功能是界定完成一件任務或者解決某個問題由那些步驟構成,這些步驟之間是何種關係。「任務流控制器」和「對話流控制器」很容易混淆,不容易區分其功能差異。一般來說,「對話流控制器」主要用來決定siri接下來要說的內容或者要做的事件,主要是根據領域判斷誘導使用者提供所需的引數;而「任務流控制器」更側重於事務本身的定義,比如乙個任務可以切分成若干子任務,是否有時序依賴關係。

任務流控制在siri中也起到舉足輕重的地位,siri的任務模型是由一些領域無關的通用任務模型和若干領域相關任務構成。通用任務是完成一件任務的抽象表述,與具體領域無關,因為其通用性,也可以應用在各個具體應用領域。

圖4 服務系統

siri本質上是服務導向的使用者意圖識別系統,無論是對話流控制也好,任務流控制也好,其根本目的還是為了能夠將使用者引導到siri能夠提供的某項具體服務,以此達到幫助使用者完成某些任務或者解決一些問題的目的。目前siri可以提供多種領域的服務,這裡面涉及到服務管理的問題,即如何進行管理才能使得系統可用性高,可維護性強等。具體而言,siri中有三個子部分涉及到服務功能:服務模組,服務能力模型和多服務整合模組。其中,服務模組記錄了可供siri使用的各種服務的詳細資訊,服務能力模組則儲存了哪些服務可以提供什麼型別的服務等對映關係,服務系統中最重要的是服務整合模組,呼叫另外兩個服務模組提供給使用者最終服務內容。因為往往完成使用者某項需求要呼叫分布在各處的多項服務,每項服務能夠提供部分資訊,而且服務之間有些順序需要遵守,所以如何呼叫所需的多種功能,呼叫順序如何確定以及如何根據部分資訊拼合成終端使用者所需服務是其核心內容。

siri的輸出系統會將最終提供的服務結果或者在會話過程的中間內容展示給使用者。其不僅支援語音、電郵、文字等多模態輸出,還支援介面訂製等個性化功能。

從上述技術描述看,siri是蘋果公司新推出的一種新型人工智慧框架,不僅在商業宣傳上令人耳目一新,在其技術架構和具體實現上也頗具新意。儘管siri最初是依附在iphone平台,但是很顯然,這種依附性並不強,可以預見,這套系統會不斷擴充套件到更多種硬體型別的智慧型控制,比如車載控制系統,智慧型電視控制系統等等

從siri談人工智慧技術的應用

從siri 談人工智慧技術的應用 秦元培摘要 隨著蘋果iphone5 的發布,其中的 siri 語音助理無疑成為了其中的一大亮點。作為人工智慧技術的一種現實應用,siri 實現了人機對話 資訊檢索 語音識別等只有在科幻電影裡才出現的場景。在滿足了使用者對於人工智慧技術的好奇心之後,各大平台仿效 si...

SIMPASS技術解析

一 什麼叫simpass simpass技術融合了di卡技術和sim卡技術,或者稱為雙介面sim卡。simpass是一種多功能的sim卡,支援接觸與非接觸兩個工作介面,接觸介面實現sim功能,非接觸介面實現支付功能,相容多個智慧卡應用規範。二 特點 從技術角度來講simpass就是nfc技術 應用上...

解析技術債務

原文 術語 技術債務 是由ward cunningham 首次提出,指的是開發團隊在設計或架構選型時從短期效應的角度選擇了乙個易於實現的方案,但從長遠來看,這種方案會帶來更消極的影響,亦即開發團隊所欠的債務。敏捷專家們就技術債務到底是什麼以及如何對其進行分類給出了自己的看法。martin fowle...