使用 Azure AI 语音转文本 API
Azure AI 语音服务通过两个 REST API 支持语音识别:
- 语音转文本 API,这是执行语音识别的主要方式。
- 语音转文本短音频 API,这针对短音频流(最多 60 秒)进行了优化。
可以使用任一 API 进行交互式语音识别,具体取决于口述输入的预期长度。 还可以将语音转文本 API 用于批量听录,从而以批处理操作的形式将多个音频文件转录为文本。
可以在语音转文本 REST API 文档中详细了解 REST API。 在实践中,大多数启用了语音的交互式应用程序会通过(编程)特定于语言的 SDK 来使用语音服务。
使用 Azure AI 语音 SDK
虽然具体详细信息因所使用的 SDK(Python、C# 等)而异;不过使用语音转文本 API 时,有一种一致的模式:
- 使用 SpeechConfig 对象封装连接到 Azure AI 语音资源所需的信息。 具体来说,就是它的位置和键。
- (可选)使用 AudioConfig 定义要转录的音频的输入源。 默认情况下,该输入源是系统默认麦克风,但你也可以指定音频文件。
- 使用 SpeechConfig 和 AudioConfig 创建 SpeechRecognizer 对象。 此对象是语音转文本 API 的代理客户端。
- 使用 SpeechRecognizer 对象的方法调用基础 API 函数。 例如,RecognizeOnceAsync() 方法使用 Azure AI 语音服务以异步方式转录单一口述言语。
- 处理来自 Azure AI 语音服务的响应。 如果采用 RecognizeOnceAsync() 方法,则结果为带有以下属性的 SpeechRecognitionResult 对象:
- 持续时间
- OffsetInTicks
- 属性
- 原因
- ResultId
- 文本
如果操作成功,则 Reason 属性具有枚举值 RecognizedSpeech,Text 属性包含听录。 Result 的其他可能值包括 NoMatch(指示已成功分析音频,但是未识别出语音)或 Canceled(指示发生了错误)(在此例中,可以检查 CancellationReason 属性的 Properties 集合以确定错误的内容)。