使用 Docker 自訂語音轉換文字容器

自訂語音轉換文字容器會以中繼結果轉譯即時語音或批次音訊錄製。 您可以使用您在自訂語音入口網站中建立的自訂模型。 在本文中,您將瞭解如何下載、安裝及執行自定義語音轉換文字容器。

如需必要條件、驗證容器正在執行、在相同主機上執行多個容器,以及執行中斷連線容器的詳細資訊,請參閱使用 Docker 安裝及執行語音容器

容器映像

您可以在 Microsoft Container Registry (MCR) Syndicate 中找到所有支援版本和地區設定的自定義語音轉文字容器映像。 它位於存放庫內 azure-cognitive-services/speechservices/ ,並命名為 custom-speech-to-text

A screenshot of the search connectors and triggers dialog.

完整容器映像名稱為 mcr.microsoft.com/azure-cognitive-services/speechservices/custom-speech-to-text 附加特定版本或附加 :latest 以取得最新版本。

版本 Path
最新 mcr.microsoft.com/azure-cognitive-services/speechservices/custom-speech-to-text:latest
4.6.0 mcr.microsoft.com/azure-cognitive-services/speechservices/custom-speech-to-text:4.6.0-amd64

除了 latest以外的所有標籤都使用下列格式,且區分大小寫:

<major>.<minor>.<patch>-<platform>-<prerelease>

注意

適用於自訂語音轉換文字容器的 localevoice 是由容器內嵌的自訂模型所決定。

為了方便起見,標籤也以 JSON 格式提供。 本文包含容器路徑和標籤清單。 標籤不會依版本排序,但 "latest" 一律會包含在清單結尾,如下列程式碼片段所示:

{
  "name": "azure-cognitive-services/speechservices/custom-speech-to-text",
  "tags": [
    "2.10.0-amd64",
    "2.11.0-amd64",
    "2.12.0-amd64",
    "2.12.1-amd64",
    <--redacted for brevity-->
    "latest"
  ]
}

使用 docker pull 取得容器映像

您需要必要條件,包括必要的硬體。 另請參閱 每個語音容器的建議資源 配置。

使用 docker pull 命令從 Microsoft Container Registry 下載容器映射:

docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/custom-speech-to-text:latest

注意

自訂語音容器的 localevoice 是由容器內嵌的自定義模型所決定。

取得模型識別碼

您必須先知道自訂模型或基底模型識別碼的模型識別碼,才能執行容器。 當您執行容器時,您可以指定要下載並使用的其中一個模型識別碼。

自定義模型必須使用Speech Studio來定型。 如需如何取得模型標識符的資訊,請參閱 自定義語音模型生命週期

Screenshot that shows the custom speech training page.

取得做為命令參數自變數ModelIddocker run模型標識碼

Screenshot that shows custom speech model details.

顯示模型下載

在您執行容器前,您可以選擇性地取得可用的顯示模型資訊,並選擇將這些模型下載到語音轉換文字容器,以獲得大幅改善的最終顯示輸出。 自訂語音轉換文字容器 3.1.0 及更新版本可提供顯示模型下載。

注意

雖然您使用 docker run 命令,但容器並未啟動服務。

您可以查詢或下載上述任何或所有顯示模型類型:Rescoring (Rescore)、標點符號 (Punct)、重新分類 (Resegment) 和 wfstitn (Wfstitn)。 否則,您可以使用 FullDisplay 選項來查詢或下載所有類型的顯示模型。

BaseModelLocale將設定為在目標地區設定上查詢最新的可用顯示模型。 如果您包含多個顯示模型類型,命令會針對每個類型傳回最新的可用顯示模型。 例如:

docker run --rm -it \
mcr.microsoft.com/azure-cognitive-services/speechservices/custom-speech-to-text \
Punct Rescore Resegment Wfstitn \   # Specify `FullDisplay` or a space-separated subset of display models
BaseModelLocale={LOCALE} \           
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

設定 以 DisplayLocale 下載目標地區設定上的最新可用顯示模型。 當您設定 DisplayLocale時,也必須指定 FullDisplay 或以空格分隔的顯示模型子集。 命令會下載每個指定類型的最新可用顯示模型。 例如:

docker run --rm -it \
mcr.microsoft.com/azure-cognitive-services/speechservices/custom-speech-to-text \
Punct Rescore Resegment Wfstitn \   # Specify `FullDisplay` or a space-separated subset of display models
DisplayLocale={LOCALE} \           
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

設定一個模型識別碼參數以下載特定的顯示模型:Rescoring (RescoreId)、標點符號 (PunctId)、重新分列 (ResegmentId), 或 wfstitn (WfstitnId)。 這類似於您將透過 ModelId 參數下載基底模型的方式。 例如,若要下載重新記錄顯示模型,您可以使用下列命令搭配 RescoreId 參數:

docker run --rm -it \
mcr.microsoft.com/azure-cognitive-services/speechservices/custom-speech-to-text \
RescoreId={RESCORE_MODEL_ID} \         
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

