// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/texttospeech/v1beta1/cloud_tts.proto

package com.google.cloud.texttospeech.v1beta1;

public interface AudioConfigOrBuilder extends
    // @@protoc_insertion_point(interface_extends:google.cloud.texttospeech.v1beta1.AudioConfig)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * Required. The format of the requested audio byte stream.
   * </pre>
   *
   * <code>.google.cloud.texttospeech.v1beta1.AudioEncoding audio_encoding = 1;</code>
   */
  int getAudioEncodingValue();
  /**
   * <pre>
   * Required. The format of the requested audio byte stream.
   * </pre>
   *
   * <code>.google.cloud.texttospeech.v1beta1.AudioEncoding audio_encoding = 1;</code>
   */
  com.google.cloud.texttospeech.v1beta1.AudioEncoding getAudioEncoding();

  /**
   * <pre>
   * Optional speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal
   * native speed supported by the specific voice. 2.0 is twice as fast, and
   * 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any
   * other values &lt; 0.25 or &gt; 4.0 will return an error.
   * </pre>
   *
   * <code>double speaking_rate = 2;</code>
   */
  double getSpeakingRate();

  /**
   * <pre>
   * Optional speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20
   * semitones from the original pitch. -20 means decrease 20 semitones from the
   * original pitch.
   * </pre>
   *
   * <code>double pitch = 3;</code>
   */
  double getPitch();

  /**
   * <pre>
   * Optional volume gain (in dB) of the normal native volume supported by the
   * specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of
   * 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB)
   * will play at approximately half the amplitude of the normal native signal
   * amplitude. A value of +6.0 (dB) will play at approximately twice the
   * amplitude of the normal native signal amplitude. Strongly recommend not to
   * exceed +10 (dB) as there's usually no effective increase in loudness for
   * any value greater than that.
   * </pre>
   *
   * <code>double volume_gain_db = 4;</code>
   */
  double getVolumeGainDb();

  /**
   * <pre>
   * The synthesis sample rate (in hertz) for this audio. Optional.  If this is
   * different from the voice's natural sample rate, then the synthesizer will
   * honor this request by converting to the desired sample rate (which might
   * result in worse audio quality), unless the specified sample rate is not
   * supported for the encoding chosen, in which case it will fail the request
   * and return [google.rpc.Code.INVALID_ARGUMENT][].
   * </pre>
   *
   * <code>int32 sample_rate_hertz = 5;</code>
   */
  int getSampleRateHertz();

  /**
   * <pre>
   * An identifier which selects 'audio effects' profiles that are applied on
   * (post synthesized) text to speech.
   * Effects are applied on top of each other in the order they are given.
   * </pre>
   *
   * <code>repeated string effects_profile_id = 6;</code>
   */
  java.util.List<java.lang.String>
      getEffectsProfileIdList();
  /**
   * <pre>
   * An identifier which selects 'audio effects' profiles that are applied on
   * (post synthesized) text to speech.
   * Effects are applied on top of each other in the order they are given.
   * </pre>
   *
   * <code>repeated string effects_profile_id = 6;</code>
   */
  int getEffectsProfileIdCount();
  /**
   * <pre>
   * An identifier which selects 'audio effects' profiles that are applied on
   * (post synthesized) text to speech.
   * Effects are applied on top of each other in the order they are given.
   * </pre>
   *
   * <code>repeated string effects_profile_id = 6;</code>
   */
  java.lang.String getEffectsProfileId(int index);
  /**
   * <pre>
   * An identifier which selects 'audio effects' profiles that are applied on
   * (post synthesized) text to speech.
   * Effects are applied on top of each other in the order they are given.
   * </pre>
   *
   * <code>repeated string effects_profile_id = 6;</code>
   */
  com.google.protobuf.ByteString
      getEffectsProfileIdBytes(int index);
}
