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 メッセージで送信される音声データのエンコード。このフィールドは、FLAC および WAV 音声ファイルでは省略可能であり、他のすべての音声形式では必須です。詳しくは、AudioEncoding をご覧ください。

sampleRateHertz

integer

すべての RecognitionAudio メッセージで送信される音声データのサンプリング レート(ヘルツ単位)。有効な値は 8,000~48,000 です。16,000 が最適な値です。最良の結果を得るには、音源のサンプリング レートを 16,000 Hz に設定します。不可能な場合は、(再サンプリングせずに)音源のネイティブ サンプリング レートを使用します。このフィールドは、FLAC および WAV 音声ファイルでは省略可能ですが、他のすべての音声形式では必須です。詳しくは、AudioEncoding をご覧ください。

audioChannelCount

integer

入力音声データのチャンネル数。MULTI-CHANNEL 認識の場合にのみ設定します。LINEAR16、OGG_OPUS、FLAC の有効な値は 18 です。MULAW、AMR、AMR_WB、SPEEX_WITH_HEADER_BYTE の有効な値は 1 のみです。0 を指定した場合または省略した場合、デフォルトの 1 チャンネル(モノラル)に設定されます。注: デフォルトでは最初のチャンネルのみ認識されます。チャンネルごとに個別に認識させるには、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 です。値が 0 または 1 の場合は、最大で 1 つが返されます。省略した場合、最大数は 1 になります。

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」の場合、読み上げられた絵文字は置き換えられません。

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

通話からの音声に最適です(通常は 8 kHz のサンプリング レートで録音されています)。

video

動画からの音声または複数話者を含む音声に最適です。音声は 16 kHz 以上のサンプリング レートで録音されていることが理想的です。これは、標準レートよりも費用の高いプレミアム モデルです。

default

特定の音声モデルではない音声に最適です。たとえば、長時間の音声などです。16 kHz 以上のサンプリング レートで録音された高忠実度の音声であることが理想的です。

medical_conversation

医療提供者と患者の間の会話から取得された音声に最適です。

medical_dictation

医療従事者によるディクテーション メモから生成された音声に最適です。

useEnhanced

boolean

音声認識に拡張モデルを使用する場合は true に設定します。useEnhanced が true に設定されていて、model フィールドが設定されていない場合、音声に拡張モデルが存在すれば、適切な拡張モデルが選択されます。

useEnhanced が true で、指定されたモデルの拡張バージョンが存在しない場合、指定されたモデルの標準バージョンを使用して音声が認識されます。

AudioEncoding

リクエストで送信される音声データのエンコード。

audioChannelCount フィールドと enableSeparateRecognitionPerChannel フィールドが設定されていない限り、すべてのエンコードで 1 チャンネル(モノラル)の音声のみがサポートされます。

最良の結果を得るには、音声ソースをロスレス エンコード(FLAC または LINEAR16)でキャプチャして送信する必要があります。音声認識の精度は、特にバックグラウンド ノイズが存在する場合に、音声のキャプチャまたは送信に損失の大きいコーデックを使用すると低下します。ロッシー コーデックには、MULAWAMRAMR_WBOGG_OPUSSPEEX_WITH_HEADER_BYTEMP3WEBM_OPUS があります。

FLAC および WAV 音声ファイル形式には、含まれている音声コンテンツを記述したヘッダーが含まれます。LINEAR16 または MULAW でエンコードされた音声を含む WAV ファイルの認識をリクエストできます。リクエストで FLAC または WAV の音声ファイル形式を送信する場合、AudioEncoding を指定する必要はありません。音声エンコード形式はファイル ヘッダーから決定されます。FLAC または WAV 音声を送信するときに AudioEncoding を指定する場合、そのエンコード構成は音声ヘッダーに記述されているエンコードと一致している必要があります。それ以外の場合、リクエストは google.rpc.Code.INVALID_ARGUMENT を返します。