注意

如果您設定多個查詢或下載參數,命令會依下列順序排列優先順序: BaseModelLocale、模型標識元,然後 DisplayLocale (僅適用於顯示模型)。

使用 docker run 執行容器

使用 docker run 命令來執行容器服務。

下表代表各種 docker run 參數及其對應的描述:

參數 描述
{VOLUME_MOUNT} Docker 用來保存自定義模型的主電腦磁碟 區掛接。 例如 c:\CustomSpeech,其中,c:\ 磁碟機位於主機電腦上。
{MODEL_ID} 自訂語音或基底模型識別碼。 如需詳細資訊,請參閱取得模型識別碼
{ENDPOINT_URI} 計量和計費需要端點。 如需詳細資訊,請參閱計費引數
{API_KEY} 需要 API 金鑰。 如需詳細資訊,請參閱計費引數

當您執行自訂語音轉換文字容器時,請根據自訂語音轉換文字容器需求和建議,設定連接埠、記憶體和 CPU。

以下為具有預留位置值的範例 docker run 命令。 您必須指定 VOLUME_MOUNTMODEL_IDENDPOINT_URIAPI_KEY 值:

docker run --rm -it -p 5000:5000 --memory 8g --cpus 4 \
-v {VOLUME_MOUNT}:/usr/local/models \
mcr.microsoft.com/azure-cognitive-services/speechservices/custom-speech-to-text \
ModelId={MODEL_ID} \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

此命令:

  • 從容器映像執行自訂語音轉換文字容器。
  • 配置 4 個 CPU 核心和 8 GB 的記憶體。
  • 從磁碟區輸入掛接中載入自訂語音轉換文字模型,例如 C:\CustomSpeech
  • 公開 TCP 連接埠 5000,並為容器配置虛擬 TTY。
  • 下載指定的 ModelId 模型(如果在磁碟區掛接上找不到的話)。
  • 如果先前已下載自訂模型, ModelId 則會忽略 。
  • 在容器結束時自動移除容器。 主計算機上仍可使用容器映像。

如需關於搭配語音容器執行 docker run 的詳細資訊,請參閱使用 Docker 安裝及執行語音容器

使用該容器

語音容器會提供 Websocket 型查詢端點 API,其可透過語音 SDK 和語音 CLI 來存取。 根據預設,語音 SDK 和語音 CLI 會使用公用語音服務。 若要使用容器,您必須變更初始化方法。

重要

當您搭配容器使用語音服務時,請務必使用主機驗證。 如果您設定金鑰和區域,則要求會移至公用語音服務。 來自語音服務的結果可能並非如您預期的結果。 來自已中斷連線容器的要求將會失敗。

不要使用此 Azure 雲端初始化設定:

var config = SpeechConfig.FromSubscription(...);

搭配容器主機使用此設定:

var config = SpeechConfig.FromHost(
    new Uri("ws://localhost:5000"));

不要使用此 Azure 雲端初始化設定:

auto speechConfig = SpeechConfig::FromSubscription(...);

搭配容器主機使用此設定:

auto speechConfig = SpeechConfig::FromHost("ws://localhost:5000");

不要使用此 Azure 雲端初始化設定:

speechConfig, err := speech.NewSpeechConfigFromSubscription(...)

搭配容器主機使用此設定:

speechConfig, err := speech.NewSpeechConfigFromHost("ws://localhost:5000")

不要使用此 Azure 雲端初始化設定:

SpeechConfig speechConfig = SpeechConfig.fromSubscription(...);

搭配容器主機使用此設定:

SpeechConfig speechConfig = SpeechConfig.fromHost("ws://localhost:5000");

不要使用此 Azure 雲端初始化設定:

const speechConfig = sdk.SpeechConfig.fromSubscription(...);

搭配容器主機使用此設定:

const speechConfig = sdk.SpeechConfig.fromHost("ws://localhost:5000");

不要使用此 Azure 雲端初始化設定:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:...];

搭配容器主機使用此設定:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithHost:"ws://localhost:5000"];

不要使用此 Azure 雲端初始化設定:

let speechConfig = SPXSpeechConfiguration(subscription: "", region: "");

搭配容器主機使用此設定:

let speechConfig = SPXSpeechConfiguration(host: "ws://localhost:5000");

不要使用此 Azure 雲端初始化設定:

speech_config = speechsdk.SpeechConfig(
    subscription=speech_key, region=service_region)

搭配容器端點使用此設定:

speech_config = speechsdk.SpeechConfig(
    host="ws://localhost:5000")

當您在容器中使用語音 CLI 時,請包含 --host wss://localhost:5000/ 選項。 您也必須指定 --key none 來確保 CLI 不會嘗試使用語音金鑰進行驗證。 如需如何設定語音 CLI 的詳細資訊,請參閱開始使用 Azure AI 語音 CLI

使用主機驗證而非金鑰和區域,嘗試語音轉換文字快速入門

下一步