RecognitionConfig

提供資訊給語音辨識器,指定處理要求的方式。

JSON 表示法
{
  "encoding": enum (AudioEncoding),
  "sampleRateHertz": integer,
  "audioChannelCount": integer,
  "enableSeparateRecognitionPerChannel": boolean,
  "languageCode": string,
  "alternativeLanguageCodes": [
    string
  ],
  "maxAlternatives": integer,
  "profanityFilter": boolean,
  "adaptation": {
    object (SpeechAdaptation)
  },
  "transcriptNormalization": {
    object (TranscriptNormalization)
  },
  "speechContexts": [
    {
      object (SpeechContext)
    }
  ],
  "enableWordTimeOffsets": boolean,
  "enableWordConfidence": boolean,
  "enableAutomaticPunctuation": boolean,
  "enableSpokenPunctuation": boolean,
  "enableSpokenEmojis": boolean,
  "diarizationConfig": {
    object (SpeakerDiarizationConfig)
  },
  "metadata": {
    object (RecognitionMetadata)
  },
  "model": string,
  "useEnhanced": boolean
}
欄位
encoding

enum (AudioEncoding)

所有 RecognitionAudio 訊息中傳送的音訊資料編碼。FLACWAV 音訊檔案可選擇是否填寫這個欄位,其他音訊格式則為必填。詳情請參閱「AudioEncoding」。

sampleRateHertz

integer

在所有 RecognitionAudio 訊息中傳送的音訊資料取樣率 (赫茲)。有效值為 8000 到 48000。16000 印度盧比。為達到最佳效果,請將音訊來源的取樣率設為 16000 Hz。如果您無法這麼做,請使用音訊來源的原始取樣率 (而非重新取樣)。如果是 FLAC 和 WAV 音訊檔案,這個欄位為選填欄位;如果是其他音訊格式,則為必填欄位。詳情請參閱「AudioEncoding」。

audioChannelCount

integer

輸入音訊資料中的聲道數量。您「只」需要在執行「多聲道」辨識作業時設定這個參數。LINEAR16、OGG_OPUS 和 FLAC 的有效值為 1-8。MULAW、AMR、AMR_WB 和 SPEEX_WITH_HEADER_BYTE 的有效值僅為 1。如果 0 或省略,預設為單一聲道 (單聲道)。注意:系統預設只會辨識第一個聲道。如要對每個聲道執行獨立辨識,請將 enableSeparateRecognitionPerChannel 設為「true」。

enableSeparateRecognitionPerChannel

boolean

這項設定必須明確設為 true,且 audioChannelCount > 1,才能分別辨識每個管道。辨識結果會包含 channelTag 欄位,說明該結果所屬的頻道。如果您沒有把它設為「True」,系統只會辨識第一個聲道。系統會根據所有辨識的聲道累計收費:audioChannelCount 乘以音訊長度。

languageCode

string

這是必要旗標,所提供音訊的語言,以 BCP-47 語言代碼表示。例如:「en-US」。如需目前支援的語言代碼清單,請參閱「語言支援」。

alternativeLanguageCodes[]

string

最多 3 個額外的 BCP-47 語言標記清單,列出所提供音訊的可能替代語言。如需目前支援的語言代碼清單,請參閱「語言支援」。如果您列出替代語言,辨識結果會包含系統偵測到最有可能的語言 (包括主要的 languageCode) 辨識內容。辨識結果將包含系統在音訊中偵測到的語言所屬語言代碼。注意:這項功能僅支援語音指令和語音搜尋的使用案例,針對其他使用案例 (例如語音通話轉錄) 的成效可能會有所不同。

maxAlternatives

integer

要傳回的推定辨識結果數量上限。具體來說,每個 SpeechRecognitionResult 內最多可有 SpeechRecognitionAlternative 則訊息。伺服器傳回的項目數量可能少於 maxAlternatives。有效值為 030。值為 01 時,最多會回傳一個結果。如果您沒有設定,系統最多會傳回一個結果。

profanityFilter

boolean

