設定語音服務容器
語音容器可讓客戶建置一個語音應用程式架構,該架構已優化,以利用強大的雲端功能和邊緣位置。
語音容器運行時間環境是使用 docker run
命令自變數來設定。 此容器有一些必要和選擇性的設定。 容器特定的設定是計費設定。
組態設定
容器具有下列組態設定:
必要 | 設定 | 目的 |
---|---|---|
Yes | ApiKey | 追蹤帳單資訊。 |
No | ApplicationInsights | 可讓您將 Azure 應用程式 Insights 遙測支援新增至您的容器。 |
Yes | Billing | 指定 Azure 上服務資源的端點 URI。 |
Yes | Eula | 表示您已接受容器的授權。 |
No | Fluentd | 將記錄和選擇性地計量數據寫入 Fluentd 伺服器。 |
No | HTTP Proxy | 設定 HTTP Proxy 以提出輸出要求。 |
No | Logging | 為您的容器提供 ASP.NET 核心記錄支援。 |
No | 坐騎 | 從主計算機讀取和寫入數據至容器,以及從容器回寫主計算機。 |
ApiKey 組態設定
此 ApiKey
設定會指定用來追蹤容器帳單資訊的 Azure 資源金鑰。 您必須指定 ApiKey 的值,而且值必須是針對Billing
組態設定所指定的語音資源的有效索引鍵。
您可以在下列位置找到此設定:
- Azure 入口網站:位於 [金鑰] 下的語音資源管理
ApplicationInsights 設定
此ApplicationInsights
設定可讓您將 Azure 應用程式 Insights 遙測支援新增至您的容器。 Application Insights 提供容器的深入監視。 您可以輕鬆地監視容器的可用性、效能和使用方式。 您也可以快速識別並診斷容器中的錯誤。
下表描述 區段底下 ApplicationInsights
支援的組態設定。
必要 | 名稱 | 資料類型 | 描述 |
---|---|---|---|
No | InstrumentationKey |
String | 傳送容器遙測數據的ApplicationInsights實例檢測密鑰。 如需詳細資訊,請參閱 ASP.NET Core 的 Application Insights。 範例: InstrumentationKey=123456789 |
帳單組態設定
此Billing
設定會指定 Azure 上用來計量容器計費資訊的語音資源端點 URI。 您必須指定此組態設定的值,而且此值必須是 Azure 上語音資源的有效端點 URI。 容器會每隔 10 到 15 分鐘報告使用量。
您可以在下列位置找到此設定:
- Azure 入口網站:標示
Endpoint
在語音概觀頁面上
必要 | 名稱 | 資料類型 | 描述 |
---|---|---|---|
Yes | Billing |
String | 計費端點 URI。 如需有關取得計費 URI 的詳細資訊,請參閱帳單。 如需詳細資訊和完整的區域端點清單,請參閱 Azure AI 服務的自訂子網域名稱。 |
Eula 設定
此 Eula
設定表示您已接受容器的授權。 您必須設定指定值,且值必須設定為 accept
。
必要 | 名稱 | 資料類型 | 描述 |
---|---|---|---|
Yes | Eula |
String | 接受授權 範例: Eula=accept |
Azure AI 服務容器是在您的合約 (控管您對於 Azure 的使用) 底下獲得授權。 如果您沒有管理您 Azure 使用的現有合約,表示您同意管理 Azure 使用方式的合約是 Microsoft Online 訂用帳戶合約,其中包含 在線服務條款。 針對預覽版,您也同意 Microsoft Azure 預覽版的補充使用規定。 藉由使用容器,即表示您同意這些條款。
Fluentd 設定
Fluentd 是統一記錄的開放原始碼數據收集器。 這些 Fluentd
設定會管理容器與 Fluentd 伺服器的連線。 容器包含 Fluentd 記錄提供者,可讓您的容器將記錄和選擇性地計量數據寫入 Fluentd 伺服器。
下表描述 區段底下 Fluentd
支援的組態設定。
名稱 | 資料類型 | 描述 |
---|---|---|
Host |
String | Fluentd 伺服器的IP位址或 DNS 主機名。 |
Port |
整數 | Fluentd 伺服器的埠。 預設值為 24224。 |
HeartbeatMs |
整數 | 活動訊號間隔,以毫秒為單位。 如果此間隔到期之前未傳送任何事件流量,活動訊號就會傳送至 Fluentd 伺服器。 默認值為 60000 毫秒(1 分鐘)。 |
SendBufferSize |
整數 | 配置給傳送作業的網路緩衝區空間,以位元組為單位。 默認值為32768位元組(32 KB)。 |
TlsConnectionEstablishmentTimeoutMs |
整數 | 逾時,以毫秒為單位,用來建立與 Fluentd 伺服器的 SSL/TLS 連線。 默認值為10000毫秒(10秒)。 如果 UseTLS 設定為 false,則會忽略此值。 |
UseTLS |
布林值 | 指出容器是否應該使用 SSL/TLS 與 Fluentd 伺服器通訊。 預設值為 false。 |
HTTP Proxy 認證設定
如果您需要設定 HTTP Proxy 以提出輸出要求,請使用這兩個自變數:
名稱 | 資料類型 | 描述 |
---|---|---|
HTTP_PROXY | string | 要使用的 Proxy,例如 http://proxy:8888 <proxy-url> |
HTTP_PROXY_CREDS | string | 任何針對 Proxy 進行驗證所需的認證,例如 username:password 。 此值 必須以小寫為單位。 |
<proxy-user> |
string | Proxy 的使用者。 |
<proxy-password> |
string | 與 <proxy-user> Proxy 相關聯的密碼。 |
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
HTTP_PROXY=<proxy-url> \
HTTP_PROXY_CREDS=<proxy-user>:<proxy-password> \
記錄設定
這些 Logging
設定會管理容器的 ASP.NET Core 記錄支援。 您可以針對用於 ASP.NET Core 應用程式的容器使用相同的組態設定和值。
容器支援下列記錄提供者:
提供者 | 目的 |
---|---|
主控台 | ASP.NET Core Console 記錄提供者。 支援此記錄提供者的所有 ASP.NET 核心組態設定和預設值。 |
偵錯 | ASP.NET Core Debug 記錄提供者。 支援此記錄提供者的所有 ASP.NET 核心組態設定和預設值。 |
磁碟 | JSON 記錄提供者。 此記錄提供者會將記錄數據寫入輸出掛接。 |
此容器命令會將 JSON 格式的記錄資訊儲存至輸出掛接:
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Disk:Format=json \
Mounts:Output=/output
此容器命令會顯示偵錯資訊,前面加上 dbug
,而容器正在執行:
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Console:LogLevel:Default=Debug
磁碟記錄
記錄 Disk
提供者支援下列組態設定:
名稱 | 資料類型 | 描述 |
---|---|---|
Format |
String | 記錄檔的輸出格式。 注意: 此值必須設定為 json ,才能啟用記錄提供者。 如果在具現化容器時未指定輸出掛接,則會發生錯誤。 |
MaxFileSize |
整數 | 記錄檔的大小上限,以 MB 為單位。 當目前記錄檔的大小符合或超過此值時,記錄提供者會啟動新的記錄檔。 如果指定了 -1,記錄檔的大小只會受限於輸出掛接的最大檔案大小。 預設值是 1。 |
如需設定核心記錄支援 ASP.NET 的詳細資訊,請參閱 設定 檔案組態。
掛接設定
使用系結掛接來讀取和寫入容器中的數據。 您可以在 docker run 命令中指定 選項,以指定--mount
輸入掛接或輸出掛接。
標準語音容器不會使用輸入或輸出掛接來儲存定型或服務數據。 不過,自定義語音容器依賴磁碟區掛接。
主機掛接位置的確切語法會根據主機操作系統而有所不同。 此外,由於 Docker 服務帳戶所使用的許可權與主機裝載位置許可權之間發生衝突, 因此可能無法存取主計算機的掛接位置。
選擇性 | 名稱 | 資料類型 | 描述 |
---|---|---|---|
不允許 | Input |
String | 標準語音容器不會使用此容器。 自訂語音容器會使用 磁碟區掛接。 |
選擇性 | Output |
String | 輸出掛接的目標。 預設值是 /output 。 這是記錄的位置。 這包括容器記錄。 範例: --mount type=bind,src=c:\output,target=/output |
磁碟區掛接設定
自訂語音容器會使用 磁碟區掛接 來保存自定義模型。 您可以將 [或--volume
] 選項新增-v
至 docker run 命令,以指定磁碟區掛接。
注意
磁碟區掛接設定僅適用於 自定義語音轉換文字 容器。
第一次下載自定義模型時,新模型會內嵌為自定義語音容器 docker run
命令的一部分。 自訂語音容器的循序執行會 ModelId
使用先前下載的模型。 如果未提供磁碟區掛接,就無法保存自定義模型。
磁碟區掛接設定包含三個色彩 :
分隔欄位:
- 第一個字段是主計算機上磁碟區的名稱,例如 C:\input。
- 第二個字段是容器中的目錄,例如 /usr/local/models。
- 第三個字段 (選擇性) 是以逗號分隔的選項清單,如需詳細資訊,請參閱 使用磁碟區。
以下為磁碟區裝載範例,示範將主機電腦的 C:\input 目錄裝載到容器的 /usr/local/models 目錄。
-v C:\input:/usr/local/models
下一步
- 檢閱 如何安裝和執行容器