你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Docker 的语音转文本容器

语音转文本容器会听录实时语音或批量音频录制,并生成中间结果。 本文介绍如何下载、安装以及运行语音转文本容器。

有关先决条件、验证容器是否正在运行、在同一主机上运行多个容器以及运行断开连接的容器的详细信息,请参阅使用 Docker 安装和运行语音容器

容器映像

可在 Microsoft 容器注册表 (MCR) 联合中找到所有受支持版本和区域设置的语音转文本容器映像。 该映像驻留在 azure-cognitive-services/speechservices/ 存储库中,名为 speech-to-text

A screenshot of the search connectors and triggers dialog.

完全限定的容器映像名称为 mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text。 追加特定版本或追加 :latest 以获取最新版本。

版本 路径
最晚 mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text:latest

latest 标记会拉取 en-US 区域设置的最新映像。
4.6.0 mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text:4.6.0-amd64-mr-in

latest 以外的所有标记均采用以下格式并区分大小写:

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

为方便起见,这些标记也以 JSON 格式提供。 正文包括容器路径和标记列表。 标记不按版本排序,但 "latest" 始终包含在列表末尾,如以下代码片段所示:

{
  "name": "azure-cognitive-services/speechservices/speech-to-text",
  "tags": [
    "2.10.0-amd64-ar-ae",
    "2.10.0-amd64-ar-bh",
    "2.10.0-amd64-ar-eg",
    "2.10.0-amd64-ar-iq",
    "2.10.0-amd64-ar-jo",
    <--redacted for brevity-->
    "latest"
  ]
}

使用 docker pull 获取容器映像

需要满足先决条件,包括所需的硬件。 另请参阅为每个语音容器建议的资源分配

使用 docker pull 命令从 Microsoft Container Registry 下载容器映像:

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

重要

latest 标记会拉取 en-US 区域设置的最新映像。 有关其他版本和区域设置,请参阅语音转文本容器映像

通过 docker run 运行容器

使用 docker run 命令运行容器。

下表列出了各个 docker run 参数及其对应的说明:

参数 说明
{ENDPOINT_URI} 必须使用该终结点进行计量和计费。 有关详细信息,请参阅计费参数
{API_KEY} API 密钥是必需的。 有关详细信息,请参阅计费参数

运行语音转文本容器时,请根据语音转文本容器的要求和建议配置端口、内存和 CPU。

下面是一个示例 docker run 命令以及占位符值。 必须指定 ENDPOINT_URIAPI_KEY 的值:

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

此命令:

  • 从容器映像运行 speech-to-text 容器。
  • 分配 4 个 CPU 核心和 8 GB 内存。
  • 公开 TCP 端口 5000,并为容器分配伪 TTY。
  • 退出后自动删除容器。 容器映像在主计算机上仍然可用。

有关 docker run 和语音容器的详细信息,请参阅使用 Docker 安装和运行语音容器

使用容器

语音容器提供通过语音 SDK 和语音 CLI 访问的基于 Websocket 的查询终结点 API。 默认情况下,语音 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 ws://localhost:5000/ 选项。 还必须指定 --key none 以确保 CLI 不会尝试使用语音密钥进行身份验证。 有关如何配置语音 CLI 的信息,请参阅 Azure AI 语音 CLI 入门

尝试语音转文本快速入门,它使用主机身份验证而不是密钥和区域。

后续步骤