如果設為 true,伺服器就會試著濾除不雅用語,並將這些字詞第一個字母以外的所有字母替換成星號,例如「f***」。如果設為 false 或省略,系統就不會篩除不雅用語。

adaptation

object (SpeechAdaptation)

語音調整設定可提高語音辨識準確率。詳情請參閱語音適應說明文件。設定語音調整功能後,系統會覆寫 speechContexts 欄位。

transcriptNormalization

object (TranscriptNormalization)

(選用步驟) 使用轉錄稿正規化功能,自動將轉錄稿的部分內容換成您選擇的詞組。如果是 StreamingRecognize,這項正規化功能只會套用至穩定度大於 0.8 的穩定部分轉錄稿和最終轉錄稿。

speechContexts[]

object (SpeechContext)

SpeechContext 陣列。提供上下文來協助語音辨識作業的方式。詳情請參閱語音適應

enableWordTimeOffsets

boolean

如果設為 true,最佳結果會包含字詞清單,以及這些字詞的開始和結束時間偏移 (時間戳記)。如果設為 false,就不會傳回個別字詞的時間偏移資訊。預設值為 false

enableWordConfidence

boolean

如果設為 true,最佳結果會包含字詞清單,以及這些字詞的信心值。如果設為 false,就不會傳回個別字詞的信心值資訊。預設值為 false

enableAutomaticPunctuation

boolean

如果設為「true」,推定辨識結果中就會加入標點符號。這項功能僅適用於特定語言,如果您為其他語言的要求設定這項參數,則不會產生任何作用。預設的「false」值不會在推定結果中加入標點符號。

enableSpokenPunctuation

boolean

通話的口說標點符號機制。如未設定,系統會根據所選模型使用預設行為,例如 command_and_search 預設會啟用口說標點符號。如果設為「true」,就會將口說標點符號替換成要求中相應的符號。舉例來說,「你好嗎問號」會變為「你好嗎?」。如需支援,請參閱 https://cloud.google.com/speech-to-text/docs/spoken-punctuation。如果設為「false」,系統就不會替換說出的標點符號。

enableSpokenEmojis

boolean

通話的口說表情符號機制。如果未設定,系統會根據所選模型使用預設機制。如果設為「true」,就會為要求啟用口說表情符號功能,也就是在最終轉錄稿,將口說表情符號替換成相應的 Unicode 符號。如果設為「false」,系統就不會替換說出的表情符號。

diarizationConfig

object (SpeakerDiarizationConfig)

這項設定可以啟用說話者分段標記功能,並設定額外參數,讓分段標記更符合您的應用程式需求。注意:啟用這項功能後,我們會從音訊開頭開始,在每個連續的 STREAMING 回應中,傳送最佳替代轉錄的所有字詞。這是為了要讓模型能夠隨時間學習辨識對話中的說話者,來改善我們的說話者標記。而針對非串流的要求,系統只會在「最後」SpeechRecognitionResult 的最佳替代結果中,提供分段標記的結果。

metadata

object (RecognitionMetadata)

這項要求的中繼資料。

model

string

針對指定要求選取哪個模型。選取最適合網域的模型,即可獲得最佳結果。如果您沒有明確指定模型,系統會根據 RecognitionConfig 中的參數自動選取模型。

型號 說明

latest_long

最適合媒體或對話等長篇內容。

latest_short

最適合短篇內容,例如指令或單次錄製的語音。

command_and_search

適用於短語查詢,例如語音指令或語音搜尋。

phone_call

適用於電話語音 (錄音取樣率通常為 8khz)。

video

適用於影片中的音訊,或是有多人說話的音訊。在理想情況下,錄音的取樣率為 16khz 以上。提醒您,這是進階級模型,費用比一般費率更高。

default

適用於不符合上述特定音訊模型的音訊,例如長度較長的音訊。理想情況下為高傳真音訊,且錄音取樣率為 16khz 以上。

medical_conversation

最適用於醫療服務提供者與病患之間的對話音訊。

medical_dictation

適用於醫療服務提供者聽寫的筆記。

useEnhanced

boolean

設為 true 即可使用強化版模型進行語音辨識。如果 useEnhanced 設為 true,且未設定 model 欄位,則系統會為音訊選擇適當的加強型模型 (如有)。

