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,
  "enableSpeakerDiarization": boolean,
  "diarizationSpeakerCount": integer,
  "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。有效值为 0-30。值为 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”,则在请求中将语音标点符号替换为相应的符号。例如,转写内容“how are you 英文问号”会变为“how are you?”。如需获得支持,请参阅 https://cloud.google.com/speech-to-text/docs/spoken-punctuation。如果为“false”,则不会替换语音标点符号。

enableSpokenEmojis

boolean

通话的语音表情符号行为。如果未设置,则使用基于所选模型的默认行为。如果为“true”,则针对请求添加语音表情符号格式。这会在最终转写内容中将语音表情符号替换为相应的 Unicode 符号。如果为“false”,则不会替换语音表情符号。

enableSpeakerDiarization
(deprecated)

boolean

如果为“true”,则使用 WordInfo 中提供的 speakerLabel 为识别结果的首选备选方案中的每个已识别的字词启用说话人检测。注意:请改用 diarizationConfig。

diarizationSpeakerCount
(deprecated)

integer

如果设置,则指定对话中讲话人的估计数量。默认值为“2”。除非 enableSpeakerDiarization 设置为 true,否则会被忽略。注意:请改用 diarizationConfig。

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 音频文件格式包括描述所含音频内容的文件头。您可以请求识别包含 WAVLINEAR16 编码音频的 MULAW 文件。如果您在请求中发送 FLACWAV 音频文件格式,则无需指定 AudioEncoding;音频编码格式将根据文件头确定。如果在发送 FLACWAV 音频时指定 AudioEncoding,则编码配置必须与音频文件头中描述的编码匹配;否则请求将返回 google.rpc.Code.INVALID_ARGUMENT 错误代码。

枚举
ENCODING_UNSPECIFIED 未指定。
LINEAR16 未压缩的 16 位有符号小端字节序采样(线性 PCM)。
FLAC 推荐的编码方式是 FLAC(免费无损音频编解码器),因为这种编码方式是无损的(因此丝毫不会影响到识别),并且所需带宽仅为 LINEAR16 的大致一半。FLAC 流编码支持 16 位和 24 位采样,但并不支持 STREAMINFO 中的所有字段。
MULAW 8 位采样,使用 G.711 PCMU/mu-law 压缩 14 位音频采样。
AMR 自适应多速率窄带编解码器。sampleRateHertz 必须是 8000。
AMR_WB 自适应多速率宽带编解码器。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 8 位采样,使用 G.711 PCMU/a-law 压缩 13 位音频采样。

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,
  "obfuscatedId": 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”或“心型指向麦克风”。

originalMimeType

string

原始音频文件的 MIME 类型。例如 audio/m4aaudio/x-alaw-basicaudio/mp3audio/3gpp。如需查看可能的音频 MIME 类型列表,请访问 http://www.iana.org/assignments/media-types/media-types.xhtml#audio

obfuscatedId
(deprecated)

string (int64 format)

用户经模糊处理(受隐私权保护)的 ID,用于确定使用该服务的唯一身份用户的数量。

audioTopic

string

内容说明。例如,“2012 年联邦最高法院听证会的录音”。

InteractionType

可以描述音频识别请求的用例类别。

枚举
INTERACTION_TYPE_UNSPECIFIED 用例未知或者不是下面其他值之一。
DISCUSSION 对话或讨论中的多个人。例如,在有两个或更多人积极参与的会议中。通常所有主要讲话人都在同一个房间(如果不在同一个房间,请参见 PHONE_CALL)
PRESENTATION 一个或多个人向他人演讲或演示幻灯片,通常是不间断的。
PHONE_CALL 电话呼叫或视频会议,有两个或多个不在同一房间的人员积极参与。
VOICEMAIL 录制的消息,供另一个人收听。
PROFESSIONALLY_PRODUCED 专业制作的音频(例如电视节目、播客)。
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 语音是在室内录制的。