获取语音识别结果
参考文档 | 包 (NuGet) | GitHub 上的其他示例
本操作指南介绍如何使用语音识别结果。
语音同步
你可能想要将听录与音频轨道同步,无论是实时完成还是预录制的。
语音服务返回已识别语音的偏移量和持续时间。
- 偏移量:已识别的音频流的偏移量,表示为持续时间。 偏移量以时钟周期为单位,从
0
(零)时钟周期开始,与 SDK 处理的第一个音频字节相关联。 例如,偏移从开始识别时开始,因为那是 SDK 开始处理音频流的时间。 一个时钟周期表示一百纳秒,即一千万分之一秒。 - 持续时间:正在识别的语句的持续时间。 时钟周期中的持续时间不包括尾随或前导静音。
单个语句的结束是通过在结束时倾听静音来确定的。 在语句完成之前,不会获得最终识别结果。 识别事件将提供在处理音频流时可能会更改的中间结果。 语句处理完成后,识别的事件将提供最终的转录文本。
识别偏移量和持续时间
使用 Recognizing
事件,可以获取正在识别的语音的偏移量和持续时间。 在识别过程中,每个单词的偏移量和持续时间不可用。 每个 Recognizing
事件都附带对目前已识别语音的文本估计内容。
此代码片段演示如何从 Recognizing
事件中获取偏移量和持续时间。
speechRecognizer.Recognizing += (object sender, SpeechRecognitionEventArgs e) =>
{
if (e.Result.Reason == ResultReason.RecognizingSpeech)
{
Console.WriteLine(String.Format ("RECOGNIZING: {0}", e.Result.Text));
Console.WriteLine(String.Format ("Offset in Ticks: {0}", e.Result.OffsetInTicks));
Console.WriteLine(String.Format ("Duration in Ticks: {0}", e.Result.Duration.Ticks));
}
};
识别的偏移量和持续时间
识别语句后,即可获取已识别语音的偏移量和持续时间。 使用 Recognized
事件,还可以获取每个单词的偏移量和持续时间。 若要请求每个单词的偏移量和持续时间,首先必须设置相应的 SpeechConfig
属性,如下所示:
speechConfig.RequestWordLevelTimestamps();
此代码片段演示如何从 Recognized
事件中获取偏移量和持续时间。
speechRecognizer.Recognized += (object sender, SpeechRecognitionEventArgs e) =>
{
if (ResultReason.RecognizedSpeech == e.Result.Reason && e.Result.Text.Length > 0)
{
Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}");
Console.WriteLine(String.Format ("Offset in Ticks: {0}", e.Result.OffsetInTicks));
Console.WriteLine(String.Format ("Duration in Ticks: {0}", e.Result.Duration.Ticks));
var detailedResults = e.Result.Best();
if(detailedResults != null && detailedResults.Any())
{
// The first item in detailedResults corresponds to the recognized text.
// This is not necessarily the item with the highest confidence number.
var bestResults = detailedResults?.ToList()[0];
Console.WriteLine(String.Format("\tConfidence: {0}\n\tText: {1}\n\tLexicalForm: {2}\n\tNormalizedForm: {3}\n\tMaskedNormalizedForm: {4}",
bestResults.Confidence, bestResults.Text, bestResults.LexicalForm, bestResults.NormalizedForm, bestResults.MaskedNormalizedForm));
// You must set speechConfig.RequestWordLevelTimestamps() to get word-level timestamps.
Console.WriteLine($"\tWord-level timing:");
Console.WriteLine($"\t\tWord | Offset | Duration");
Console.WriteLine($"\t\t----- | ----- | ----- ");
foreach (var word in bestResults.Words)
{
Console.WriteLine($"\t\t{word.Word} | {word.Offset} | {word.Duration}");
}
}
}
};
示例偏移量和持续时间
下表显示了说话人说“欢迎来到应用数学课程 201”时的潜在偏移量和持续时间(以时钟周期为单位)。在本例中,偏移量在 Recognizing
和 Recognized
事件中都不会改变。 但是,不要依赖偏移量在 Recognizing
和 Recognized
事件之间保持不变,因为最终结果可能不同。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | 欢迎 | 17000000 | 5000000 |
正在识别 | 欢迎来到 | 17000000 | 6400000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 13600000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 17200000 |
正在识别 | 欢迎来到应用数学课程 | 17000000 | 23700000 |
正在识别 | 欢迎来到应用数学课程 2 | 17000000 | 26700000 |
正在识别 | 欢迎来到应用数学课程 201 | 17000000 | 33400000 |
已识别 | 欢迎来到应用数学课程 201。 | 17000000 | 34500000 |
第一个语句的总持续时间为 3.45 秒。 该语句在语音识别开始偏移的 1.7 到 5.15 秒间被识别 (00:00:01.700 --> 00:00:05.150)。
如果说话人继续说“让我们开始”,则从识别的音频流的开头到新的语句的开头计算新的偏移量。 下表显示了在前一个语句结束两秒后讲出的语句的潜在偏移量和持续时间。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | OK | 71500000 | 3100000 |
正在识别 | 现在 | 71500000 | 10300000 |
正在识别 | 现在,让我们 | 71500000 | 14700000 |
正在识别 | 现在,让我们开始吧 | 71500000 | 18500000 |
已识别 | 现在,让我们开始吧。 | 71500000 | 20600000 |
第二个语句的总持续时间为 2.06 秒。 该语句在语音识别开始偏移的 7.15 到 9.21 秒间被识别 (00:00:07.150 --> 00:00:09.210)。
参考文档 | 包 (NuGet) | GitHub 上的其他示例
本操作指南介绍如何使用语音识别结果。
语音同步
你可能想要将听录与音频轨道同步,无论是实时完成还是预录制的。
语音服务返回已识别语音的偏移量和持续时间。
- 偏移量:已识别的音频流的偏移量,表示为持续时间。 偏移量以时钟周期为单位,从
0
(零)时钟周期开始,与 SDK 处理的第一个音频字节相关联。 例如,偏移从开始识别时开始,因为那是 SDK 开始处理音频流的时间。 一个时钟周期表示一百纳秒,即一千万分之一秒。 - 持续时间:正在识别的语句的持续时间。 时钟周期中的持续时间不包括尾随或前导静音。
单个语句的结束是通过在结束时倾听静音来确定的。 在语句完成之前,不会获得最终识别结果。 识别事件将提供在处理音频流时可能会更改的中间结果。 语句处理完成后,识别的事件将提供最终的转录文本。
识别偏移量和持续时间
使用 Recognizing
事件,可以获取正在识别的语音的偏移量和持续时间。 在识别过程中,每个单词的偏移量和持续时间不可用。 每个 Recognizing
事件都附带对目前已识别语音的文本估计内容。
此代码片段演示如何从 Recognizing
事件中获取偏移量和持续时间。
speechRecognizer->Recognizing.Connect([](const SpeechRecognitionEventArgs& e)
{
cout << "Recognizing:" << e.Result->Text << std::endl;
cout << "Offset in Ticks:" << e.Result->Offset() << std::endl;
cout << "Duration in Ticks:" << e.Result->Duration() << std::endl;
});
识别的偏移量和持续时间
识别语句后,即可获取已识别语音的偏移量和持续时间。 使用 Recognized
事件,还可以获取每个单词的偏移量和持续时间。 若要请求每个单词的偏移量和持续时间,首先必须设置相应的 SpeechConfig
属性,如下所示:
speechConfig->RequestWordLevelTimestamps();
示例偏移量和持续时间
下表显示了说话人说“欢迎来到应用数学课程 201”时的潜在偏移量和持续时间(以时钟周期为单位)。在本例中,偏移量在 Recognizing
和 Recognized
事件中都不会改变。 但是,不要依赖偏移量在 Recognizing
和 Recognized
事件之间保持不变,因为最终结果可能不同。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | 欢迎 | 17000000 | 5000000 |
正在识别 | 欢迎来到 | 17000000 | 6400000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 13600000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 17200000 |
正在识别 | 欢迎来到应用数学课程 | 17000000 | 23700000 |
正在识别 | 欢迎来到应用数学课程 2 | 17000000 | 26700000 |
正在识别 | 欢迎来到应用数学课程 201 | 17000000 | 33400000 |
已识别 | 欢迎来到应用数学课程 201。 | 17000000 | 34500000 |
第一个语句的总持续时间为 3.45 秒。 该语句在语音识别开始偏移的 1.7 到 5.15 秒间被识别 (00:00:01.700 --> 00:00:05.150)。
如果说话人继续说“让我们开始”,则从识别的音频流的开头到新的语句的开头计算新的偏移量。 下表显示了在前一个语句结束两秒后讲出的语句的潜在偏移量和持续时间。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | OK | 71500000 | 3100000 |
正在识别 | 现在 | 71500000 | 10300000 |
正在识别 | 现在,让我们 | 71500000 | 14700000 |
正在识别 | 现在,让我们开始吧 | 71500000 | 18500000 |
已识别 | 现在,让我们开始吧。 | 71500000 | 20600000 |
第二个语句的总持续时间为 2.06 秒。 该语句在语音识别开始偏移的 7.15 到 9.21 秒间被识别 (00:00:07.150 --> 00:00:09.210)。
参考文档 | 包 (Go) | GitHub 上的其他示例
本操作指南介绍如何使用语音识别结果。
语音同步
你可能想要将听录与音频轨道同步,无论是实时完成还是预录制的。
语音服务返回已识别语音的偏移量和持续时间。
- 偏移量:已识别的音频流的偏移量,表示为持续时间。 偏移量以时钟周期为单位,从
0
(零)时钟周期开始,与 SDK 处理的第一个音频字节相关联。 例如,偏移从开始识别时开始,因为那是 SDK 开始处理音频流的时间。 一个时钟周期表示一百纳秒,即一千万分之一秒。 - 持续时间:正在识别的语句的持续时间。 时钟周期中的持续时间不包括尾随或前导静音。
单个语句的结束是通过在结束时倾听静音来确定的。 在语句完成之前,不会获得最终识别结果。 识别事件将提供在处理音频流时可能会更改的中间结果。 语句处理完成后,识别的事件将提供最终的转录文本。
识别偏移量和持续时间
使用 Recognizing
事件,可以获取正在识别的语音的偏移量和持续时间。 在识别过程中,每个单词的偏移量和持续时间不可用。 每个 Recognizing
事件都附带对目前已识别语音的文本估计内容。
此代码片段演示如何从 Recognizing
事件中获取偏移量和持续时间。
func recognizingHandler(event speech.SpeechRecognitionEventArgs) {
defer event.Close()
fmt.Println("Recognizing:", event.Result.Text)
fmt.Println("Offset in Ticks:", event.Result.Offset)
fmt.Println("Duration in Ticks:", event.Result.Duration)
}
识别的偏移量和持续时间
识别语句后,即可获取已识别语音的偏移量和持续时间。 使用 Recognized
事件,还可以获取每个单词的偏移量和持续时间。 若要请求每个单词的偏移量和持续时间,首先必须设置相应的 SpeechConfig
属性,如下所示:
speechConfig.RequestWordLevelTimestamps();
示例偏移量和持续时间
下表显示了说话人说“欢迎来到应用数学课程 201”时的潜在偏移量和持续时间(以时钟周期为单位)。在本例中,偏移量在 Recognizing
和 Recognized
事件中都不会改变。 但是,不要依赖偏移量在 Recognizing
和 Recognized
事件之间保持不变,因为最终结果可能不同。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | 欢迎 | 17000000 | 5000000 |
正在识别 | 欢迎来到 | 17000000 | 6400000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 13600000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 17200000 |
正在识别 | 欢迎来到应用数学课程 | 17000000 | 23700000 |
正在识别 | 欢迎来到应用数学课程 2 | 17000000 | 26700000 |
正在识别 | 欢迎来到应用数学课程 201 | 17000000 | 33400000 |
已识别 | 欢迎来到应用数学课程 201。 | 17000000 | 34500000 |
第一个语句的总持续时间为 3.45 秒。 该语句在语音识别开始偏移的 1.7 到 5.15 秒间被识别 (00:00:01.700 --> 00:00:05.150)。
如果说话人继续说“让我们开始”,则从识别的音频流的开头到新的语句的开头计算新的偏移量。 下表显示了在前一个语句结束两秒后讲出的语句的潜在偏移量和持续时间。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | OK | 71500000 | 3100000 |
正在识别 | 现在 | 71500000 | 10300000 |
正在识别 | 现在,让我们 | 71500000 | 14700000 |
正在识别 | 现在,让我们开始吧 | 71500000 | 18500000 |
已识别 | 现在,让我们开始吧。 | 71500000 | 20600000 |
第二个语句的总持续时间为 2.06 秒。 该语句在语音识别开始偏移的 7.15 到 9.21 秒间被识别 (00:00:07.150 --> 00:00:09.210)。
本操作指南介绍如何使用语音识别结果。
语音同步
你可能想要将听录与音频轨道同步,无论是实时完成还是预录制的。
语音服务返回已识别语音的偏移量和持续时间。
- 偏移量:已识别的音频流的偏移量,表示为持续时间。 偏移量以时钟周期为单位,从
0
(零)时钟周期开始,与 SDK 处理的第一个音频字节相关联。 例如,偏移从开始识别时开始,因为那是 SDK 开始处理音频流的时间。 一个时钟周期表示一百纳秒,即一千万分之一秒。 - 持续时间:正在识别的语句的持续时间。 时钟周期中的持续时间不包括尾随或前导静音。
单个语句的结束是通过在结束时倾听静音来确定的。 在语句完成之前,不会获得最终识别结果。 识别事件将提供在处理音频流时可能会更改的中间结果。 语句处理完成后,识别的事件将提供最终的转录文本。
识别偏移量和持续时间
使用 Recognizing
事件,可以获取正在识别的语音的偏移量和持续时间。 在识别过程中,每个单词的偏移量和持续时间不可用。 每个 Recognizing
事件都附带对目前已识别语音的文本估计内容。
此代码片段演示如何从 Recognizing
事件中获取偏移量和持续时间。
speechRecognizer.recognizing.addEventListener((s, e) -> {
System.out.println("RECOGNIZING: " + e.getResult().getText());
System.out.println("Offset in Ticks: " + e.getResult().getOffset());
System.out.println("Duration in Ticks: " + e.getResult().getDuration());
});
识别的偏移量和持续时间
识别语句后,即可获取已识别语音的偏移量和持续时间。 使用 Recognized
事件,还可以获取每个单词的偏移量和持续时间。 若要请求每个单词的偏移量和持续时间,首先必须设置相应的 SpeechConfig
属性,如下所示:
speechConfig.requestWordLevelTimestamps();
示例偏移量和持续时间
下表显示了说话人说“欢迎来到应用数学课程 201”时的潜在偏移量和持续时间(以时钟周期为单位)。在本例中,偏移量在 Recognizing
和 Recognized
事件中都不会改变。 但是,不要依赖偏移量在 Recognizing
和 Recognized
事件之间保持不变,因为最终结果可能不同。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | 欢迎 | 17000000 | 5000000 |
正在识别 | 欢迎来到 | 17000000 | 6400000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 13600000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 17200000 |
正在识别 | 欢迎来到应用数学课程 | 17000000 | 23700000 |
正在识别 | 欢迎来到应用数学课程 2 | 17000000 | 26700000 |
正在识别 | 欢迎来到应用数学课程 201 | 17000000 | 33400000 |
已识别 | 欢迎来到应用数学课程 201。 | 17000000 | 34500000 |
第一个语句的总持续时间为 3.45 秒。 该语句在语音识别开始偏移的 1.7 到 5.15 秒间被识别 (00:00:01.700 --> 00:00:05.150)。
如果说话人继续说“让我们开始”,则从识别的音频流的开头到新的语句的开头计算新的偏移量。 下表显示了在前一个语句结束两秒后讲出的语句的潜在偏移量和持续时间。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | OK | 71500000 | 3100000 |
正在识别 | 现在 | 71500000 | 10300000 |
正在识别 | 现在,让我们 | 71500000 | 14700000 |
正在识别 | 现在,让我们开始吧 | 71500000 | 18500000 |
已识别 | 现在,让我们开始吧。 | 71500000 | 20600000 |
第二个语句的总持续时间为 2.06 秒。 该语句在语音识别开始偏移的 7.15 到 9.21 秒间被识别 (00:00:07.150 --> 00:00:09.210)。
参考文档 | 包 (npm) | GitHub 上的其他示例 | 库源代码
本操作指南介绍如何使用语音识别结果。
语音同步
你可能想要将听录与音频轨道同步,无论是实时完成还是预录制的。
语音服务返回已识别语音的偏移量和持续时间。
- 偏移量:已识别的音频流的偏移量,表示为持续时间。 偏移量以时钟周期为单位,从
0
(零)时钟周期开始,与 SDK 处理的第一个音频字节相关联。 例如,偏移从开始识别时开始,因为那是 SDK 开始处理音频流的时间。 一个时钟周期表示一百纳秒,即一千万分之一秒。 - 持续时间:正在识别的语句的持续时间。 时钟周期中的持续时间不包括尾随或前导静音。
单个语句的结束是通过在结束时倾听静音来确定的。 在语句完成之前,不会获得最终识别结果。 识别事件将提供在处理音频流时可能会更改的中间结果。 语句处理完成后,识别的事件将提供最终的转录文本。
识别偏移量和持续时间
使用 Recognizing
事件,可以获取正在识别的语音的偏移量和持续时间。 在识别过程中,每个单词的偏移量和持续时间不可用。 每个 Recognizing
事件都附带对目前已识别语音的文本估计内容。
此代码片段演示如何从 Recognizing
事件中获取偏移量和持续时间。
speechRecognizer.recognizing = function (s, e) {
console.log("RECOGNIZING: " + e.result.text);
console.log("Offset in Ticks: " + e.result.offset);
console.log("Duration in Ticks: " + e.result.duration);
};
识别的偏移量和持续时间
识别语句后,即可获取已识别语音的偏移量和持续时间。 使用 Recognized
事件,还可以获取每个单词的偏移量和持续时间。 若要请求每个单词的偏移量和持续时间,首先必须设置相应的 SpeechConfig
属性,如下所示:
speechConfig.requestWordLevelTimestamps();
示例偏移量和持续时间
下表显示了说话人说“欢迎来到应用数学课程 201”时的潜在偏移量和持续时间(以时钟周期为单位)。在本例中,偏移量在 Recognizing
和 Recognized
事件中都不会改变。 但是,不要依赖偏移量在 Recognizing
和 Recognized
事件之间保持不变,因为最终结果可能不同。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | 欢迎 | 17000000 | 5000000 |
正在识别 | 欢迎来到 | 17000000 | 6400000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 13600000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 17200000 |
正在识别 | 欢迎来到应用数学课程 | 17000000 | 23700000 |
正在识别 | 欢迎来到应用数学课程 2 | 17000000 | 26700000 |
正在识别 | 欢迎来到应用数学课程 201 | 17000000 | 33400000 |
已识别 | 欢迎来到应用数学课程 201。 | 17000000 | 34500000 |
第一个语句的总持续时间为 3.45 秒。 该语句在语音识别开始偏移的 1.7 到 5.15 秒间被识别 (00:00:01.700 --> 00:00:05.150)。
如果说话人继续说“让我们开始”,则从识别的音频流的开头到新的语句的开头计算新的偏移量。 下表显示了在前一个语句结束两秒后讲出的语句的潜在偏移量和持续时间。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | OK | 71500000 | 3100000 |
正在识别 | 现在 | 71500000 | 10300000 |
正在识别 | 现在,让我们 | 71500000 | 14700000 |
正在识别 | 现在,让我们开始吧 | 71500000 | 18500000 |
已识别 | 现在,让我们开始吧。 | 71500000 | 20600000 |
第二个语句的总持续时间为 2.06 秒。 该语句在语音识别开始偏移的 7.15 到 9.21 秒间被识别 (00:00:07.150 --> 00:00:09.210)。
参考文档 | 包(下载) | GitHub 上的其他示例
本操作指南介绍如何使用语音识别结果。
语音同步
你可能想要将听录与音频轨道同步,无论是实时完成还是预录制的。
语音服务返回已识别语音的偏移量和持续时间。
- 偏移量:已识别的音频流的偏移量,表示为持续时间。 偏移量以时钟周期为单位,从
0
(零)时钟周期开始,与 SDK 处理的第一个音频字节相关联。 例如,偏移从开始识别时开始,因为那是 SDK 开始处理音频流的时间。 一个时钟周期表示一百纳秒,即一千万分之一秒。 - 持续时间:正在识别的语句的持续时间。 时钟周期中的持续时间不包括尾随或前导静音。
单个语句的结束是通过在结束时倾听静音来确定的。 在语句完成之前,不会获得最终识别结果。 识别事件将提供在处理音频流时可能会更改的中间结果。 语句处理完成后,识别的事件将提供最终的转录文本。
识别偏移量和持续时间
使用 Recognizing
事件,可以获取正在识别的语音的偏移量和持续时间。 在识别过程中,每个单词的偏移量和持续时间不可用。 每个 Recognizing
事件都附带对目前已识别语音的文本估计内容。
识别的偏移量和持续时间
识别语句后,即可获取已识别语音的偏移量和持续时间。 使用 Recognized
事件,还可以获取每个单词的偏移量和持续时间。 若要请求每个单词的偏移量和持续时间,首先必须设置相应的 SpeechConfig
属性,如下所示:
[speechConfig requestWordLevelTimestamps];
示例偏移量和持续时间
下表显示了说话人说“欢迎来到应用数学课程 201”时的潜在偏移量和持续时间(以时钟周期为单位)。在本例中,偏移量在 Recognizing
和 Recognized
事件中都不会改变。 但是,不要依赖偏移量在 Recognizing
和 Recognized
事件之间保持不变,因为最终结果可能不同。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | 欢迎 | 17000000 | 5000000 |
正在识别 | 欢迎来到 | 17000000 | 6400000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 13600000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 17200000 |
正在识别 | 欢迎来到应用数学课程 | 17000000 | 23700000 |
正在识别 | 欢迎来到应用数学课程 2 | 17000000 | 26700000 |
正在识别 | 欢迎来到应用数学课程 201 | 17000000 | 33400000 |
已识别 | 欢迎来到应用数学课程 201。 | 17000000 | 34500000 |
第一个语句的总持续时间为 3.45 秒。 该语句在语音识别开始偏移的 1.7 到 5.15 秒间被识别 (00:00:01.700 --> 00:00:05.150)。
如果说话人继续说“让我们开始”,则从识别的音频流的开头到新的语句的开头计算新的偏移量。 下表显示了在前一个语句结束两秒后讲出的语句的潜在偏移量和持续时间。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | OK | 71500000 | 3100000 |
正在识别 | 现在 | 71500000 | 10300000 |
正在识别 | 现在,让我们 | 71500000 | 14700000 |
正在识别 | 现在,让我们开始吧 | 71500000 | 18500000 |
已识别 | 现在,让我们开始吧。 | 71500000 | 20600000 |
第二个语句的总持续时间为 2.06 秒。 该语句在语音识别开始偏移的 7.15 到 9.21 秒间被识别 (00:00:07.150 --> 00:00:09.210)。
参考文档 | 包(下载) | GitHub 上的其他示例
本操作指南介绍如何使用语音识别结果。
语音同步
你可能想要将听录与音频轨道同步,无论是实时完成还是预录制的。
语音服务返回已识别语音的偏移量和持续时间。
- 偏移量:已识别的音频流的偏移量,表示为持续时间。 偏移量以时钟周期为单位,从
0
(零)时钟周期开始,与 SDK 处理的第一个音频字节相关联。 例如,偏移从开始识别时开始,因为那是 SDK 开始处理音频流的时间。 一个时钟周期表示一百纳秒,即一千万分之一秒。 - 持续时间:正在识别的语句的持续时间。 时钟周期中的持续时间不包括尾随或前导静音。
单个语句的结束是通过在结束时倾听静音来确定的。 在语句完成之前,不会获得最终识别结果。 识别事件将提供在处理音频流时可能会更改的中间结果。 语句处理完成后,识别的事件将提供最终的转录文本。
识别偏移量和持续时间
使用 Recognizing
事件,可以获取正在识别的语音的偏移量和持续时间。 在识别过程中,每个单词的偏移量和持续时间不可用。 每个 Recognizing
事件都附带对目前已识别语音的文本估计内容。
识别的偏移量和持续时间
识别语句后,即可获取已识别语音的偏移量和持续时间。 使用 Recognized
事件,还可以获取每个单词的偏移量和持续时间。 若要请求每个单词的偏移量和持续时间,首先必须设置相应的 SpeechConfig
属性,如下所示:
[speechConfig requestWordLevelTimestamps];
示例偏移量和持续时间
下表显示了说话人说“欢迎来到应用数学课程 201”时的潜在偏移量和持续时间(以时钟周期为单位)。在本例中,偏移量在 Recognizing
和 Recognized
事件中都不会改变。 但是,不要依赖偏移量在 Recognizing
和 Recognized
事件之间保持不变,因为最终结果可能不同。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | 欢迎 | 17000000 | 5000000 |
正在识别 | 欢迎来到 | 17000000 | 6400000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 13600000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 17200000 |
正在识别 | 欢迎来到应用数学课程 | 17000000 | 23700000 |
正在识别 | 欢迎来到应用数学课程 2 | 17000000 | 26700000 |
正在识别 | 欢迎来到应用数学课程 201 | 17000000 | 33400000 |
已识别 | 欢迎来到应用数学课程 201。 | 17000000 | 34500000 |
第一个语句的总持续时间为 3.45 秒。 该语句在语音识别开始偏移的 1.7 到 5.15 秒间被识别 (00:00:01.700 --> 00:00:05.150)。
如果说话人继续说“让我们开始”,则从识别的音频流的开头到新的语句的开头计算新的偏移量。 下表显示了在前一个语句结束两秒后讲出的语句的潜在偏移量和持续时间。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | OK | 71500000 | 3100000 |
正在识别 | 现在 | 71500000 | 10300000 |
正在识别 | 现在,让我们 | 71500000 | 14700000 |
正在识别 | 现在,让我们开始吧 | 71500000 | 18500000 |
已识别 | 现在,让我们开始吧。 | 71500000 | 20600000 |
第二个语句的总持续时间为 2.06 秒。 该语句在语音识别开始偏移的 7.15 到 9.21 秒间被识别 (00:00:07.150 --> 00:00:09.210)。
参考文档 | 包 (PyPi) | GitHub 上的其他示例
本操作指南介绍如何使用语音识别结果。
语音同步
你可能想要将听录与音频轨道同步,无论是实时完成还是预录制的。
语音服务返回已识别语音的偏移量和持续时间。
- 偏移量:已识别的音频流的偏移量,表示为持续时间。 偏移量以时钟周期为单位,从
0
(零)时钟周期开始,与 SDK 处理的第一个音频字节相关联。 例如,偏移从开始识别时开始,因为那是 SDK 开始处理音频流的时间。 一个时钟周期表示一百纳秒,即一千万分之一秒。 - 持续时间:正在识别的语句的持续时间。 时钟周期中的持续时间不包括尾随或前导静音。
单个语句的结束是通过在结束时倾听静音来确定的。 在语句完成之前,不会获得最终识别结果。 识别事件将提供在处理音频流时可能会更改的中间结果。 语句处理完成后,识别的事件将提供最终的转录文本。
识别偏移量和持续时间
使用 Recognizing
事件,可以获取正在识别的语音的偏移量和持续时间。 在识别过程中,每个单词的偏移量和持续时间不可用。 每个 Recognizing
事件都附带对目前已识别语音的文本估计内容。
此代码片段演示如何从 Recognizing
事件中获取偏移量和持续时间。
def recognizing_handler(e : speechsdk.SpeechRecognitionEventArgs) :
if speechsdk.ResultReason.RecognizingSpeech == e.result.reason and len(e.result.text) > 0 :
print("Recognized: {}".format(result.text))
print("Offset in Ticks: {}".format(result.offset))
print("Duration in Ticks: {}".format(result.duration))
识别的偏移量和持续时间
识别语句后,即可获取已识别语音的偏移量和持续时间。 使用 Recognized
事件,还可以获取每个单词的偏移量和持续时间。 若要请求每个单词的偏移量和持续时间,首先必须设置相应的 SpeechConfig
属性,如下所示:
speech_config.request_word_level_timestamps()
示例偏移量和持续时间
下表显示了说话人说“欢迎来到应用数学课程 201”时的潜在偏移量和持续时间(以时钟周期为单位)。在本例中,偏移量在 Recognizing
和 Recognized
事件中都不会改变。 但是,不要依赖偏移量在 Recognizing
和 Recognized
事件之间保持不变,因为最终结果可能不同。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | 欢迎 | 17000000 | 5000000 |
正在识别 | 欢迎来到 | 17000000 | 6400000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 13600000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 17200000 |
正在识别 | 欢迎来到应用数学课程 | 17000000 | 23700000 |
正在识别 | 欢迎来到应用数学课程 2 | 17000000 | 26700000 |
正在识别 | 欢迎来到应用数学课程 201 | 17000000 | 33400000 |
已识别 | 欢迎来到应用数学课程 201。 | 17000000 | 34500000 |
第一个语句的总持续时间为 3.45 秒。 该语句在语音识别开始偏移的 1.7 到 5.15 秒间被识别 (00:00:01.700 --> 00:00:05.150)。
如果说话人继续说“让我们开始”,则从识别的音频流的开头到新的语句的开头计算新的偏移量。 下表显示了在前一个语句结束两秒后讲出的语句的潜在偏移量和持续时间。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | OK | 71500000 | 3100000 |
正在识别 | 现在 | 71500000 | 10300000 |
正在识别 | 现在,让我们 | 71500000 | 14700000 |
正在识别 | 现在,让我们开始吧 | 71500000 | 18500000 |
已识别 | 现在,让我们开始吧。 | 71500000 | 20600000 |
第二个语句的总持续时间为 2.06 秒。 该语句在语音识别开始偏移的 7.15 到 9.21 秒间被识别 (00:00:07.150 --> 00:00:09.210)。
本操作指南介绍如何使用语音识别结果。
语音同步
你可能想要将听录与音频轨道同步,无论是实时完成还是预录制的。
语音服务返回已识别语音的偏移量和持续时间。
- 偏移量:已识别的音频流的偏移量,表示为持续时间。 偏移量以时钟周期为单位,从
0
(零)时钟周期开始,与 SDK 处理的第一个音频字节相关联。 例如,偏移从开始识别时开始,因为那是 SDK 开始处理音频流的时间。 一个时钟周期表示一百纳秒,即一千万分之一秒。 - 持续时间:正在识别的语句的持续时间。 时钟周期中的持续时间不包括尾随或前导静音。
单个语句的结束是通过在结束时倾听静音来确定的。 在语句完成之前,不会获得最终识别结果。 识别事件将提供在处理音频流时可能会更改的中间结果。 语句处理完成后,识别的事件将提供最终的转录文本。
识别偏移量和持续时间
你想要将字幕与音频轨道同步,无论是实时完成还是预先录制的。 使用 Recognizing
事件,可以获取正在识别的语音的偏移量和持续时间。 在识别过程中,每个单词的偏移量和持续时间不可用。 每个 Recognizing
事件都附带对目前已识别语音的文本估计内容。
例如,运行以下命令以获取已识别语音的偏移量和持续时间:
spx recognize --file caption.this.mp4 --format any --output each file - @output.each.detailed
由于设置了 @output.each.detailed
参数,因此输出包含以下列标题:
audio.input.id event event.sessionid result.reason result.latency result.text result.json
在 result.json
列中,可以找到包括 Recognizing
和 Recognized
事件的偏移量和持续时间的详细信息:
{
"Id": "492574cd8555481a92c22f5ff757ef17",
"RecognitionStatus": "Success",
"DisplayText": "Welcome to applied Mathematics course 201.",
"Offset": 1800000,
"Duration": 30500000
}
示例偏移量和持续时间
下表显示了说话人说“欢迎来到应用数学课程 201”时的潜在偏移量和持续时间(以时钟周期为单位)。在本例中,偏移量在 Recognizing
和 Recognized
事件中都不会改变。 但是,不要依赖偏移量在 Recognizing
和 Recognized
事件之间保持不变,因为最终结果可能不同。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | 欢迎 | 17000000 | 5000000 |
正在识别 | 欢迎来到 | 17000000 | 6400000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 13600000 |
正在识别 | 欢迎来到应用数学 | 17000000 | 17200000 |
正在识别 | 欢迎来到应用数学课程 | 17000000 | 23700000 |
正在识别 | 欢迎来到应用数学课程 2 | 17000000 | 26700000 |
正在识别 | 欢迎来到应用数学课程 201 | 17000000 | 33400000 |
已识别 | 欢迎来到应用数学课程 201。 | 17000000 | 34500000 |
第一个语句的总持续时间为 3.45 秒。 该语句在语音识别开始偏移的 1.7 到 5.15 秒间被识别 (00:00:01.700 --> 00:00:05.150)。
如果说话人继续说“让我们开始”,则从识别的音频流的开头到新的语句的开头计算新的偏移量。 下表显示了在前一个语句结束两秒后讲出的语句的潜在偏移量和持续时间。
事件 | 文本 | 偏移量(以时钟周期为单位) | 持续时间(以时钟周期为单位) |
---|---|---|---|
正在识别 | OK | 71500000 | 3100000 |
正在识别 | 现在 | 71500000 | 10300000 |
正在识别 | 现在,让我们 | 71500000 | 14700000 |
正在识别 | 现在,让我们开始吧 | 71500000 | 18500000 |
已识别 | 现在,让我们开始吧。 | 71500000 | 20600000 |
第二个语句的总持续时间为 2.06 秒。 该语句在语音识别开始偏移的 7.15 到 9.21 秒间被识别 (00:00:07.150 --> 00:00:09.210)。