参考文档 | Package (PyPi) | GitHub上的更多示例
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
Tip
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
Tip
试用 Azure 语音工具包 ,在 Visual Studio Code 上轻松生成和运行字幕示例。
Prerequisites
- 一份 Azure 订阅。 可以创建一个试用帐户
- 在 Azure 门户中创建用于语音的 AI Services 资源。
- 获取语音资源密钥和区域。 部署语音资源后,选择“转到资源”以查看和管理密钥。
设置环境
适用于 Python 的语音 SDK 可用作 Python 包索引 (PyPI) 模块。 适用于 Python 的语音 SDK 与 Windows、Linux 和 macOS 兼容。
- 必须安装适用于你的平台的 Microsoft Visual C++ Redistributable for Visual Studio 2015、2017、2019 或 2022。 首次安装此包可能需要重启。
- 在 Linux 上,你必须使用 x64 目标体系结构。
- 安装 3.10 或更高版本的 Python。 首先请查看 SDK 安装指南以了解更多要求
- 还必须为压缩的输入音频安装 GStreamer 。
设置环境变量。
需要对应用程序进行身份验证才能访问 Azure AI 服务。 本文介绍如何使用环境变量来存储凭据。 然后,你可以从代码访问环境变量来验证应用程序。 对于生产环境,请使用更安全的方式来存储和访问凭据。
Important
我们建议使用 Microsoft Entra ID 和 Azure 资源的管理标识进行身份验证,以避免将凭据存储在运行于云中的应用程序中。
请谨慎使用 API 密钥。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。 如果使用 API 密钥,请将其安全地存储在 Azure 密钥保管库 中,定期轮换密钥,并使用基于角色的访问控制和网络访问限制来限制对 Azure 密钥保管库 的访问。
有关 AI 服务安全性的详细信息,请参阅 对 Azure AI 服务请求进行身份验证。
若要为语音资源密钥和区域设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 若要设置
SPEECH_KEY环境变量,请将 密钥 替换为资源键之一。 - 要设置
SPEECH_REGION环境变量,请将 your-region 替换为你的资源的某一个地区。 - 若要设置
ENDPOINT环境变量,请将your-endpoint替换为语音资源的实际终结点。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint
Note
如果你只需要访问当前控制台中的环境变量,可使用 set(而不是 setx)来设置环境变量。
添加环境变量后,你可能需要重启任何需要读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
通过语音创建字幕
按照以下步骤构建并运行字幕快速入门代码示例。
- 将 scenarios/python/console/captioning/ 的示例文件从 GitHub 下载或复制到本地目录中。
- 在与
captioning.py相同的目录中打开命令提示符。 - 运行以下命令来安装语音 SDK:
pip install azure-cognitiveservices-speech - 使用首选命令行参数运行应用程序。 请参阅用法和参数以了解可用选项。 下面是一个示例:
python captioning.py --input caption.this.mp4 --format any --output caption.output.txt --srt --realTime --threshold 5 --delay 0 --profanity mask --phrases "Contoso;Jessie;Rehaan"
查看结果
使用上述示例中的 realTime 选项时,输出中包含来自 Recognizing 事件的部分结果。 在此示例中,只有最终 Recognized 事件包含逗号。 逗号不是 Recognizing 和 Recognized 事件之间的唯一区别。 有关详细信息,请参阅 “获取部分结果”。
1
00:00:00,170 --> 00:00:00,380
The
2
00:00:00,380 --> 00:00:01,770
The rainbow
3
00:00:01,770 --> 00:00:02,560
The rainbow has seven
4
00:00:02,560 --> 00:00:03,820
The rainbow has seven colors
5
00:00:03,820 --> 00:00:05,050
The rainbow has seven colors red
6
00:00:05,050 --> 00:00:05,850
The rainbow has seven colors red
orange
7
00:00:05,850 --> 00:00:06,440
The rainbow has seven colors red
orange yellow
8
00:00:06,440 --> 00:00:06,730
The rainbow has seven colors red
orange yellow green
9
00:00:06,730 --> 00:00:07,160
orange, yellow, green, blue,
indigo and Violet.
使用 --offline 选项时,结果从最终 Recognized 事件开始是稳定的。 输出中不包括部分结果:
1
00:00:00,170 --> 00:00:05,540
The rainbow has seven colors, red,
orange, yellow, green, blue,
2
00:00:05,540 --> 00:00:07,160
indigo and Violet.
SRT (SubRip Text) 时间跨度输出格式为 hh:mm:ss,fff。 有关详细信息,请参阅字幕输出格式。
用法与参数
用法:python captioning.py --input <input file>
连接选项包括:
-
--key:语音资源密钥。 替代 SPEECH_KEY 环境变量。 必须设置环境变量(推荐)或使用--key选项。 -
--region REGION:语音资源区域。 替代SPEECH_REGION环境变量。 必须设置环境变量(推荐)或使用--region选项。 示例:chinanorth2、chinaeast2
Important
请谨慎使用 API 密钥。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。 如果使用 API 密钥,请将其安全地存储在 Azure 密钥保管库 中。 若要详细了解如何在应用中安全地使用 API 密钥,请参阅 API 密钥与 Azure 密钥保管库。
有关 AI 服务安全性的详细信息,请参阅 对 Azure AI 服务请求进行身份验证。
输入选项包括:
-
--input FILE:输入文件中的音频。 默认输入为麦克风。 -
--format FORMAT:使用压缩的音频格式。 仅对--file有效。 有效值为alaw、any、flac、mp3、mulaw和ogg_opus。 默认值为any。 若要使用wav文件,请不要指定格式。 此选项在 JavaScript 字幕示例中不可用。 对于压缩的音频文件(如 MP4),请安装 GStreamer 并参阅如何使用压缩的输入音频。
语言选项包括:
-
--language LANG:使用相应支持的语言环境之一来指定语言。 将字幕分行时使用此选项。 默认值为en-US。
识别选项包括:
-
--offline:输出脱机结果。 重写--realTime。 默认输出模式处于脱机状态。 -
--realTime:输出实时结果。
实时输出包括 Recognizing 事件结果。 默认脱机输出仅为 Recognized 事件结果。 这些内容始终写入控制台,永远不会写入输出文件。
--quiet 选项可替代此选项。 有关详细信息,请参阅获取语音识别结果。
准确度选项包括:
-
--phrases PHRASE1;PHRASE2:可以指定要识别的短语列表,例如Contoso;Jessie;Rehaan。 有关详细信息,请参阅使用短语列表提高识别性能。
输出选项包括:
-
--help:显示此帮助并停止 -
--output FILE:将字幕输出到指定的file。 此标志是必需的。 -
--srt:以 SRT(SubRip 文本)格式输出字幕。 默认格式为 WebVTT(Web 视频文本轨道)。 有关 SRT 和 WebVTT 字幕文件格式的详细信息,请参阅字幕输出格式。 -
--maxLineLength LENGTH:将字幕每行的最大字符数设置为 LENGTH。 最小值为 20。 默认值为 37(中文为 30)。 -
--lines LINES:将字幕的行数设置为 LINES。 最小值为 1。 默认值为 2。 -
--delay MILLISECONDS:延迟每条字幕显示的毫秒数,以模拟实时体验。 仅当使用realTime标志时,此选项才适用。 最小值为 0.0。 默认值为 1000。 -
--remainTime MILLISECONDS:如果字幕未被其他字幕替换,应在屏幕上停留多少毫秒。 最小值为 0.0。 默认值为 1000。 -
--quiet:禁止显示控制台输出,但错误除外。 -
--profanity OPTION:有效值:raw、remove、mask。 有关详细信息,请参阅 不雅内容筛选器 概念。 -
--threshold NUMBER:设置稳定的部分结果阈值。 默认值为3。 仅当使用realTime标志时,此选项才适用。 有关详细信息,请参阅 “获取部分结果 ”概念。
清理资源
可以使用 Azure 门户或 Azure 命令行接口 (CLI) 删除创建的语音资源。
参考文档 | Package (NuGet) | 更多示例请见GitHub
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
Tip
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
Tip
试用 Azure 语音工具包 ,在 Visual Studio Code 上轻松生成和运行字幕示例。
Prerequisites
- 一份 Azure 订阅。 可以创建一个试用帐户
- 在 Azure 门户中创建用于语音的 AI Services 资源。
- 获取语音资源密钥和区域。 部署语音资源后,选择“转到资源”以查看和管理密钥。
设置环境
语音 SDK 以 NuGet 包的形式提供并实现了 .NET Standard 2.0。 稍后在本指南中安装语音 SDK,但首先检查 SDK 安装指南 以了解更多要求。
还必须为压缩的输入音频安装 GStreamer 。
设置环境变量。
需要对应用程序进行身份验证才能访问 Azure AI 服务。 本文介绍如何使用环境变量来存储凭据。 然后,你可以从代码访问环境变量来验证应用程序。 对于生产环境,请使用更安全的方式来存储和访问凭据。
Important
我们建议使用 Microsoft Entra ID 和 Azure 资源的管理标识进行身份验证,以避免将凭据存储在运行于云中的应用程序中。
请谨慎使用 API 密钥。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。 如果使用 API 密钥,请将其安全地存储在 Azure 密钥保管库 中,定期轮换密钥,并使用基于角色的访问控制和网络访问限制来限制对 Azure 密钥保管库 的访问。
有关 AI 服务安全性的详细信息,请参阅 对 Azure AI 服务请求进行身份验证。
若要为语音资源密钥和区域设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 若要设置
SPEECH_KEY环境变量,请将 密钥 替换为资源键之一。 - 要设置
SPEECH_REGION环境变量,请将 your-region 替换为你的资源的某一个地区。 - 若要设置
ENDPOINT环境变量,请将your-endpoint替换为语音资源的实际终结点。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint
Note
如果你只需要访问当前控制台中的环境变量,可使用 set(而不是 setx)来设置环境变量。
添加环境变量后,你可能需要重启任何需要读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
通过语音创建字幕
按照以下步骤构建并运行字幕快速入门代码示例。
- 从 GitHub 复制 scenarios/csharp/dotnetcore/captioning/ 示例文件。 如果 已安装 Git,请打开命令提示符并运行
git clone命令以下载语音 SDK 示例存储库。git clone https://github.com/Azure-Samples/cognitive-services-speech-sdk.git - 打开命令提示符,并更改为项目目录。
cd <your-local-path>/scenarios/csharp/dotnetcore/captioning/captioning/ - 使用 .NET CLI 生成项目。
dotnet build - 使用首选命令行参数运行应用程序。 请参阅用法和参数以了解可用选项。 下面是一个示例:
dotnet run --input caption.this.mp4 --format any --output caption.output.txt --srt --realTime --threshold 5 --delay 0 --profanity mask --phrases "Contoso;Jessie;Rehaan"
查看结果
使用上述示例中的 realTime 选项时,输出中包含来自 Recognizing 事件的部分结果。 在此示例中,只有最终 Recognized 事件包含逗号。 逗号不是 Recognizing 和 Recognized 事件之间的唯一区别。 有关详细信息,请参阅 “获取部分结果”。
1
00:00:00,170 --> 00:00:00,380
The
2
00:00:00,380 --> 00:00:01,770
The rainbow
3
00:00:01,770 --> 00:00:02,560
The rainbow has seven
4
00:00:02,560 --> 00:00:03,820
The rainbow has seven colors
5
00:00:03,820 --> 00:00:05,050
The rainbow has seven colors red
6
00:00:05,050 --> 00:00:05,850
The rainbow has seven colors red
orange
7
00:00:05,850 --> 00:00:06,440
The rainbow has seven colors red
orange yellow
8
00:00:06,440 --> 00:00:06,730
The rainbow has seven colors red
orange yellow green
9
00:00:06,730 --> 00:00:07,160
orange, yellow, green, blue,
indigo and Violet.
使用 --offline 选项时,结果从最终 Recognized 事件开始是稳定的。 输出中不包括部分结果:
1
00:00:00,170 --> 00:00:05,540
The rainbow has seven colors, red,
orange, yellow, green, blue,
2
00:00:05,540 --> 00:00:07,160
indigo and Violet.
SRT (SubRip Text) 时间跨度输出格式为 hh:mm:ss,fff。 有关详细信息,请参阅字幕输出格式。
用法与参数
用法:captioning --input <input file>
连接选项包括:
-
--key:语音资源密钥。 替代 SPEECH_KEY 环境变量。 必须设置环境变量(推荐)或使用--key选项。 -
--region REGION:语音资源区域。 替代SPEECH_REGION环境变量。 必须设置环境变量(推荐)或使用--region选项。 示例:chinanorth2、chinaeast2
Important
请谨慎使用 API 密钥。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。 如果使用 API 密钥,请将其安全地存储在 Azure 密钥保管库 中。 若要详细了解如何在应用中安全地使用 API 密钥,请参阅 API 密钥与 Azure 密钥保管库。
有关 AI 服务安全性的详细信息,请参阅 对 Azure AI 服务请求进行身份验证。
输入选项包括:
-
--input FILE:输入文件中的音频。 默认输入为麦克风。 -
--format FORMAT:使用压缩的音频格式。 仅对--file有效。 有效值为alaw、any、flac、mp3、mulaw和ogg_opus。 默认值为any。 若要使用wav文件,请不要指定格式。 此选项在 JavaScript 字幕示例中不可用。 对于压缩的音频文件(如 MP4),请安装 GStreamer 并参阅如何使用压缩的输入音频。
语言选项包括:
-
--language LANG:使用相应支持的语言环境之一来指定语言。 将字幕分行时使用此选项。 默认值为en-US。
识别选项包括:
-
--offline:输出脱机结果。 重写--realTime。 默认输出模式处于脱机状态。 -
--realTime:输出实时结果。
实时输出包括 Recognizing 事件结果。 默认脱机输出仅为 Recognized 事件结果。 这些内容始终写入控制台,永远不会写入输出文件。
--quiet 选项可替代此选项。 有关详细信息,请参阅获取语音识别结果。
准确度选项包括:
-
--phrases PHRASE1;PHRASE2:可以指定要识别的短语列表,例如Contoso;Jessie;Rehaan。 有关详细信息,请参阅使用短语列表提高识别性能。
输出选项包括:
-
--help:显示此帮助并停止 -
--output FILE:将字幕输出到指定的file。 此标志是必需的。 -
--srt:以 SRT(SubRip 文本)格式输出字幕。 默认格式为 WebVTT(Web 视频文本轨道)。 有关 SRT 和 WebVTT 字幕文件格式的详细信息,请参阅字幕输出格式。 -
--maxLineLength LENGTH:将字幕每行的最大字符数设置为 LENGTH。 最小值为 20。 默认值为 37(中文为 30)。 -
--lines LINES:将字幕的行数设置为 LINES。 最小值为 1。 默认值为 2。 -
--delay MILLISECONDS:延迟每条字幕显示的毫秒数,以模拟实时体验。 仅当使用realTime标志时,此选项才适用。 最小值为 0.0。 默认值为 1000。 -
--remainTime MILLISECONDS:如果字幕未被其他字幕替换,应在屏幕上停留多少毫秒。 最小值为 0.0。 默认值为 1000。 -
--quiet:禁止显示控制台输出,但错误除外。 -
--profanity OPTION:有效值:raw、remove、mask。 有关详细信息,请参阅 不雅内容筛选器 概念。 -
--threshold NUMBER:设置稳定的部分结果阈值。 默认值为3。 仅当使用realTime标志时,此选项才适用。 有关详细信息,请参阅 “获取部分结果 ”概念。
清理资源
可以使用 Azure 门户或 Azure 命令行接口 (CLI) 删除创建的语音资源。
参考文档 | 包 (npm) | GitHub 上的其他示例 | 库源代码
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
Tip
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
Tip
试用 Azure 语音工具包 ,在 Visual Studio Code 上轻松生成和运行字幕示例。
Prerequisites
- 一份 Azure 订阅。 可以创建一个试用帐户
- 在 Azure 门户中创建用于语音的 AI Services 资源。
- 获取语音资源密钥和区域。 部署语音资源后,选择“转到资源”以查看和管理密钥。
设置环境
在可以执行任何操作之前,需要安装适用于 JavaScript 的语音 SDK。 如果只想安装包名称,请运行 npm install microsoft-cognitiveservices-speech-sdk。 有关引导式安装说明,请参阅 SDK 安装指南。
通过语音创建字幕
按照以下步骤构建并运行字幕快速入门代码示例。
将scenarios/javascript/node/captioning/示例文件从GitHub复制到项目目录中。
在与
Captioning.js相同的目录中打开命令提示符。安装适用于 JavaScript 的语音 SDK:
npm install microsoft-cognitiveservices-speech-sdk使用首选命令行参数运行应用程序。 请参阅用法和参数以了解可用选项。 以下是示例:
node captioning.js --key YourSpeechResoureKey --region YourServiceRegion --input caption.this.wav --output caption.output.txt --srt --recognizing --threshold 5 --profanity mask --phrases "Contoso;Jessie;Rehaan"将
YourSpeechResoureKey替换为语音资源密钥,并将YourServiceRegion替换为语音资源区域,例如chinanorth2或chinaeast2。 确保--input和--output指定的路径有效。 否则,必须更改路径。Note
适用于 JavaScript 的语音 SDK 不支持 压缩的输入音频。 必须使用 WAV 文件,如示例中所示。
Important
完成后,请记住将密钥从代码中删除,并且永远不要公开发布该密钥。 在生产中,请使用安全的方式存储和访问凭据,例如 Azure 密钥保管库。 有关详细信息,请参阅 Azure AI 服务安全性一文。
查看结果
包含完整字幕的输出文件被写入 caption.output.txt。 控制台中显示了中间结果:
00:00:00,180 --> 00:00:01,600
Welcome to
00:00:00,180 --> 00:00:01,820
Welcome to applied
00:00:00,180 --> 00:00:02,420
Welcome to applied mathematics
00:00:00,180 --> 00:00:02,930
Welcome to applied mathematics course
00:00:00,180 --> 00:00:03,100
Welcome to applied Mathematics course 2
00:00:00,180 --> 00:00:03,230
Welcome to applied Mathematics course 201.
SRT (SubRip Text) 时间跨度输出格式为 hh:mm:ss,fff。 有关详细信息,请参阅字幕输出格式。
用法与参数
用法:node captioning.js --key <key> --region <region> --input <input file>
连接选项包括:
-
--key:语音资源密钥。 -
--region REGION:语音资源区域。 示例:chinanorth2、chinaeast2
输入选项包括:
-
--input FILE:输入文件中的音频。 默认输入为麦克风。 -
--format FORMAT:使用压缩的音频格式。 仅对--file有效。 有效值为alaw、any、flac、mp3、mulaw和ogg_opus。 默认值为any。 若要使用wav文件,请不要指定格式。 此选项在 JavaScript 字幕示例中不可用。 对于压缩的音频文件(如 MP4),请安装 GStreamer 并参阅如何使用压缩的输入音频。
语言选项包括:
-
--languages LANG1,LANG2:为指定语言启用语言识别。 例如:en-US,ja-JP。 此选项仅在 C++、C# 和 Python 字幕示例中可用。 有关详细信息,请参阅语言识别。
识别选项包括:
-
--recognizing:输出Recognizing事件结果。 默认输出仅为Recognized事件结果。 这些内容始终写入控制台,永远不会写入输出文件。--quiet选项可替代此选项。 有关详细信息,请参阅获取语音识别结果。
准确度选项包括:
-
--phrases PHRASE1;PHRASE2:可以指定要识别的短语列表,例如Contoso;Jessie;Rehaan。 有关详细信息,请参阅使用短语列表提高识别性能。
输出选项包括:
-
--help:显示此帮助并停止 -
--output FILE:将字幕输出到指定的file。 此标志是必需的。 -
--srt:以 SRT(SubRip 文本)格式输出字幕。 默认格式为 WebVTT(Web 视频文本轨道)。 有关 SRT 和 WebVTT 字幕文件格式的详细信息,请参阅字幕输出格式。 -
--quiet:禁止显示控制台输出,但错误除外。 -
--profanity OPTION:有效值:raw、remove、mask。 有关详细信息,请参阅 不雅内容筛选器 概念。 -
--threshold NUMBER:设置稳定的部分结果阈值。 默认值为3。 有关详细信息,请参阅 “获取部分结果 ”概念。
清理资源
可以使用 Azure 门户或 Azure 命令行接口 (CLI) 删除创建的语音资源。
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
Tip
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
Tip
试用 Azure 语音工具包 ,在 Visual Studio Code 上轻松生成和运行字幕示例。
Prerequisites
- 一份 Azure 订阅。 可以创建一个试用帐户
- 在 Azure 门户中创建用于语音的 AI Services 资源。
- 获取语音资源密钥和区域。 部署语音资源后,选择“转到资源”以查看和管理密钥。
设置环境
在可以执行任何操作之前,需要 安装语音 SDK。 本快速入门中的示例适用于 Microsoft Build of OpenJDK 17
- 安装 Apache Maven。 然后运行
mvn -v以确认安装成功。 - 在项目的根目录中创建一个新
pom.xml文件,并将以下内容复制到其中:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.microsoft.cognitiveservices.speech.samples</groupId> <artifactId>quickstart-eclipse</artifactId> <version>1.0.0-SNAPSHOT</version> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.microsoft.cognitiveservices.speech</groupId> <artifactId>client-sdk</artifactId> <version>1.43.0</version> </dependency> </dependencies> </project> - 安装语音 SDK 和依赖项。
mvn clean dependency:copy-dependencies - 还必须为压缩的输入音频安装 GStreamer 。
设置环境变量。
需要对应用程序进行身份验证才能访问 Azure AI 服务。 本文介绍如何使用环境变量来存储凭据。 然后,你可以从代码访问环境变量来验证应用程序。 对于生产环境,请使用更安全的方式来存储和访问凭据。
Important
我们建议使用 Microsoft Entra ID 和 Azure 资源的管理标识进行身份验证,以避免将凭据存储在运行于云中的应用程序中。
请谨慎使用 API 密钥。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。 如果使用 API 密钥,请将其安全地存储在 Azure 密钥保管库 中,定期轮换密钥,并使用基于角色的访问控制和网络访问限制来限制对 Azure 密钥保管库 的访问。
有关 AI 服务安全性的详细信息,请参阅 对 Azure AI 服务请求进行身份验证。
若要为语音资源密钥和区域设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 若要设置
SPEECH_KEY环境变量,请将 密钥 替换为资源键之一。 - 要设置
SPEECH_REGION环境变量,请将 your-region 替换为你的资源的某一个地区。 - 若要设置
ENDPOINT环境变量,请将your-endpoint替换为语音资源的实际终结点。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint
Note
如果你只需要访问当前控制台中的环境变量,可使用 set(而不是 setx)来设置环境变量。
添加环境变量后,你可能需要重启任何需要读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
通过语音创建字幕
按照以下步骤构建并运行字幕快速入门代码示例。
- 将 scenarios/java/jre/captioning/ 示例文件从 GitHub 复制到项目目录中。 在
pom.xml中创建的 文件也必须在这个目录中。 - 打开命令提示符并运行此命令以编译项目文件。
javac Captioning.java -cp ".;target\dependency\*" -encoding UTF-8 - 使用首选命令行参数运行应用程序。 请参阅用法和参数以了解可用选项。 下面是一个示例:
java -cp ".;target\dependency\*" Captioning --input caption.this.mp4 --format any --output caption.output.txt --srt --realTime --threshold 5 --delay 0 --profanity mask --phrases "Contoso;Jessie;Rehaan"
查看结果
使用上述示例中的 realTime 选项时,输出中包含来自 Recognizing 事件的部分结果。 在此示例中,只有最终 Recognized 事件包含逗号。 逗号不是 Recognizing 和 Recognized 事件之间的唯一区别。 有关详细信息,请参阅 “获取部分结果”。
1
00:00:00,170 --> 00:00:00,380
The
2
00:00:00,380 --> 00:00:01,770
The rainbow
3
00:00:01,770 --> 00:00:02,560
The rainbow has seven
4
00:00:02,560 --> 00:00:03,820
The rainbow has seven colors
5
00:00:03,820 --> 00:00:05,050
The rainbow has seven colors red
6
00:00:05,050 --> 00:00:05,850
The rainbow has seven colors red
orange
7
00:00:05,850 --> 00:00:06,440
The rainbow has seven colors red
orange yellow
8
00:00:06,440 --> 00:00:06,730
The rainbow has seven colors red
orange yellow green
9
00:00:06,730 --> 00:00:07,160
orange, yellow, green, blue,
indigo and Violet.
使用 --offline 选项时,结果从最终 Recognized 事件开始是稳定的。 输出中不包括部分结果:
1
00:00:00,170 --> 00:00:05,540
The rainbow has seven colors, red,
orange, yellow, green, blue,
2
00:00:05,540 --> 00:00:07,160
indigo and Violet.
SRT (SubRip Text) 时间跨度输出格式为 hh:mm:ss,fff。 有关详细信息,请参阅字幕输出格式。
用法与参数
用法:java -cp ".;target\dependency\*" Captioning --input <input file>
连接选项包括:
-
--key:语音资源密钥。 替代 SPEECH_KEY 环境变量。 必须设置环境变量(推荐)或使用--key选项。 -
--region REGION:语音资源区域。 替代SPEECH_REGION环境变量。 必须设置环境变量(推荐)或使用--region选项。 示例:chinanorth2、chinaeast2
Important
请谨慎使用 API 密钥。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。 如果使用 API 密钥,请将其安全地存储在 Azure 密钥保管库 中。 若要详细了解如何在应用中安全地使用 API 密钥,请参阅 API 密钥与 Azure 密钥保管库。
有关 AI 服务安全性的详细信息,请参阅 对 Azure AI 服务请求进行身份验证。
输入选项包括:
-
--input FILE:输入文件中的音频。 默认输入为麦克风。 -
--format FORMAT:使用压缩的音频格式。 仅对--file有效。 有效值为alaw、any、flac、mp3、mulaw和ogg_opus。 默认值为any。 若要使用wav文件,请不要指定格式。 此选项在 JavaScript 字幕示例中不可用。 对于压缩的音频文件(如 MP4),请安装 GStreamer 并参阅如何使用压缩的输入音频。
语言选项包括:
-
--language LANG:使用相应支持的语言环境之一来指定语言。 将字幕分行时使用此选项。 默认值为en-US。
识别选项包括:
-
--offline:输出脱机结果。 重写--realTime。 默认输出模式处于脱机状态。 -
--realTime:输出实时结果。
实时输出包括 Recognizing 事件结果。 默认脱机输出仅为 Recognized 事件结果。 这些内容始终写入控制台,永远不会写入输出文件。
--quiet 选项可替代此选项。 有关详细信息,请参阅获取语音识别结果。
准确度选项包括:
-
--phrases PHRASE1;PHRASE2:可以指定要识别的短语列表,例如Contoso;Jessie;Rehaan。 有关详细信息,请参阅使用短语列表提高识别性能。
输出选项包括:
-
--help:显示此帮助并停止 -
--output FILE:将字幕输出到指定的file。 此标志是必需的。 -
--srt:以 SRT(SubRip 文本)格式输出字幕。 默认格式为 WebVTT(Web 视频文本轨道)。 有关 SRT 和 WebVTT 字幕文件格式的详细信息,请参阅字幕输出格式。 -
--maxLineLength LENGTH:将字幕每行的最大字符数设置为 LENGTH。 最小值为 20。 默认值为 37(中文为 30)。 -
--lines LINES:将字幕的行数设置为 LINES。 最小值为 1。 默认值为 2。 -
--delay MILLISECONDS:延迟每条字幕显示的毫秒数,以模拟实时体验。 仅当使用realTime标志时,此选项才适用。 最小值为 0.0。 默认值为 1000。 -
--remainTime MILLISECONDS:如果字幕未被其他字幕替换,应在屏幕上停留多少毫秒。 最小值为 0.0。 默认值为 1000。 -
--quiet:禁止显示控制台输出,但错误除外。 -
--profanity OPTION:有效值:raw、remove、mask。 有关详细信息,请参阅 不雅内容筛选器 概念。 -
--threshold NUMBER:设置稳定的部分结果阈值。 默认值为3。 仅当使用realTime标志时,此选项才适用。 有关详细信息,请参阅 “获取部分结果 ”概念。
清理资源
可以使用 Azure 门户或 Azure 命令行接口 (CLI) 删除创建的语音资源。
参考文档 | Package (NuGet) | 更多示例请见GitHub
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
Tip
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
Tip
试用 Azure 语音工具包 ,在 Visual Studio Code 上轻松生成和运行字幕示例。
Prerequisites
- 一份 Azure 订阅。 可以创建一个试用帐户
- 在 Azure 门户中创建用于语音的 AI Services 资源。
- 获取语音资源密钥和区域。 部署语音资源后,选择“转到资源”以查看和管理密钥。
设置环境
语音 SDK 以 NuGet 包的形式提供并实现了 .NET Standard 2.0。 稍后在本指南中安装语音 SDK,但首先检查 SDK 安装指南 以了解更多要求
还必须为压缩的输入音频安装 GStreamer 。
设置环境变量。
需要对应用程序进行身份验证才能访问 Azure AI 服务。 本文介绍如何使用环境变量来存储凭据。 然后,你可以从代码访问环境变量来验证应用程序。 对于生产环境,请使用更安全的方式来存储和访问凭据。
Important
我们建议使用 Microsoft Entra ID 和 Azure 资源的管理标识进行身份验证,以避免将凭据存储在运行于云中的应用程序中。
请谨慎使用 API 密钥。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。 如果使用 API 密钥,请将其安全地存储在 Azure 密钥保管库 中,定期轮换密钥,并使用基于角色的访问控制和网络访问限制来限制对 Azure 密钥保管库 的访问。
有关 AI 服务安全性的详细信息,请参阅 对 Azure AI 服务请求进行身份验证。
若要为语音资源密钥和区域设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 若要设置
SPEECH_KEY环境变量,请将 密钥 替换为资源键之一。 - 要设置
SPEECH_REGION环境变量,请将 your-region 替换为你的资源的某一个地区。 - 若要设置
ENDPOINT环境变量,请将your-endpoint替换为语音资源的实际终结点。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint
Note
如果你只需要访问当前控制台中的环境变量,可使用 set(而不是 setx)来设置环境变量。
添加环境变量后,你可能需要重启任何需要读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
通过语音创建字幕
按照以下步骤在 Windows 上使用 Visual Studio Community 2022 生成和运行标题快速入门代码示例。
将scenarios/cpp/windows/captioning/示例文件从GitHub下载或复制到本地目录中。
在 Visual Studio Community 2022 中打开
captioning.sln解决方案文件。使用 NuGet 包管理器在项目中安装语音 SDK。
Install-Package Microsoft.CognitiveServices.Speech打开 项目>属性>常规。 将配置设置为
All configurations。 将 C++ 语言标准 设置为ISO C++17 Standard (/std:c++17).打开 Build>Configuration Manager。
- 在 64 位Windows安装中,将 Active 解决方案平台设置为
x64。 - 在 32 位 Windows 安装中,将 活动解决方案平台 设置为
x86。
- 在 64 位Windows安装中,将 Active 解决方案平台设置为
打开项目>属性>调试。 在 命令参数处输入首选命令行参数。 请参阅用法和参数以了解可用选项。 以下是示例:
--input caption.this.mp4 --format any --output caption.output.txt --srt --realTime --threshold 5 --delay 0 --profanity mask --phrases "Contoso;Jessie;Rehaan"生成并运行控制台应用程序。
查看结果
使用上述示例中的 realTime 选项时,输出中包含来自 Recognizing 事件的部分结果。 在此示例中,只有最终 Recognized 事件包含逗号。 逗号不是 Recognizing 和 Recognized 事件之间的唯一区别。 有关详细信息,请参阅 “获取部分结果”。
1
00:00:00,170 --> 00:00:00,380
The
2
00:00:00,380 --> 00:00:01,770
The rainbow
3
00:00:01,770 --> 00:00:02,560
The rainbow has seven
4
00:00:02,560 --> 00:00:03,820
The rainbow has seven colors
5
00:00:03,820 --> 00:00:05,050
The rainbow has seven colors red
6
00:00:05,050 --> 00:00:05,850
The rainbow has seven colors red
orange
7
00:00:05,850 --> 00:00:06,440
The rainbow has seven colors red
orange yellow
8
00:00:06,440 --> 00:00:06,730
The rainbow has seven colors red
orange yellow green
9
00:00:06,730 --> 00:00:07,160
orange, yellow, green, blue,
indigo and Violet.
使用 --offline 选项时,结果从最终 Recognized 事件开始是稳定的。 输出中不包括部分结果:
1
00:00:00,170 --> 00:00:05,540
The rainbow has seven colors, red,
orange, yellow, green, blue,
2
00:00:05,540 --> 00:00:07,160
indigo and Violet.
SRT (SubRip Text) 时间跨度输出格式为 hh:mm:ss,fff。 有关详细信息,请参阅字幕输出格式。
用法与参数
用法:captioning --input <input file>
连接选项包括:
-
--key:语音资源密钥。 替代 SPEECH_KEY 环境变量。 必须设置环境变量(推荐)或使用--key选项。 -
--region REGION:语音资源区域。 替代SPEECH_REGION环境变量。 必须设置环境变量(推荐)或使用--region选项。 示例:chinanorth2、chinaeast2
Important
请谨慎使用 API 密钥。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。 如果使用 API 密钥,请将其安全地存储在 Azure 密钥保管库 中。 若要详细了解如何在应用中安全地使用 API 密钥,请参阅 API 密钥与 Azure 密钥保管库。
有关 AI 服务安全性的详细信息,请参阅 对 Azure AI 服务请求进行身份验证。
输入选项包括:
-
--input FILE:输入文件中的音频。 默认输入为麦克风。 -
--format FORMAT:使用压缩的音频格式。 仅对--file有效。 有效值为alaw、any、flac、mp3、mulaw和ogg_opus。 默认值为any。 若要使用wav文件,请不要指定格式。 此选项在 JavaScript 字幕示例中不可用。 对于压缩的音频文件(如 MP4),请安装 GStreamer 并参阅如何使用压缩的输入音频。
语言选项包括:
-
--language LANG:使用相应支持的语言环境之一来指定语言。 将字幕分行时使用此选项。 默认值为en-US。
识别选项包括:
-
--offline:输出脱机结果。 重写--realTime。 默认输出模式处于脱机状态。 -
--realTime:输出实时结果。
实时输出包括 Recognizing 事件结果。 默认脱机输出仅为 Recognized 事件结果。 这些内容始终写入控制台,永远不会写入输出文件。
--quiet 选项可替代此选项。 有关详细信息,请参阅获取语音识别结果。
准确度选项包括:
-
--phrases PHRASE1;PHRASE2:可以指定要识别的短语列表,例如Contoso;Jessie;Rehaan。 有关详细信息,请参阅使用短语列表提高识别性能。
输出选项包括:
-
--help:显示此帮助并停止 -
--output FILE:将字幕输出到指定的file。 此标志是必需的。 -
--srt:以 SRT(SubRip 文本)格式输出字幕。 默认格式为 WebVTT(Web 视频文本轨道)。 有关 SRT 和 WebVTT 字幕文件格式的详细信息,请参阅字幕输出格式。 -
--maxLineLength LENGTH:将字幕每行的最大字符数设置为 LENGTH。 最小值为 20。 默认值为 37(中文为 30)。 -
--lines LINES:将字幕的行数设置为 LINES。 最小值为 1。 默认值为 2。 -
--delay MILLISECONDS:延迟每条字幕显示的毫秒数,以模拟实时体验。 仅当使用realTime标志时,此选项才适用。 最小值为 0.0。 默认值为 1000。 -
--remainTime MILLISECONDS:如果字幕未被其他字幕替换,应在屏幕上停留多少毫秒。 最小值为 0.0。 默认值为 1000。 -
--quiet:禁止显示控制台输出,但错误除外。 -
--profanity OPTION:有效值:raw、remove、mask。 有关详细信息,请参阅 不雅内容筛选器 概念。 -
--threshold NUMBER:设置稳定的部分结果阈值。 默认值为3。 仅当使用realTime标志时,此选项才适用。 有关详细信息,请参阅 “获取部分结果 ”概念。
清理资源
可以使用 Azure 门户或 Azure 命令行接口 (CLI) 删除创建的语音资源。
参考文档 | Package (Go) | GitHub 上的更多示例
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
Tip
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
Tip
试用 Azure 语音工具包 ,在 Visual Studio Code 上轻松生成和运行字幕示例。
Prerequisites
- 一份 Azure 订阅。 可以创建一个试用帐户
- 在 Azure 门户中创建用于语音的 AI Services 资源。
- 获取语音资源密钥和区域。 部署语音资源后,选择“转到资源”以查看和管理密钥。
设置环境
检查是否存在任何特定于平台的安装步骤。
还必须为压缩的输入音频安装 GStreamer 。
通过语音创建字幕
按照以下步骤构建并运行字幕快速入门代码示例。
将scenarios/go/captioning/示例文件从GitHub下载或复制到本地目录中。
在与
captioning.go相同的目录中打开命令提示符。运行以下命令以创建
go.mod文件并使其链接到 GitHub 上托管的语音 SDK 组件:go mod init captioning go get github.com/Microsoft/cognitive-services-speech-sdk-go生成 GO 模块。
go build使用首选命令行参数运行应用程序。 请参阅用法和参数以了解可用选项。 以下是示例:
go run captioning --key YourSpeechResoureKey --region YourServiceRegion --input caption.this.mp4 --format any --output caption.output.txt --srt --recognizing --threshold 5 --profanity mask --phrases "Contoso;Jessie;Rehaan"将
YourSpeechResoureKey替换为语音资源密钥,并将YourServiceRegion替换为语音资源区域,例如chinanorth2或chinaeast2。 确保--input和--output指定的路径有效。 否则,必须更改路径。Important
完成后,请记住将密钥从代码中删除,并且永远不要公开发布该密钥。 在生产中,请使用安全的方式存储和访问凭据,例如 Azure 密钥保管库。 有关详细信息,请参阅 Azure AI 服务安全性一文。
查看结果
包含完整字幕的输出文件被写入 caption.output.txt。 控制台中显示了中间结果:
00:00:00,180 --> 00:00:01,600
Welcome to
00:00:00,180 --> 00:00:01,820
Welcome to applied
00:00:00,180 --> 00:00:02,420
Welcome to applied mathematics
00:00:00,180 --> 00:00:02,930
Welcome to applied mathematics course
00:00:00,180 --> 00:00:03,100
Welcome to applied Mathematics course 2
00:00:00,180 --> 00:00:03,230
Welcome to applied Mathematics course 201.
SRT (SubRip Text) 时间跨度输出格式为 hh:mm:ss,fff。 有关详细信息,请参阅字幕输出格式。
用法与参数
用法:go run captioning.go helper.go --key <key> --region <region> --input <input file>
连接选项包括:
-
--key:语音资源密钥。 -
--region REGION:语音资源区域。 示例:chinanorth2、chinaeast2
输入选项包括:
-
--input FILE:输入文件中的音频。 默认输入为麦克风。 -
--format FORMAT:使用压缩的音频格式。 仅对--file有效。 有效值为alaw、any、flac、mp3、mulaw和ogg_opus。 默认值为any。 若要使用wav文件,请不要指定格式。 此选项在 JavaScript 字幕示例中不可用。 对于压缩的音频文件(如 MP4),请安装 GStreamer 并参阅如何使用压缩的输入音频。
语言选项包括:
-
--languages LANG1,LANG2:为指定语言启用语言识别。 例如:en-US,ja-JP。 此选项仅在 C++、C# 和 Python 字幕示例中可用。 有关详细信息,请参阅语言识别。
识别选项包括:
-
--recognizing:输出Recognizing事件结果。 默认输出仅为Recognized事件结果。 这些内容始终写入控制台,永远不会写入输出文件。--quiet选项可替代此选项。 有关详细信息,请参阅获取语音识别结果。
准确度选项包括:
-
--phrases PHRASE1;PHRASE2:可以指定要识别的短语列表,例如Contoso;Jessie;Rehaan。 有关详细信息,请参阅使用短语列表提高识别性能。
输出选项包括:
-
--help:显示此帮助并停止 -
--output FILE:将字幕输出到指定的file。 此标志是必需的。 -
--srt:以 SRT(SubRip 文本)格式输出字幕。 默认格式为 WebVTT(Web 视频文本轨道)。 有关 SRT 和 WebVTT 字幕文件格式的详细信息,请参阅字幕输出格式。 -
--quiet:禁止显示控制台输出,但错误除外。 -
--profanity OPTION:有效值:raw、remove、mask。 有关详细信息,请参阅 不雅内容筛选器 概念。 -
--threshold NUMBER:设置稳定的部分结果阈值。 默认值为3。 有关详细信息,请参阅 “获取部分结果 ”概念。
清理资源
可以使用 Azure 门户或 Azure 命令行接口 (CLI) 删除创建的语音资源。
参考文档 | 软件包(下载) | GitHub上的更多示例
Availability
适用于 Objective-C 的语音 SDK 确实支持获取字幕的语音识别结果,但我们尚未在此处提供相关指南。 请选择其他编程语言开始了解相关概念,或参阅本文开头链接的 Objective-C 引用和示例。
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
Tip
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
Tip
试用 Azure 语音工具包 ,在 Visual Studio Code 上轻松生成和运行字幕示例。
Prerequisites
- 一份 Azure 订阅。 可以创建一个试用帐户
- 在 Azure 门户中创建用于语音的 AI Services 资源。
- 获取语音资源密钥和区域。 部署语音资源后,选择“转到资源”以查看和管理密钥。
设置环境
请按照以下步骤操作,并参阅语音 CLI 快速入门,了解适用于你的平台的其他要求。
运行以下 .NET CLI 命令以安装语音 CLI:
dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI运行以下命令以配置你的语音资源密钥和区域。 将
SUBSCRIPTION-KEY替换为语音资源密钥,将REGION替换为语音资源区域。spx config @key --set SUBSCRIPTION-KEY spx config @region --set REGION
还必须为压缩的输入音频安装 GStreamer 。
通过语音创建字幕
使用语音 CLI,可以从包含音频的任何类型的媒体中输出 SRT(SubRip 文本)和 WebVTT(Web 视频文本轨道)字幕。
若要识别文件中的音频并输出 WebVtt (vtt) 和 SRT (srt) 字幕,请执行以下步骤。
请确保路径中包含一个名为
caption.this.mp4的输入文件。运行以下命令,以从视频文件输出字幕:
spx recognize --file caption.this.mp4 --format any --output vtt file - --output srt file - --output each file - @output.each.detailed --property SpeechServiceResponse_StablePartialResultThreshold=5 --profanity masked --phrases "Constoso;Jessie;Rehaan"SRT 和 WebVTT 字幕被输出到控制台,如下所示:
1 00:00:00,180 --> 00:00:03,230 Welcome to applied Mathematics course 201. WEBVTT 00:00:00.180 --> 00:00:03.230 Welcome to applied Mathematics course 201. { "ResultId": "561a0ea00cc14bb09bd294357df3270f", "Duration": "00:00:03.0500000" }
用法与参数
下面是上一命令中可选参数的详细信息:
-
--file caption.this.mp4 --format any:输入文件中的音频。 默认输入为麦克风。 对于压缩的音频文件(如 MP4),请安装 GStreamer 并参阅如何使用压缩的输入音频。 -
--output vtt file -和--output srt file -:将 WebVTT 和 SRT 字幕输出到标准输出。 有关 SRT 和 WebVTT 字幕文件格式的详细信息,请参阅字幕输出格式。 有关--output参数的详细信息,请参阅语音 CLI 输出选项。 -
@output.each.detailed:输出包含文本、偏移量和持续时间的事件结果。 有关详细信息,请参阅获取语音识别结果。 -
--property SpeechServiceResponse_StablePartialResultThreshold=5:可以请求语音服务返回更少且更准确的Recognizing事件。 在此示例中,语音服务必须在向你返回部分结果之前至少确认识别一个单词五次。 有关详细信息,请参阅 “获取部分结果 ”概念。 -
--profanity masked:可以指定是屏蔽、删除还是显示识别结果中的亵渎内容。 有关详细信息,请参阅 不雅内容筛选器 概念。 -
--phrases "Constoso;Jessie;Rehaan":可以指定要识别的短语列表,例如 Contoso、Jessie 和 Rehaan。 有关详细信息,请参阅使用短语列表提高识别性能。
清理资源
可以使用 Azure 门户或 Azure 命令行接口 (CLI) 删除创建的语音资源。
参考文档 | 软件包(下载) | GitHub上的更多示例
Availability
适用于 Swift 的语音 SDK 确实支持获取字幕的语音识别结果,但我们尚未在此处提供相关指南。 请选择另一种编程语言以开始了解概念,或查看本文开头链接的 Swift 参考和示例。