如果 useEnhanced 為 true,但指定模型的強化版不存在,系統會使用指定模型的標準版辨識語音。

AudioEncoding

在要求中傳送的音訊資料編碼。

除非設定 audioChannelCountenableSeparateRecognitionPerChannel 欄位,否則所有編碼都只支援 1 個聲道 (單聲道) 的音訊。

如要獲得最佳效果,請使用無損編碼 (FLACLINEAR16) 擷取及傳送音訊來源。如果您使用會失真的轉碼器擷取或傳送音訊,語音辨識的準確率可能會降低 (尤其是在音訊有背景噪音的情況下)。有損編碼器包括 MULAWAMRAMR_WBOGG_OPUSSPEEX_WITH_HEADER_BYTEMP3WEBM_OPUS

FLACWAV 音訊檔案格式都有標頭,說明內含的音訊內容。你可以要求辨識含有 LINEAR16MULAW 編碼音訊的 WAV 檔案。如果要求中傳送 FLACWAV 音訊檔案格式,則不需要指定 AudioEncoding,系統會根據檔案標頭判斷音訊編碼格式。如果您在傳送 FLACWAV 音訊時指定 AudioEncoding,編碼設定必須與音訊標頭中描述的編碼方式相符,否則要求會傳回 google.rpc.Code.INVALID_ARGUMENT 錯誤代碼。

列舉
ENCODING_UNSPECIFIED 不指定。
LINEAR16 未壓縮的 16 位元已簽署 Little-Endian 樣本 (線性 PCM)。
FLAC 建議採用 FLAC (自由無損音訊壓縮編碼) 編碼,因為這是一種無損格式 (因此不會影響識別作業),而且相較於 LINEAR16 只需要約一半的頻寬。FLAC 串流編碼支援 16 位元和 24 位元樣本,但並非所有 STREAMINFO 中的欄位都支援。
MULAW 使用 G.711 PCMU/mu-law 來壓縮 14 位元音訊樣本,並在傳輸後將其擴展的 8 位元樣本。
AMR Adaptive Multi-Rate Narrowband 編碼器。sampleRateHertz 必須為 8000。
AMR_WB Adaptive Multi-Rate Wideband 編碼器。sampleRateHertz 必須為 16000。
OGG_OPUS Ogg 容器中的 Opus 編碼音訊影格 (OggOpus)。sampleRateHertz 必須是 8000、12000、16000、24000 或 48000。
SPEEX_WITH_HEADER_BYTE 雖然我們不建議使用失真編碼,但如果您需要極低位元率編碼,OGG_OPUS 還是遠比 Speex 編碼來得好。Cloud Speech API 支援的 Speex 編碼格式會在每個區塊中加入標頭位元組,如 MIME 類型 audio/x-speex-with-header-byte 所示。這是 RFC 5574 中定義的 RTP Speex 編碼變體。串流是由一連串區塊組成,每個 RTP 封包是一個區塊。每個區塊的開頭都是包含區塊長度的位元組 (長度單位為位元組),後面加上一或多個 Speex 資料框架,再依 RFC 5574 的規定填充至整數位元組 (八位元組)。換句話說,每個 RTP 標頭都會由包含區塊長度的單一位元組所取代。系統僅支援 Speex 寬頻。sampleRateHertz 必須為 16000。
MP3 MP3 音訊。MP3 編碼是 Beta 版功能,僅適用於 v1p1beta1。支援所有標準 MP3 位元率 (範圍為 32 到 320 kbps)。使用這項編碼時,sampleRateHertz 必須與所用檔案的取樣率相符。
WEBM_OPUS WebM 容器中的 Opus 編碼音訊影格 (WebM)。sampleRateHertz 必須是 8000、12000、16000、24000 或 48000。
ALAW 使用 G.711 PCMU/a-law 壓縮 13 位元音訊樣本的 8 位元樣本。

SpeechAdaptation

語音調整設定。

