适用于短音频的语音转文本 REST API

   日期:2024-12-25    作者:liuyulongsky 移动:http://mip.riyuangf.com/mobile/quote/20595.html

适用于短音频的语音转文本 REST API 的适用场景有限。 仅在无法使用语音 SDK 的情况下使用它。

在使用适用于短音频的语音转文本 REST API 之前,请考虑以下限制:

  • 使用适用于短音频的 REST API 并直接传输音频的请求最多只能包含 60 秒的音频。 与语音 SDK 相比,输入音频格式更受限制。
  • 适用于短音频的 REST API 仅返回最终结果。 它不提供部分结果。
  • 短音频不支持通过 REST API 进行语音翻译。 你需要使用 语音 SDK。
  • 短音频不支持通过 REST API 进行批量听录和自定义语音识别。 应始终使用语音转文本 REST API 进行批量听录和自定义语音识别。

在使用适用于短音频的语音转文本 REST API 之前,你需要在身份验证过程中完成令牌交换才能访问该服务,请悉知。 有关详细信息,请参阅身份验证。

适用于短音频的 REST API 的终结点具有以下格式:


将 替换为与语音资源所在区域匹配的标识符。

在 HTTP 请求的正文中发送音频。 它必须采用下表中的格式之一:

格式 编解码器 比特率 采样速率 WAV PCM 256 kbps 16 kHz,单声道 OGG OPUS 256 kbps 16 kHz,单声道

下表列出了语音转文本请求的必需和可选标头:

标头 说明 必需还是可选 语音服务的资源密钥。 此标头或 是必需的。 前面带有单词 的授权令牌。 有关详细信息,请参阅身份验证。 此标头或 是必需的。 指定用于在识别结果中显示发音分数的参数。 这些分数评估语音输入的发音质量,并具有准确性、流畅性、完整性等指标。

此参数是 Base64 编码的 JSON,其中包含多个详细的参数。 若要了解如何生成此标头,请参阅发音评估参数。 可选 描述所提供音频数据的格式和编解码器。 接受的值为 和 。 必需 指定要发送分块的音频数据,而不是单个文件。 仅当要对音频数据进行分块时才使用此标头。 可选 如果使用分块传输,则发送 。 语音服务将确认初始请求并等待更多数据。 如果发送分块的音频数据,则是必需的。 如果提供此标头,则值必须是 。 语音服务以 JSON 格式提供结果。 某些请求框架提供不兼容的默认值。 最好始终包含 。 可选,但建议提供。

可将以下参数包含在 REST 请求的查询字符串中。

参数 说明 必需还是可选 标识所要识别的口语。 请参阅支持的语言。 必需 指定结果格式。 接受的值为 和 。 简单结果包括 、、 和 。 Detailed 响应包括显示文本的四种不同的表示形式。 默认设置为 。 可选 指定如何处理识别结果中的不雅内容。 接受的值包括:

,以星号替代不雅内容。
,从结果中删除所有不雅内容。
,包含结果中的不雅内容。

默认设置为 。 可选 使用 Speech Studio 创建自定义模型时,可以利用“部署”页上的"终结点 ID" 值。 使用"终结点 ID" 值作为 查询字符串形式参数的实际参数。 可选

下表列出了发音评估的必需参数和可选参数:

参数 说明 必需还是可选 用来对发音进行评估的文本。 必须 用于分数校准的分数系统。 系统给出 0-5 的浮点分数,而 系统给出 0-100 的浮点分数。 默认值:。 可选 评估粒度。 接受的值为:

,它显示全文、单词和音素级别的分数。
,它显示全文和单词级别的分数。
,它仅显示全文级别的分数。

默认设置为 。 可选 定义输出条件。 接受的值为:

,它只显示准确度分数。
,它显示更多维度的分数(例如,全文级别的流畅度分数和完整性分数、单词级别的错误类型)。

若要了解不同分数维度和单词错误类型的定义,请参阅响应属性。 默认设置为 。 可选 启用误读计算。 启用此参数后,会将发音的词与参考文本进行比较。 根据比较结果,将这些词标记为省略或插入。 接受的值为 和 。 默认设置为 。 可选 一个 GUID,表示自定义分数系统。 可选

下面是一个示例 JSON,其中包含发音评估参数:


下面的示例代码演示如何将发音评估参数构建到 标头中:


我们强烈建议在发布音频数据时进行流式(分块传输)上传,这可以显著减少延迟。 若要了解如何启用流式处理,请参阅不同编程语言的示例代码。

以下示例包括主机名和必需的标头。 必须注意,服务同时预期提供音频数据,但此示例未包括这些数据。 如前所述,建议进行分块,但不是非要这样做。


若要启用发音评估,可以添加以下标头。 若要了解如何生成此标头,请参阅发音评估参数。



每个响应的 HTTP 状态代码指示成功或一般错误。

HTTP 状态代码 说明 可能的原因 100 继续 已接受初始请求。 继续发送剩余的数据。 (此代码与分块传输配合使用。) 200 OK 请求已成功。 响应正文为 JSON 对象。 400 错误的请求 未提供语言代码,语言不受支持,或音频文件无效(例如)。 401 未授权 指定区域中的资源密钥或授权令牌无效,或终结点无效。 403 禁止 缺少资源密钥或授权令牌。

这是 识别的典型响应:


这是 识别的典型响应:


