快速入门:使用语音转文本创建字幕
参考文档 | 包 (NuGet) | GitHub 上的其他示例
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
提示
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
先决条件
设置环境
语音 SDK 以 NuGet 包的形式提供并实现了 .NET Standard 2.0。 本指南的后面部分会安装语音 SDK,但先请查看 SDK 安装指南以了解更多要求。
你还必须安装用于已压缩的输入音频的 GStreamer。
设置环境变量。
必须对应用程序进行身份验证才能访问 Azure AI 服务资源。 对于生产,请使用安全的方式存储和访问凭据。 例如,获取语音资源的密钥后,请将其写入运行应用程序的本地计算机上的新环境变量。
提示
请不要直接在代码中包含密钥,并且绝不公开发布密钥。 有关 Azure Key Vault 等更多身份验证选项,请参阅 Azure AI 服务安全性。
若要为语音资源密钥设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 要设置
SPEECH_KEY
环境变量,请将“your-key”替换为你的资源的某一个密钥。 - 要设置
SPEECH_REGION
环境变量,请将 “your-region”替换为你的资源的某一个地区。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果你只需要访问当前控制台中的环境变量,可使用 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"
重要
确保
--input
和--output
指定的路径有效。 否则,必须更改路径。请确保按照上文所述设置
SPEECH_KEY
和SPEECH_REGION
环境变量。 否则,请使用--key
和--region
参数。
检查结果
使用上述示例中的 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 文本)时间跨度输出格式为 hh:mm:ss,fff
。 有关详细信息,请参阅字幕输出格式。
用法和参数
用法:captioning --input <input file>
连接选项包括:
--key
:语音资源密钥。 替代 SPEECH_KEY 环境变量。 必须设置环境变量(推荐)或使用--key
选项。--region REGION
:语音资源区域。 替代 SPEECH_REGION 环境变量。 必须设置环境变量(推荐)或使用--region
选项。 示例:chinanorth2
、chinaeast2
输入选项包括:
--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) 删除创建的语音资源。
参考文档 | 包 (NuGet) | GitHub 上的其他示例
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
提示
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
先决条件
设置环境
语音 SDK 以 NuGet 包的形式提供并实现了 .NET Standard 2.0。 本指南的后面部分会安装语音 SDK,但先请查看 SDK 安装指南以了解更多要求
你还必须安装用于已压缩的输入音频的 GStreamer。
设置环境变量。
必须对应用程序进行身份验证才能访问 Azure AI 服务资源。 对于生产,请使用安全的方式存储和访问凭据。 例如,获取语音资源的密钥后,请将其写入运行应用程序的本地计算机上的新环境变量。
提示
请不要直接在代码中包含密钥,并且绝不公开发布密钥。 有关 Azure Key Vault 等更多身份验证选项,请参阅 Azure AI 服务安全性。
若要为语音资源密钥设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 要设置
SPEECH_KEY
环境变量,请将“your-key”替换为你的资源的某一个密钥。 - 要设置
SPEECH_REGION
环境变量,请将 “your-region”替换为你的资源的某一个地区。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果你只需要访问当前控制台中的环境变量,可使用 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)
。打开“构建”>“配置管理器”。
- 在 64 位 Windows 安装中,将“活动解决方案平台”设置为
x64
。 - 在 32 位 Windows 安装中,将“活动解决方案平台”设置为
x86
。
- 在 64 位 Windows 安装中,将“活动解决方案平台”设置为
打开“项目”>“属性”>“调试”。 在“命令参数”上输入首选命令行参数。 请参阅用法和参数以了解可用选项。 下面是一个示例:
--input caption.this.mp4 --format any --output caption.output.txt --srt --realTime --threshold 5 --delay 0 --profanity mask --phrases "Contoso;Jessie;Rehaan"
重要
确保
--input
和--output
指定的路径有效。 否则,必须更改路径。请确保按照上文所述设置
SPEECH_KEY
和SPEECH_REGION
环境变量。 否则,请使用--key
和--region
参数。生成并运行控制台应用程序。
检查结果
使用上述示例中的 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 文本)时间跨度输出格式为 hh:mm:ss,fff
。 有关详细信息,请参阅字幕输出格式。
用法和参数
用法:captioning --input <input file>
连接选项包括:
--key
:语音资源密钥。 替代 SPEECH_KEY 环境变量。 必须设置环境变量(推荐)或使用--key
选项。--region REGION
:语音资源区域。 替代 SPEECH_REGION 环境变量。 必须设置环境变量(推荐)或使用--region
选项。 示例:chinanorth2
、chinaeast2
输入选项包括:
--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) 删除创建的语音资源。
参考文档 | 包 (Go) | GitHub 上的其他示例
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
提示
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
先决条件
设置环境
检查是否存在任何特定于平台的安装步骤。
你还必须安装用于已压缩的输入音频的 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 YourSubscriptionKey --region YourServiceRegion --input caption.this.mp4 --format any --output caption.output.txt --srt --recognizing --threshold 5 --profanity mask --phrases "Contoso;Jessie;Rehaan"
将
YourSubscriptionKey
替换为语音资源密钥,并将YourServiceRegion
替换为语音资源区域,例如chinanorth2
或chinaeast2
。 确保--input
和--output
指定的路径有效。 否则,必须更改路径。重要
完成后,请记住将密钥从代码中删除,并且永远不要公开发布该密钥。 对于生产来说,请使用安全的方式存储和访问凭据,例如 Azure Key Vault。 有关详细信息,请参阅 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 文本)时间跨度输出格式为 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) 删除创建的语音资源。
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
提示
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
先决条件
设置环境
需要先安装语音 SDK,然后才能执行其他操作。 本快速入门中的示例适用于 Microsoft 版 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.37.0</version> </dependency> </dependencies> </project>
- 安装语音 SDK 和依赖项。
mvn clean dependency:copy-dependencies
- 你还必须安装用于已压缩的输入音频的 GStreamer。
设置环境变量。
必须对应用程序进行身份验证才能访问 Azure AI 服务资源。 对于生产,请使用安全的方式存储和访问凭据。 例如,获取语音资源的密钥后,请将其写入运行应用程序的本地计算机上的新环境变量。
提示
请不要直接在代码中包含密钥,并且绝不公开发布密钥。 有关 Azure Key Vault 等更多身份验证选项,请参阅 Azure AI 服务安全性。
若要为语音资源密钥设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 要设置
SPEECH_KEY
环境变量,请将“your-key”替换为你的资源的某一个密钥。 - 要设置
SPEECH_REGION
环境变量,请将 “your-region”替换为你的资源的某一个地区。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果你只需要访问当前控制台中的环境变量,可使用 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"
重要
确保
--input
和--output
指定的路径有效。 否则,必须更改路径。请确保按照上文所述设置
SPEECH_KEY
和SPEECH_REGION
环境变量。 否则,请使用--key
和--region
参数。
检查结果
使用上述示例中的 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 文本)时间跨度输出格式为 hh:mm:ss,fff
。 有关详细信息,请参阅字幕输出格式。
用法和参数
用法:java -cp ".;target\dependency\*" Captioning --input <input file>
连接选项包括:
--key
:语音资源密钥。 替代 SPEECH_KEY 环境变量。 必须设置环境变量(推荐)或使用--key
选项。--region REGION
:语音资源区域。 替代 SPEECH_REGION 环境变量。 必须设置环境变量(推荐)或使用--region
选项。 示例:chinanorth2
、chinaeast2
输入选项包括:
--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 上的其他示例 | 库源代码
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
提示
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
先决条件
设置环境
需要先安装适用于 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 YourSubscriptionKey --region YourServiceRegion --input caption.this.wav --output caption.output.txt --srt --recognizing --threshold 5 --profanity mask --phrases "Contoso;Jessie;Rehaan"
将
YourSubscriptionKey
替换为语音资源密钥,并将YourServiceRegion
替换为语音资源区域,例如chinanorth2
或chinaeast2
。 确保--input
和--output
指定的路径有效。 否则,必须更改路径。注意
适用于 JavaScript 的语音 SDK 不支持压缩的输入音频。 必须使用 WAV 文件,如示例中所示。
重要
完成后,请记住将密钥从代码中删除,并且永远不要公开发布该密钥。 对于生产来说,请使用安全的方式存储和访问凭据,例如 Azure Key Vault。 有关详细信息,请参阅 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 文本)时间跨度输出格式为 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) 删除创建的语音资源。
参考文档 | 包(下载) | GitHub 上的其他示例
适用于 Objective-C 的语音 SDK 确实支持获取字幕的语音识别结果,但我们尚未在此处提供相关指南。 请选择其他编程语言开始了解相关概念,或参阅本文开头链接的 Objective-C 引用和示例。
参考文档 | 包(下载) | GitHub 上的其他示例
适用于 Swift 的语音 SDK 确实支持获取字幕的语音识别结果,但我们尚未在此处提供相关指南。 请选择其他编程语言开始了解相关概念,或参阅本文开头链接的 Swift 引用和示例。
参考文档 | 包 (PyPi) | GitHub 上的其他示例
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
提示
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
先决条件
设置环境
适用于 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 服务资源。 对于生产,请使用安全的方式存储和访问凭据。 例如,获取语音资源的密钥后,请将其写入运行应用程序的本地计算机上的新环境变量。
提示
请不要直接在代码中包含密钥,并且绝不公开发布密钥。 有关 Azure Key Vault 等更多身份验证选项,请参阅 Azure AI 服务安全性。
若要为语音资源密钥设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 要设置
SPEECH_KEY
环境变量,请将“your-key”替换为你的资源的某一个密钥。 - 要设置
SPEECH_REGION
环境变量,请将 “your-region”替换为你的资源的某一个地区。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果你只需要访问当前控制台中的环境变量,可使用 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"
重要
确保
--input
和--output
指定的路径有效。 否则,必须更改路径。请确保按照上文所述设置
SPEECH_KEY
和SPEECH_REGION
环境变量。 否则,请使用--key
和--region
参数。
检查结果
使用上述示例中的 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 文本)时间跨度输出格式为 hh:mm:ss,fff
。 有关详细信息,请参阅字幕输出格式。
用法和参数
用法:python captioning.py --input <input file>
连接选项包括:
--key
:语音资源密钥。 替代 SPEECH_KEY 环境变量。 必须设置环境变量(推荐)或使用--key
选项。--region REGION
:语音资源区域。 替代 SPEECH_REGION 环境变量。 必须设置环境变量(推荐)或使用--region
选项。 示例:chinanorth2
、chinaeast2
输入选项包括:
--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) 删除创建的语音资源。
在本快速入门中,你将运行控制台应用,以使用语音转文本创建字幕。
提示
尝试使用 Speech Studio,并选择示例视频剪辑以查看实时处理或脱机处理的字幕结果。
先决条件
设置环境
请按照以下步骤操作,并参阅语音 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) 删除创建的语音资源。