使用 Docker 自訂語音轉換文字容器
自訂語音轉換文字容器會以中繼結果轉譯即時語音或批次音訊錄製。 您可以使用您在自訂語音入口網站中建立的自訂模型。 在本文中,您將瞭解如何下載、安裝及執行自定義語音轉換文字容器。
如需必要條件、驗證容器正在執行、在相同主機上執行多個容器,以及執行中斷連線容器的詳細資訊,請參閱使用 Docker 安裝及執行語音容器。
容器映像
您可以在 Microsoft Container Registry (MCR) Syndicate 中找到所有支援版本和地區設定的自定義語音轉文字容器映像。 它位於存放庫內 azure-cognitive-services/speechservices/
,並命名為 custom-speech-to-text
。
完整容器映像名稱為 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>
注意
適用於自訂語音轉換文字容器的 locale
和 voice
是由容器內嵌的自訂模型所決定。
為了方便起見,標籤也以 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
注意
自訂語音容器的 locale
和 voice
是由容器內嵌的自定義模型所決定。
取得模型識別碼
您必須先知道自訂模型或基底模型識別碼的模型識別碼,才能執行容器。 當您執行容器時,您可以指定要下載並使用的其中一個模型識別碼。
自定義模型必須使用Speech Studio來定型。 如需如何取得模型標識符的資訊,請參閱 自定義語音模型生命週期。
取得做為命令參數自變數ModelId
的docker run
模型標識碼。
顯示模型下載
在您執行容器前,您可以選擇性地取得可用的顯示模型資訊,並選擇將這些模型下載到語音轉換文字容器,以獲得大幅改善的最終顯示輸出。 自訂語音轉換文字容器 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_MOUNT
、MODEL_ID
、ENDPOINT_URI
和 API_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。
使用主機驗證而非金鑰和區域,嘗試語音轉換文字快速入門。
下一步
- 請參閱語音容器概觀
- 檢閱 設定容器 以進行組態設定
- 使用更多 Azure AI 容器