JSON 表示法
{
  "phraseSets": [
    {
      object (PhraseSet)
    }
  ],
  "phraseSetReferences": [
    string
  ],
  "customClasses": [
    {
      object (CustomClass)
    }
  ],
  "abnfGrammar": {
    object (ABNFGrammar)
  }
}
欄位
phraseSets[]

object (PhraseSet)

詞組集集合。如要內嵌指定提示,請將詞組集的 name 留白,並填寫其餘欄位。任何詞組集都可以使用任何自訂類別。

phraseSetReferences[]

string

要使用的詞組集資源名稱集合。

customClasses[]

object (CustomClass)

一組自訂類別。如要內嵌指定類別,請將類別的 name 留空,並填寫其餘欄位,為類別提供專屬的 customClassId。在片語提示中,透過 customClassId 參照內嵌定義的類別。

abnfGrammar

object (ABNFGrammar)

擴充巴科斯範式 (ABNF) 是一組衍生規則組成的標準化文法標記法。請參閱規格:https://www.w3.org/TR/speech-grammar

ABNFGrammar

JSON 表示法
{
  "abnfStrings": [
    string
  ]
}
欄位
abnfStrings[]

string

ABNF 文法的所有宣告和規則都會分成多個字串,最後會串連在一起。

TranscriptNormalization

語音轉錄正規化設定。使用轉錄稿正規化功能,自動將轉錄稿的部分內容換成您選擇的詞組。如果是 StreamingRecognize,這項正規化功能只會套用至穩定度大於 0.8 的穩定部分轉錄稿和最終轉錄稿。

JSON 表示法
{
  "entries": [
    {
      object (Entry)
    }
  ]
}
欄位
entries[]

object (Entry)

替換項目清單。我們會一次替換一個項目。舉例來說,["cat" => "dog", "mountain cat" => "mountain dog"] 中的第二個項目永遠不會套用,因為系統一律會先處理第一個項目。最多 100 個項目。

項目

單一取代設定。

JSON 表示法
{
  "search": string,
  "replace": string,
  "caseSensitive": boolean
}
欄位
search

string

要取代的內容。長度上限為 100 個半形字元。

replace

string

要取代為哪個選項。長度上限為 100 個半形字元。

caseSensitive

boolean

搜尋是否區分大小寫。

SpeechContext

「提示」語音辨識器,讓它在結果中比較常使用特定的字詞及片語。

JSON 表示法
{
  "phrases": [
    string
  ],
  "boost": number
}
欄位
phrases[]

string

包含字詞和詞組「提示」的字串清單,讓語音辨識器更有可能辨識出這些字詞和詞組。可用來提高特定字詞和片語的準確率,例如在使用者經常下達特定指令的情況下。此功能也可用來為辨識器的詞彙增加新的字詞。請參閱使用限制

清單項目也可以設為類別,代表自然語言中常見概念的字詞群組。舉例來說,與其為一年中的每個月提供片語提示,不如使用 $MONTH 類別,這樣就能提高正確轉錄音訊中月份的機率。

boost

number

提示強化。正值會提高系統辨識特定詞組的機率,而非其他發音相似的詞組。提升幅度越高,誤判的可能性也越高。負值則代表反向加成,由於未啟用反偏誤功能,系統會直接忽略負向加成。雖然 boost 可接受各種正值,但大多數用途最適合的值介於 0 到 20 之間。建議使用二分搜尋法,找出最適合您用途的值。

SpeakerDiarizationConfig

啟用說話者分段標記的設定。

JSON 表示法
{
  "enableSpeakerDiarization": boolean,
  "minSpeakerCount": integer,
  "maxSpeakerCount": integer,
  "speakerTag": integer
}
欄位
enableSpeakerDiarization

boolean

如果設為「true」,系統會使用 WordInfo 中提供的 speakerLabel,為辨識結果中每個辨識的文字啟用說話者偵測功能。

minSpeakerCount

integer

對話中的說話者人數下限。系統可透過這個範圍自動判斷正確說話者人數,讓您享有更大彈性。如未設定,則預設值為 2。

maxSpeakerCount

integer

對話中的說話者人數上限。系統可透過這個範圍自動判斷正確說話者人數,讓您享有更大彈性。如未設定,則預設值為 6。

