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

使用 Docker 的语言识别容器

语音语言标识容器会检测音频文件中所说的语言。 可获取实时语音或批量音频录制,以及中间结果。 本文将介绍如何下载、安装和运行语言识别容器。

注意

语音语言识别容器以公共预览版提供。 预览版容器仍处于开发状态,因此不符合 Microsoft 的稳定性和支持要求。

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

提示

为了获取最有用的结果,请将语音语言识别容器与语音转文本自定义语音转文本容器配合使用。

容器映像

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

搜索连接器和触发器对话框的屏幕截图。

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

版本 路径
最晚 mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest
1.16.0 mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:1.16.0-amd64-preview

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

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

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

{
  "name": "azure-cognitive-services/speechservices/language-detection",
  "tags": [
    "1.1.0-amd64-preview",
    "1.11.0-amd64-preview",
    "1.12.0-amd64-preview",
    "1.13.0-amd64-preview",
    "1.14.0-amd64-preview",
    "1.15.0-amd64-preview",
    "1.16.0-amd64-preview",
    "1.3.0-amd64-preview",
    "1.5.0-amd64-preview",
    "1.6.1-amd64-preview",
    "1.7.0-amd64-preview",
    "1.8.0-amd64-preview",
    "latest"
  ]
}

使用 docker pull 获取容器映像

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

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

docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest

通过 docker run 运行容器

使用 docker run 命令运行容器。

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

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

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

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

docker run --rm -it -p 5000:5003 --memory 1g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

此命令:

  • 运行容器映像中的某个语音语言识别容器。
  • 分配 1 个 CPU 核心和 1 GB 内存。
  • 公开 TCP 端口 5000,并为容器分配伪 TTY。
  • 退出后自动删除容器。 容器映像在主计算机上仍然可用。

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

使用语音转文本容器运行

如果要将语言识别容器与语音转文本容器一起运行,可以使用此 Docker 映像。 启动这两个容器后,使用此 docker run 命令执行 speech-to-text-with-languagedetection-client

docker run --rm -v ${HOME}:/root -ti antsu/on-prem-client:latest ./speech-to-text-with-languagedetection-client ./audio/LanguageDetection_en-us.wav --host localhost --lport 5003 --sport 5000

增加并发调用数可能会影响可靠性和延迟。 要进行语言识别,我们建议使用 1 个 CPU 和 1 GB 内存最多发出 4 个并发调用。 对于具有 2 个 CPU 和 2 GB 内存的主机,建议最多发出 6 个并发调用。

使用容器

语音容器提供通过语音 SDK 和语音 CLI 访问的基于 Websocket 的查询终结点 API。 默认情况下,语音 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 入门

尝试语言识别,它使用主机身份验证而不是密钥和区域。 在容器中运行语言 ID 时,请使用 SourceLanguageRecognizer 对象而不是 SpeechRecognizerTranslationRecognizer

后续步骤