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)

如果有的話,對應要求的計費音訊秒數。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「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)

這個結果的結尾相對於音訊開頭的時間偏移。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「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 且僅在頂層假設中,才會設定這個欄位。這是實驗性功能,且時間偏移的準確性可能不一。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「s」結尾,例如:"3.5s"

endTime

string (Duration format)

相對於音訊開頭的時間偏移,且對應到所說字詞的結尾。只有在 enableWordTimeOffsets=true 且僅在頂層假設中,才會設定這個欄位。這是實驗性功能,且時間偏移的準確性可能不一。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「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

如果已設定,則會傳回訊息,指出語音適應要求哪個部分逾時。