这是使用发音评估进行识别的典型响应:



结果以 JSON 格式提供。 此 格式包括以下顶级字段:

属性 说明 状态,例如 表示成功识别。 请参阅下表。 大写、标点符号、反向文本规范化和不雅内容屏蔽之后的已识别文本。 仅在成功时提供。 反向文本规范化是指将口述文本转换为较短的形式,例如 200 表示“two hundred”或 Dr. Smith 表示“doctor smith”。 在音频流中开始识别语音的时间(以 100 纳秒为单位)。 在音频流中识别语音的持续时间(以 100 纳秒为单位)。

字段可能包含以下值:

状态 说明 识别成功并且存在 字段。 在音频流中检测到语音,但没有匹配目标语言的字词。 此状态通常意味着识别语言与用户正在使用的语言不同。 音频流的开始仅包含静音,并且服务在等待语音时超时。 音频流的开始仅包含噪音,并且服务在等待语音时超时。 识别服务遇到内部错误,无法继续。 如果可能,请重试。

格式包括更多形式的已识别结果。 使用 格式时,将以 形式为 列表中的每条结果提供 。

列表中的对象可以包括:

属性 说明 条目的置信度评分,从 0.0(完全不可信)到 1.0(完全可信)。 已识别文本的词法形式:识别的实际单词。 已识别文本的反向文本规范化 (ITN) 或规范格式,已应用电话号码、数字、缩写(“doctor smith”缩写为“dr smith”)和其他转换。 可根据请求提供应用了亵渎内容屏蔽的 ITN 形式。 已识别文本的显示形式,其中添加了标点符号和大小写形式。 此参数与将格式设置为 时 提供的内容相同。 语音的发音准确度。 准确度表示音素与母语人士发音的接近程度。 单词和全文级别的准确性分数是从音素级别的准确性分数聚合而来的。 给定语音的流畅度。 流畅度表示语音与母语人士在单词之间使用无声停顿的接近程度。 语音的完整性,通过计算发音单词与参考文本输入的比率来确定。 总分,表示给定语音的发音质量。 此分数按权重从 、 和 聚合而成。 该值指示与 相比,是省略、插入还是错误读出字词。 可能的值为 (表示此词没有错误)、、 和 。

分块传输 () 有助于降低识别延迟。 它允许语音服务在传输音频文件时开始处理该文件。 适用于短音频的 REST API 不提供部分结果或临时结果。

以下代码示例演示如何以块的形式发送音频。 只有第一个区块应该包含音频文件的标头。 是连接到相应 REST 终结点的 对象。 是音频文件在磁盘上的路径。



每个请求都需要一个授权标头。 下表说明了每个功能支持的标头:

受支持的授权标头 语音转文本 文本到语音转换 是 是 是 是

使用 标头时,必须仅提供资源密钥。 例如:


使用 标头时,需要向 终结点发出请求。 在此请求中,用资源密钥交换一个有效期为 10 分钟的访问令牌。

另一种选择是使用 Microsoft Entra 身份验证,该身份验证也使用 标头,但使用通过 Microsoft Entra ID 颁发的令牌。 请参阅使用 Microsoft Entra 身份验证。

若要获取访问令牌,需要通过使用 和你的资源密钥来向 终结点发出请求。

终结点具有以下格式:


将 替换为与订阅所在区域匹配的标识符。

使用以下示例来创建访问令牌请求。

HTTP 示例

此示例是获取令牌的简单 HTTP 请求。 将 替换为你的语音服务的资源密钥。 如果订阅不在美国西部区域,请将 标头替换为所在区域的主机名。


响应正文包含 JSON Web 令牌 (JWT) 格式的访问令牌。

PowerShell 示例

此示例是获取访问令牌的简单 PowerShell 脚本。 将 替换为你的语音服务的资源密钥。 请务必使用与订阅匹配的正确区域终结点。 此示例目前设置为“美国西部”。


cURL 示例

cURL 是 Linux(及面向 Linux 的 Windows 子系统)中提供的一种命令行工具。 此 cURL 命令演示如何获取访问令牌。 将 替换为你的语音服务的资源密钥。 请务必使用与订阅匹配的正确区域终结点。 此示例目前设置为“美国西部”。


C# 示例

此 C# 类演示如何获取访问令牌。 在实例化该类时,传递你的语音服务的资源密钥。 如果订阅不在美国西部区域,请更改 的值,以便与订阅的区域相匹配。


Python 示例



应将访问令牌作为 标头发送到服务。 每个访问令牌的有效期为 10 分钟。 你随时可以获取新令牌,但为了最大限度地减少网络流量和延迟,建议同一令牌使用 9 分钟。

下面是向适用于短音频的语音转文本 REST API 发出的示例 HTTP 请求:



要将 Microsoft Entra 身份验证与语音转文本 REST API 配合用于短音频,需要创建访问令牌。 获取包含资源 ID 和 Microsoft Entra 访问令牌的访问令牌的步骤与使用语音 SDK 时的步骤相同。 按照此处的步骤操作:使用 Microsoft Entra 身份验证

获取资源 ID 和 Microsoft Entra 访问令牌后,可以按照以下格式构造实际的访问令牌:


需要在资源 ID 和访问令牌之间包含“aad#”前缀和“#”(哈希)分隔符。

下面是向适用于短音频的语音转文本 REST API 发出的示例 HTTP 请求:


 

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号