使用 Docker 的文字轉換語音容器
神經文字轉換語音容器會使用深度神經網路技術將文字轉換成自然發音語音,使語音合成更自然。 在本文中,您會了解如何下載、安裝及執行文字轉換語音容器。
如需必要條件、驗證容器正在執行、在相同主機上執行多個容器,以及執行中斷連線容器的詳細資訊,請參閱使用 Docker 安裝及執行語音容器。
容器映像
您可以在 Microsoft Container Registry (MCR) 同步發行中找到所有支援版本和地區設定的神經文字轉換語音容器映像。 其位於 azure-cognitive-services/speechservices/
存放庫內,並命名為 neural-text-to-speech
。
完整的容器映像名稱為 mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech
。 附加特定版本或附加 :latest
以取得最新版本。
版本 | Path |
---|---|
最新 | mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest latest 標籤會提取 en-US 地區設定和 en-us-arianeural 語音。 |
3.5.0 | mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:3.5.0-amd64-en-us-arianeural |
除了 latest
以外的所有標籤都採用下列格式,而且會區分大小寫:
<major>.<minor>.<patch>-<platform>-<voice>-<preview>
為了方便起見,標籤也以 JSON 格式提供。 本文包含容器路徑和標籤清單。 標籤不會依版本排序,但 "latest"
一律會包含在清單結尾,如下列程式碼片段所示:
{
"name": "azure-cognitive-services/speechservices/neural-text-to-speech",
"tags": [
<--redacted for brevity-->
"3.5.0-amd64-uk-ua-ostapneural",
"3.5.0-amd64-zh-cn-xiaochenneural-preview",
"3.5.0-amd64-zh-cn-xiaohanneural",
"3.5.0-amd64-zh-cn-xiaomoneural",
"3.5.0-amd64-zh-cn-xiaoqiuneural-preview",
"3.5.0-amd64-zh-cn-xiaoruineural",
"3.5.0-amd64-zh-cn-xiaoshuangneural-preview",
"3.5.0-amd64-zh-cn-xiaoxiaoneural",
"3.5.0-amd64-zh-cn-xiaoyanneural-preview",
"3.5.0-amd64-zh-cn-xiaoyouneural",
"3.5.0-amd64-zh-cn-yunxineural",
"3.5.0-amd64-zh-cn-yunyangneural",
"3.5.0-amd64-zh-cn-yunyeneural",
"latest"
]
}
重要
我們已於 2021 年 8月 31 日淘汰標準語音合成語音和標準文字轉換語音容器。 您應該改為搭配神經文字轉換語音容器 3.0 版和更高版本使用神經語音。
從 2024 年 2 月 29 日起,不支援文字轉換語音和神經文字轉換語音容器 2.19 版和更早版本。 如需更新應用程式的詳細資訊,請參閱從標準語音移轉至預建神經語音。
使用 docker pull 取得容器映像
您需要必要條件,包括必要的硬體。 另請參閱每個語音容器的建議資源配置。
使用 docker pull 命令,從 Microsoft Container Registry下載容器映像:
docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest
重要
latest
標籤會提取 en-US
地區設定和 en-us-arianeural
語音。 如需其他地區設定和語音,請參閱文字轉換語音容器映像。
使用 docker run 執行容器
將 docker run 命令執行容器。
下表代表各種 docker run
參數及其對應的描述:
參數 | 描述 |
---|---|
{ENDPOINT_URI} |
計量和帳單需要端點。 如需詳細資訊,請參閱計費引數。 |
{API_KEY} |
API 金鑰是必要的。 如需詳細資訊,請參閱計費引數。 |
當您執行文字轉換語音容器時,請根據文字轉換語音容器需求和建議,設定連接埠、記憶體和 CPU。
以下為具有預留位置值的範例 docker run
命令。 您必須指定 ENDPOINT_URI
和 API_KEY
值:
docker run --rm -it -p 5000:5000 --memory 12g --cpus 6 \
mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
此命令:
- 從容器映像執行神經文字轉換語音容器。
- 配置 6 個 CPU 核心和 12 GB 的記憶體。
- 公開 TCP 通訊埠 5000,並為容器配置虛擬 TTY。
- 在容器結束之後自動將其移除。 容器映像仍可在主機電腦上使用。
如需關於搭配語音容器執行 docker run
的詳細資訊,請參閱使用 Docker 安裝及執行語音容器。
使用該容器
語音容器會提供 Websocket 型查詢端點 API,其可透過語音 SDK 和語音 CLI 來存取。 根據預設,語音 SDK 和語音 CLI 會使用公用語音服務。 若要使用容器,您必須變更初始化方法。
重要
當您搭配容器使用語音服務時,請務必使用主機驗證。 如果您設定金鑰和區域,則要求會移至公用語音服務。 來自語音服務的結果可能並非如您預期的結果。 來自已中斷連線容器的要求將會失敗。
不要使用此 Azure 雲端初始化設定:
var config = SpeechConfig.FromSubscription(...);
搭配容器主機使用此設定:
var config = SpeechConfig.FromHost(
new Uri("http://localhost:5000"));
不要使用此 Azure 雲端初始化設定:
auto speechConfig = SpeechConfig::FromSubscription(...);
搭配容器主機使用此設定:
auto speechConfig = SpeechConfig::FromHost("http://localhost:5000");
不要使用此 Azure 雲端初始化設定:
speechConfig, err := speech.NewSpeechConfigFromSubscription(...)
搭配容器主機使用此設定:
speechConfig, err := speech.NewSpeechConfigFromHost("http://localhost:5000")
不要使用此 Azure 雲端初始化設定:
SpeechConfig speechConfig = SpeechConfig.fromSubscription(...);
搭配容器主機使用此設定:
SpeechConfig speechConfig = SpeechConfig.fromHost("http://localhost:5000");
不要使用此 Azure 雲端初始化設定:
const speechConfig = sdk.SpeechConfig.fromSubscription(...);
搭配容器主機使用此設定:
const speechConfig = sdk.SpeechConfig.fromHost("http://localhost:5000");
不要使用此 Azure 雲端初始化設定:
SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:...];
搭配容器主機使用此設定:
SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithHost:"http://localhost:5000"];
不要使用此 Azure 雲端初始化設定:
let speechConfig = SPXSpeechConfiguration(subscription: "", region: "");
搭配容器主機使用此設定:
let speechConfig = SPXSpeechConfiguration(host: "http://localhost:5000");
不要使用此 Azure 雲端初始化設定:
speech_config = speechsdk.SpeechConfig(
subscription=speech_key, region=service_region)
搭配容器端點使用此設定:
speech_config = speechsdk.SpeechConfig(
host="http://localhost:5000")
當您在容器中使用語音 CLI 時,請包含 --host http://localhost:5000/
選項。 您也必須指定 --key none
來確保 CLI 不會嘗試使用語音金鑰進行驗證。 如需如何設定語音 CLI 的詳細資訊,請參閱開始使用 Azure AI 語音 CLI。
使用主機驗證而非金鑰和區域,嘗試文字轉換語音快速入門。
SSML 語音元素
當您建構神經文字轉換語音 HTTP POST 時,SSML 訊息需要具有 name
屬性的 voice
元素。 語音的地區設定必須對應至容器模型的地區設定。 Azure 雲端和容器環境中的每個文字轉換語音音訊具有一致的 SSML 標籤支援。
例如,透過 latest
標籤 (預設為「en-US」) 下載的模型會有 en-US-AriaNeural
的語音名稱。
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-AriaNeural">
This is the text that is spoken.
</voice>
</speak>
下一步
- 請參閱語音容器概觀
- 檢閱設定容器以了解組態設定
- 使用更多 Azure AI 容器