列挙型
ENCODING_UNSPECIFIED 指定なし。
LINEAR16 非圧縮 16 ビット符号付きリトル エンディアンのサンプル(Linear PCM)。
FLAC FLAC(Free Lossless Audio Codec)はロスレスである(したがって、認識は損なわれない)ため推奨されるエンコード方式であり、LINEAR16 の約半分の帯域幅しか必要としません。FLAC ストリーム エンコードは 16 ビットと 24 ビットのサンプルをサポートしていますが、STREAMINFO のすべてのフィールドがサポートされているわけではありません。
MULAW G.711 PCMU/mu-law を使用して 14 ビットの音声サンプルの圧縮と伸張を行う 8 ビットのサンプル。
AMR Adaptive Multi-Rate Narrowband コーデック。sampleRateHertz は 8,000 にする必要があります。
AMR_WB Adaptive Multi-Rate Wideband コーデック。sampleRateHertz は 16,000 にする必要があります。
OGG_OPUS Ogg コンテナに格納された Opus エンコード形式の音声フレーム(OggOpus)。sampleRateHertz は 8,000、12,000、16,000、24,000、または 48,000 にする必要があります。
SPEEX_WITH_HEADER_BYTE ロッシー エンコードの使用は推奨されませんが、非常に低いビットレートのエンコードが必要な場合は、OGG_OPUS が Speex エンコードよりも強く推奨されます。Cloud Speech API でサポートされている Speex エンコードは、MIME タイプの audio/x-speex-with-header-byte と同様に、各ブロックにヘッダーバイトがあります。これは RFC 5574 で定義されている RTP Speex エンコードのバリアントです。ストリームは一連のブロックから成り、RTP パケットごとに 1 つのブロックがあります。各ブロックはブロックの長さ(バイト単位)を含むバイトから始まり、その後に 1 つ以上の Speex データのフレームが続きます。各データフレームは RFC 5574 で指定された整数バイト数(オクテット)になるようにパディングされます。言い換えると、各 RTP ヘッダーはブロック長を含む単一のバイトに置き換えられます。Speex ワイドバンドのみがサポートされています。sampleRateHertz は 16000 にする必要があります。
MP3 MP3 オーディオ。MP3 エンコーディングはベータ版の機能で、v1p1beta1 でのみ使用できます。すべての標準的な MP3 ビットレート(32~320 kbps の範囲)をサポートします。このエンコードを使用する場合、sampleRateHertz は、使用するファイルのサンプルレートと一致する必要があります。
WEBM_OPUS WebM コンテナ(WebM)内の Opus でエンコードされた音声フレーム。sampleRateHertz は 8,000、12,000、16,000、24,000、48,000 のいずれかにする必要があります。
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)

Augmented Backus-Naur Form(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)

置換エントリのリスト。交換は 1 回のエントリで 1 つずつ行います。たとえば、["cat" => "dog", "mountain cat" => "mountain dog"] の 2 番目のエントリは、常に最初のエントリが処理されるため、適用されません。最大 100 個のエントリ。

エントリ

単一の置換構成。

JSON 表現
{
  "search": string,
  "replace": string,
  "caseSensitive": boolean
}
フィールド
search

string

置き換える内容。最大長は 100 文字です。

replace

string

置き換える内容。最大長は 100 文字です。

caseSensitive

boolean

検索で大文字と小文字が区別されるかどうか。

SpeechContext

結果の中の特定の語句を優先するように、音声認識機能に「ヒント」を提供します。

JSON 表現
{
  "phrases": [
    string
  ],
  "boost": number
}
フィールド
phrases[]

string

音声認識で認識されやすくするための単語やフレーズの「ヒント」を含む文字列のリスト。これは、特定の語句の精度を向上させるために使用できます。たとえば、ユーザーによって特定のコマンドがよく話されている場合が挙げられます。また、認識機能の語彙に語句を追加するためにも使用できます。詳しくは、使用制限をご覧ください。

リスト項目は、自然言語で一般的な概念を表す単語のグループのクラスに設定することもできます。たとえば、1 年のすべての月に対してフレーズ ヒントを提供するのではなく、$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」、「Cardioid Microphone」など。

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 複数の人による会話やディスカッション。たとえば、2 人以上の人が積極的に参加している会議がこれに該当します。通常は主要な話者がすべて同じ部屋にいます(そうでない場合は PHONE_CALL を参照)。
PRESENTATION 1 人または複数の人による他者への講義やプレゼンテーション。ほとんど中断されずに進行します。
PHONE_CALL 同じ部屋にいない 2 人以上の人が積極的に参加している電話またはビデオ会議。
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 音声は屋内で録音されました。