你当前正在访问 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_URI
和 API_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
对象而不是 SpeechRecognizer
或 TranslationRecognizer
。
后续步骤
- 请参阅语音容器概述
- 查看配置容器了解配置设置。
- 使用更多 Azure AI 容器