Method: speech.recognize

执行同步语音识别:在发送和处理完所有音频后接收结果。

HTTP 请求

POST https://speech.googleapis.com/v1p1beta1/speech:recognize

网址采用 gRPC 转码语法。

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "config": {
    object (RecognitionConfig)
  },
  "audio": {
    object (RecognitionAudio)
  }
}
字段
config

object (RecognitionConfig)

必需。向识别器提供指定如何处理请求的信息。

audio

object (RecognitionAudio)

必需。要识别的音频数据。

响应正文

speech.recognize 方法返回给客户端的唯一消息。它包含零个或多个连续的 SpeechRecognitionResult 消息形式的结果。

如果成功,响应正文将包含结构如下的数据:

JSON 表示法
{
  "results": [
    {
      object (SpeechRecognitionResult)
    }
  ],
  "totalBilledTime": string,
  "speechAdaptationInfo": {
    object (SpeechAdaptationInfo)
  },
  "requestId": string,
  "usingLegacyModels": boolean
}
字段
results[]

object (SpeechRecognitionResult)

对应于音频中几个连续部分的转录结果的连续列表。

totalBilledTime

string (Duration format)

相应请求的已结算音频秒数(如有)。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

speechAdaptationInfo

object (SpeechAdaptationInfo)

提供有关响应中自适应行为的信息

requestId

string (int64 format)

与请求关联的 ID。这是仅针对给定请求的唯一 ID。

usingLegacyModels

boolean

请求是否使用了旧版 ASR 模型(未自动迁移到使用 Conformer 模型)。

授权范围

需要以下 OAuth 范围:

  • https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅 Authentication Overview

SpeechRecognitionResult

对应于音频的一部分的语音识别结果。

JSON 表示法
{
  "alternatives": [
    {
      object (SpeechRecognitionAlternative)
    }
  ],
  "channelTag": integer,
  "resultEndTime": string,
  "languageCode": string
}
字段
alternatives[]

object (SpeechRecognitionAlternative)

可能包含一个或多个识别假设(最多为 maxAlternatives 中指定的最大值)。这些备用内容由识别器按照准确性进行排序,最前面的(第一个)备用内容是最有可能的。

channelTag

integer

对于多声道音频,这是与识别出的音频所属声道相对应的声道编号。如果 audioChannelCount = N,则其输出值的范围可以从“1”到“N”。

resultEndTime

string (Duration format)

此结果的结束相对于音频开头的时间偏移。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

languageCode

string

仅限输出。此结果中语言的 BCP-47 语言标记。检测到该语言代码表示音频中最有可能使用的是该语言。

SpeechRecognitionAlternative

备用假设(又称为 n 最佳列表)。

JSON 表示法
{
  "transcript": string,
  "confidence": number,
  "words": [
    {
      object (WordInfo)
    }
  ]
}
字段
transcript

string

表示用户所说字词的转录文本。在用空格分隔字词的语言中,如果转写内容不是第一个结果,则可能包含前导空格。您可以连接每个结果以获得完整转写内容,而无需使用分隔符。

confidence

number

介于 0.0 和 1.0 之间的置信度估计值。数字越高表示单词被正确识别的估计可能性越大。此字段仅针对非流式结果的首选备用内容或 isFinal=true 的流式结果设置。此字段不能保证准确无误,也不能保证总会为用户提供。默认值 0.0 是一个标记值,表示未设置 confidence

words[]

object (WordInfo)

每个已识别字词的字词特定信息列表。注意:当 enableSpeakerDiarization 为 true 时,您将看到音频开头的所有字词。

WordInfo

已识别字词的字词特定信息。

JSON 表示法
{
  "startTime": string,
  "endTime": string,
  "word": string,
  "confidence": number,
  "speakerTag": integer,
  "speakerLabel": string
}
字段
startTime

string (Duration format)

相对于音频开头的时间偏移,并且对应于所说字词的开头。此字段仅在 enableWordTimeOffsets=true 时设置,且仅适用于首选假设。这是一项实验性功能,时间偏移的准确性可能会有所不同。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

endTime

string (Duration format)

相对于音频开头的时间偏移,并且对应于所说字词的末尾。此字段仅在 enableWordTimeOffsets=true 时设置,且仅适用于首选假设。这是一项实验性功能,时间偏移的准确性可能会有所不同。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

word

string

对应于该组信息的字词。

confidence

number

介于 0.0 和 1.0 之间的置信度估计值。数字越高表示单词被正确识别的估计可能性越大。此字段仅针对非流式结果的首选备用内容或 isFinal=true 的流式结果设置。此字段不能保证准确无误,也不能保证总会为用户提供。默认值 0.0 是一个标记值,表示未设置 confidence

speakerTag
(deprecated)

integer

仅限输出。为音频中的每个讲话人分配不同的整数值。此字段指定检测哪个讲话人说出了此字词。值范围从“1”到 diarizationSpeakerCount。当 enableSpeakerDiarization = 'true' 时设置 speakerTag(仅适用于首选备用内容)。注意:请改用 speakerLabel。

speakerLabel

string

仅限输出。为音频中的每个唯一说话者分配的标签值。此字段用于指定检测到哪个讲话者说了这个字词。对于某些模型(如 medical_conversation),这可以是实际的说话者角色,例如“患者”或“提供方”,但通常情况下,这会是用于标识说话者的数字。此字段仅在 enableSpeakerDiarization = 'true' 时设置,且仅适用于首选备用内容。

SpeechAdaptationInfo

有关在结果中使用语音自适应的信息

JSON 表示法
{
  "adaptationTimeout": boolean,
  "timeoutMessage": string
}
字段
adaptationTimeout

boolean

应用语音自适应时是否超时。如果为 true,则自适应对响应转写内容没有影响。

timeoutMessage

string

如果设置了此字段,则返回一条消息,指明语音转写请求的哪个部分超时。