speakerTag
(deprecated)

integer

僅供輸出。未使用。

RecognitionMetadata

待辨識音訊資料的說明。

JSON 表示法
{
  "interactionType": enum (InteractionType),
  "industryNaicsCodeOfAudio": integer,
  "microphoneDistance": enum (MicrophoneDistance),
  "originalMediaType": enum (OriginalMediaType),
  "recordingDeviceType": enum (RecordingDeviceType),
  "recordingDeviceName": string,
  "originalMimeType": string,
  "audioTopic": string
}
欄位
interactionType

enum (InteractionType)

最能描述要辨識音訊內容的用途。

industryNaicsCodeOfAudio

integer (uint32 format)

最符合這項語音辨識要求的產業。這是音訊包含的主題中最直陳的。使用 6 位數的 NAICS 代碼識別產業類別 - 請參閱 https://www.naics.com/search/

microphoneDistance

enum (MicrophoneDistance)

最能描述所辨識音訊的音訊類型。

originalMediaType

enum (OriginalMediaType)

語音原本是使用哪種媒體錄製。

recordingDeviceType

enum (RecordingDeviceType)

用來錄製語音的裝置類型。

recordingDeviceName

string

用於錄音的裝置。例如「Nexus 5X」或「Polycom SoundStation IP 6000」或「POTS」或「VoIP」或「Cardioid Microphone」。

originalMimeType

string

原始音訊檔案的 MIME 類型。例如:audio/m4aaudio/x-alaw-basicaudio/mp3audio/3gpp。如需可能的音訊 MIME 類型清單,請前往 http://www.iana.org/assignments/media-types/media-types.xhtml#audio

audioTopic

string

內容說明。例如:「2012 年聯邦最高法院聽證會的錄音檔」。

InteractionType

可用來說明音訊辨識要求的使用案例類別。

列舉
INTERACTION_TYPE_UNSPECIFIED 使用案例不明,或是不屬於下列任何一值。
DISCUSSION 有多人參與對話或討論。舉例來說,至少有兩個人參與的會議。所有主要說話者通常會在同一個房間內 (如果不是,請參閱 PHONE_CALL)。
PRESENTATION 至少有一個人在對其他人演講或做簡報,而且幾乎沒有受到干擾。
PHONE_CALL 至少有兩個人參與的語音通話或視訊會議,而且這些人都不在同一個房間內。
VOICEMAIL 為了要讓另一個人聆聽而錄製的訊息。
PROFESSIONALLY_PRODUCED 以專業的方式製作的音訊 (例如電視節目、Podcast)。
VOICE_COMMAND 將語音指令 (例如用來控制裝置的語音指令) 轉錄成文字。
DICTATION 將語音轉錄成文字來建立書面文件,例如文字訊息、電子郵件或報告。

MicrophoneDistance

列舉音訊檔案的擷取設定類型。

列舉
MICROPHONE_DISTANCE_UNSPECIFIED 音訊類型不明。
NEARFIELD 音訊是透過靠得很近的麥克風所擷取。例如手機、口述錄音機或手持麥克風。一般是指說話者與麥克風的距離不到 1 公尺。
MIDFIELD 說話者與麥克風的距離不到 3 公尺。
FARFIELD 說話者與麥克風的距離超過 3 公尺。

OriginalMediaType

語音原本是使用哪種媒體錄製。

列舉
ORIGINAL_MEDIA_TYPE_UNSPECIFIED 原始的媒體類型不明。
AUDIO 語音資料是錄音而來。
VIDEO 語音資料原本是與影片一併錄製。

RecordingDeviceType

用來錄製語音的裝置類型。

列舉
RECORDING_DEVICE_TYPE_UNSPECIFIED 錄製裝置不明。
SMARTPHONE 語音是使用智慧型手機錄製。
PC 語音是使用個人電腦或平板電腦錄製。
PHONE_LINE 語音是透過電話線路錄製。
VEHICLE 語音是在交通工具中錄製。
OTHER_OUTDOOR_DEVICE 語音是在室外錄製。
OTHER_INDOOR_DEVICE 語音是在室內錄製。