這篇文章將會談到智慧語音助手的運作理論,想先知道要讓 Voice Kit 能夠進行語音辨識和回話需要做哪些設定,請參考『實作篇』~
先來回想一下我們以聲控操作智慧型設備的過程吧!
目前我們使用語音助手時,大致上會是以類似下列的順序來進行的:
- 以關鍵字(之後稱為觸發詞)啟動語音助理
- 語音助理給出回應
- 根據需要繼續給予命令(必須事先設定好觸發詞並說出)
- 語音助理根據觸發詞執行命令
- 給予我們所需的結果
那麼,這到底是什麼樣的機制造成的呢?讓我們來告訴你。
1. 以「 Hey Google」、「 Alexa」、「Hey Siri」等觸發詞,或是以特定按鍵(例如:長按 Home 鍵)使語音助理啟動
2. 觸發語音助理後,語音助理會將我們的命令錄音下來存成音訊檔案
*此過程通常維持 3 到 5 秒左右,或者是自動偵測我們停止說話後停下
3.語音助手會把音訊檔送往負責進行語音轉文字(Speech To Text,簡稱為 STT)的模組
*這個步驟可能在設備上進行,也有可能透過雲端的伺服器進行
4. 接著,當語音助手獲得從 STT 模組轉好的文字之後,會開始整合當下的其他資訊
這些資訊我們稱為上下文(Context),例如:使用者的居住地、使用者的疑問(天氣資訊、交通資訊等等)
而語音助手也內建有判斷我們語意意圖(Intent)的物件,這個模組有人稱為自然語言理解(NLU),在這裡我們會把它稱為語法分析器(Parser)
*會這麼稱呼是因為我們在研究從女僕小白送進來的字串後,發現我們還是不太能利用這些字串理解使用者的意圖,所以才會改稱語法分析器
5.當語音助手得到語意意圖後,就會讓原有的模型(Model)去處理相關的命令
例如:住在台北的使用者問了今天的天氣,語音助手就會透過氣象局的 API 查訊目前台北的氣溫、濕度、空氣品質、降雨機率等等資訊,再透過 Maid White 的 API 去查詢家電狀態、控制家電
6. 通常模型會回傳結果(Result)給語音助手,接著語音助手要把結果配合上下文(Context),調整成對使用者體驗最佳化的句子給予回應,在這邊我們把它稱作渲染器(Renderer)
例如:使用者的母語是中文,結果就要以中文回覆;使用者是小朋友,就用親切一點的語氣回應;如果使用者使用的裝置有螢幕(像是電視機、手機、冰箱面板等等),還能放出圖示讓使用者可以一目瞭然地獲得資訊
7.最後,語音助手將從渲染器而來的文字結果透過文字轉語音的模組 (Text To Speech,簡稱TTS) 轉為音訊檔,再傳送到設備的麥克風上回應使用者
目前在音訊轉文字( Speech To Text)及文字轉音訊( Text To Speech) 的部分,由於機器學習( Machine Learning,簡稱 ML)的發展,已經有了很重大的突破,這使我們可以用更加簡單、便宜的方式完成這項工作。
而錄音和播放聲音的部分,透過 Voice Kit 也可以簡單的處理掉,唯獨在語法分析器(Parser)以及渲染器(Renderer)的部分,還需要更進一步才能使我們使用的更加順手
這就是語音助手運作的機制啦,是不是覺得對身邊的語音助手有更深入的了解了呢?我們會繼續推出相關文章,歡迎追蹤我們喔!