Enum RecognitionConfig.AudioEncoding (4.23.0)

public enum RecognitionConfig.AudioEncoding extends Enum<RecognitionConfig.AudioEncoding> implements ProtocolMessageEnum

The encoding of the audio data sent in the request.

All encodings support only 1 channel (mono) audio, unless the audio_channel_count and enable_separate_recognition_per_channel fields are set.

For best results, the audio source should be captured and transmitted using a lossless encoding (FLAC or LINEAR16). The accuracy of the speech recognition can be reduced if lossy codecs are used to capture or transmit audio, particularly if background noise is present. Lossy codecs include MULAW, AMR, AMR_WB, OGG_OPUS, SPEEX_WITH_HEADER_BYTE, MP3, and WEBM_OPUS.

The FLAC and WAV audio file formats include a header that describes the included audio content. You can request recognition for WAV files that contain either LINEAR16 or MULAW encoded audio. If you send FLAC or WAV audio file format in your request, you do not need to specify an AudioEncoding; the audio encoding format is determined from the file header. If you specify an AudioEncoding when you send send FLAC or WAV audio, the encoding configuration must match the encoding described in the audio header; otherwise the request returns an google.rpc.Code.INVALID_ARGUMENT error code.

Protobuf enum google.cloud.speech.v1.RecognitionConfig.AudioEncoding

Implements

ProtocolMessageEnum

Static Fields

NameDescription
AMR

Adaptive Multi-Rate Narrowband codec. sample_rate_hertz must be 8000.

AMR = 4;

AMR_VALUE

Adaptive Multi-Rate Narrowband codec. sample_rate_hertz must be 8000.

AMR = 4;

AMR_WB

Adaptive Multi-Rate Wideband codec. sample_rate_hertz must be 16000.

AMR_WB = 5;

AMR_WB_VALUE

Adaptive Multi-Rate Wideband codec. sample_rate_hertz must be 16000.

AMR_WB = 5;

ENCODING_UNSPECIFIED

Not specified.

ENCODING_UNSPECIFIED = 0;

ENCODING_UNSPECIFIED_VALUE

Not specified.

ENCODING_UNSPECIFIED = 0;

FLAC

FLAC (Free Lossless Audio Codec) is the recommended encoding because it is lossless--therefore recognition is not compromised--and requires only about half the bandwidth of LINEAR16. FLAC stream encoding supports 16-bit and 24-bit samples, however, not all fields in STREAMINFO are supported.

FLAC = 2;

FLAC_VALUE

FLAC (Free Lossless Audio Codec) is the recommended encoding because it is lossless--therefore recognition is not compromised--and requires only about half the bandwidth of LINEAR16. FLAC stream encoding supports 16-bit and 24-bit samples, however, not all fields in STREAMINFO are supported.

FLAC = 2;

LINEAR16

Uncompressed 16-bit signed little-endian samples (Linear PCM).

LINEAR16 = 1;

LINEAR16_VALUE

Uncompressed 16-bit signed little-endian samples (Linear PCM).

LINEAR16 = 1;

MULAW

8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.

MULAW = 3;

MULAW_VALUE

8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.

MULAW = 3;

OGG_OPUS

Opus encoded audio frames in Ogg container (OggOpus). sample_rate_hertz must be one of 8000, 12000, 16000, 24000, or 48000.

OGG_OPUS = 6;

OGG_OPUS_VALUE

Opus encoded audio frames in Ogg container (OggOpus). sample_rate_hertz must be one of 8000, 12000, 16000, 24000, or 48000.

OGG_OPUS = 6;

SPEEX_WITH_HEADER_BYTE

Although the use of lossy encodings is not recommended, if a very low bitrate encoding is required, OGG_OPUS is highly preferred over Speex encoding. The Speex encoding supported by Cloud Speech API has a header byte in each block, as in MIME type audio/x-speex-with-header-byte. It is a variant of the RTP Speex encoding defined in RFC 5574. The stream is a sequence of blocks, one block per RTP packet. Each block starts with a byte containing the length of the block, in bytes, followed by one or more frames of Speex data, padded to an integral number of bytes (octets) as specified in RFC 5574. In other words, each RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. sample_rate_hertz must be 16000.

SPEEX_WITH_HEADER_BYTE = 7;

SPEEX_WITH_HEADER_BYTE_VALUE

Although the use of lossy encodings is not recommended, if a very low bitrate encoding is required, OGG_OPUS is highly preferred over Speex encoding. The Speex encoding supported by Cloud Speech API has a header byte in each block, as in MIME type audio/x-speex-with-header-byte. It is a variant of the RTP Speex encoding defined in RFC 5574. The stream is a sequence of blocks, one block per RTP packet. Each block starts with a byte containing the length of the block, in bytes, followed by one or more frames of Speex data, padded to an integral number of bytes (octets) as specified in RFC 5574. In other words, each RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. sample_rate_hertz must be 16000.

SPEEX_WITH_HEADER_BYTE = 7;

UNRECOGNIZED
WEBM_OPUS

Opus encoded audio frames in WebM container (OggOpus). sample_rate_hertz must be one of 8000, 12000, 16000, 24000, or 48000.

WEBM_OPUS = 9;

WEBM_OPUS_VALUE

Opus encoded audio frames in WebM container (OggOpus). sample_rate_hertz must be one of 8000, 12000, 16000, 24000, or 48000.

WEBM_OPUS = 9;

Static Methods

NameDescription
forNumber(int value)
getDescriptor()
internalGetValueMap()
valueOf(Descriptors.EnumValueDescriptor desc)
valueOf(int value)

Deprecated. Use #forNumber(int) instead.

valueOf(String name)
values()

Methods

NameDescription
getDescriptorForType()
getNumber()
getValueDescriptor()