這個頁面說明如何使用 API 串流音訊輸入內容來偵測意圖要求。Dialogflow 會處理音訊並將其轉換為文字,接著再嘗試比對意圖。這項轉換作業稱為「音訊輸入」、「語音辨識」、「語音轉文字」或「STT」。
事前準備
這項功能僅適用於用於使用者互動的 API。如果您使用的是整合,可以略過本指南。
閱讀本指南之前,請先完成下列工作:
- 詳閱 Dialogflow 基本概念。
- 執行設定步驟。
建立虛擬服務專員
如果您尚未建立服務帳戶,請立即建立:
- 前往 Dialogflow ES 主控台。
- 按照系統要求登入 Dialogflow 主控台。詳情請參閱 Dialogflow 主控台總覽。
- 按一下左側欄選單中的 [Create Agent] (建立代理程式)。(如果您已有其他代理程式,請按一下代理程式名稱然後捲動至底部,再按一下 [Create new agent] (建立新代理程式)。)
- 輸入代理程式的名稱、預設語言和預設時區。
- 如果您已建立專案,請輸入該項專案的資料。如要允許 Dialogflow 主控台建立專案,請選取 [Create a new Google project] (建立新 Google 專案)。
- 按一下 [Create] (建立) 按鈕。
將範例檔案匯入代理程式
本指南中的步驟會假設您的代理程式符合某些條件,因此您需要匯入為本指南準備的代理程式。匯入時,這些步驟會使用「還原」選項,覆寫所有介面設定、意圖和實體。
如要匯入檔案,請按照下列步驟操作:
-
下載
room-booking-agent.zip
檔案。 - 前往 Dialogflow ES 主控台。
- 選取所需的代理程式。
- 按一下代理程式名稱旁邊的「設定」settings 按鈕。
- 選取「Export and Import」分頁標籤。
- 選取「Restore From Zip」,然後按照操作說明還原下載的 ZIP 檔案。
串流基本概念
Session
類型的 streamingDetectIntent
方法會傳回雙向的 gRPC 串流物件。適用於這個物件的方法因程式語言而異,詳情請參閱用戶端程式庫的參考說明文件。
串流物件用於並行收發資料。使用這個物件時,您的用戶端會將音訊內容串流至 Dialogflow,同時監聽 StreamingDetectIntentResponse
。
streamingDetectIntent
方法含有會影響語音辨識作業的 query_input.audio_config.single_utterance
參數:
- 如為
false
(預設值),系統在用戶端關閉串流前都不會停止執行語音辨識作業。 - 如為
true
,Dialogflow 則會在輸入音訊中偵測單一語音內容。Dialogflow 偵測到音訊語音已停止或暫停時,系統會停止語音辨識作業,並將辨識結果為END_OF_SINGLE_UTTERANCE
的StreamingDetectIntentResponse
傳送至您的用戶端。在收到END_OF_SINGLE_UTTERANCE
之後,Dialogflow 會忽略透過串流傳送至 Dialogflow 的所有音訊。
在雙向串流中,用戶端可以「半關閉」串流物件,藉此向伺服器發出不會傳送更多資料的信號。舉例來說,這個方法在 Java 和 Go 中稱為 closeSend
。在下列情境中,半關閉 (並非取消) 串流會產生相當大的影響:
- 您的用戶端已完成資料傳送作業。
- 在您的用戶端設定中,
single_utterance
已設為 true 並收到辨識結果為END_OF_SINGLE_UTTERANCE
的StreamingDetectIntentResponse
。
關閉串流之後,您的用戶端應視需求以新串流發出新的要求。
串流偵測意圖
以下範例使用 Session
類型的 streamingDetectIntent
方法來串流音訊內容。
Go
如要向 Dialogflow 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要向 Dialogflow 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要向 Dialogflow 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要向 Dialogflow 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
其他語言
C#:請按照用戶端程式庫頁面上的C# 設定說明操作,然後參閱 .NET 適用的 Dialogflow 參考說明文件。
PHP:請按照用戶端程式庫頁面上的 PHP 設定操作說明操作,然後參閱 PHP 適用的 Dialogflow 參考文件。
Ruby:請按照用戶端程式庫頁面上的 Ruby 設定說明操作,然後參閱 Ruby 適用的 Dialogflow 參考文件。
範例
如要瞭解從瀏覽器麥克風串流至 Dialogflow 的最佳做法,請參閱範例頁面。