{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage your data across Google Cloud Platform services"
        }
      }
    }
  },
  "basePath": "",
  "baseUrl": "https://texttospeech.googleapis.com/",
  "batchPath": "batch",
  "canonicalName": "Texttospeech",
  "description": "Synthesizes natural-sounding speech by applying powerful neural network models.",
  "discoveryVersion": "v1",
  "documentationLink": "https://cloud.google.com/text-to-speech/",
  "fullyEncodeReservedExpansion": true,
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "id": "texttospeech:v1beta1",
  "kind": "discovery#restDescription",
  "name": "texttospeech",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "parameters": {
    "$.xgafv": {
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "default": "json",
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    }
  },
  "protocol": "rest",
  "resources": {
    "text": {
      "methods": {
        "synthesize": {
          "description": "Synthesizes speech synchronously: receive results after all text input\nhas been processed.",
          "flatPath": "v1beta1/text:synthesize",
          "httpMethod": "POST",
          "id": "texttospeech.text.synthesize",
          "parameterOrder": [],
          "parameters": {},
          "path": "v1beta1/text:synthesize",
          "request": {
            "$ref": "SynthesizeSpeechRequest"
          },
          "response": {
            "$ref": "SynthesizeSpeechResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        }
      }
    },
    "voices": {
      "methods": {
        "list": {
          "description": "Returns a list of Voice supported for synthesis.",
          "flatPath": "v1beta1/voices",
          "httpMethod": "GET",
          "id": "texttospeech.voices.list",
          "parameterOrder": [],
          "parameters": {
            "languageCode": {
              "description": "Optional (but recommended)\n[BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. If\nspecified, the ListVoices call will only return voices that can be used to\nsynthesize this language_code. E.g. when specifying \"en-NZ\", you will get\nsupported \"en-*\" voices; when specifying \"no\", you will get supported\n\"no-*\" (Norwegian) and \"nb-*\" (Norwegian Bokmal) voices; specifying \"zh\"\nwill also get supported \"cmn-*\" voices; specifying \"zh-hk\" will also get\nsupported \"yue-*\" voices.",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1beta1/voices",
          "response": {
            "$ref": "ListVoicesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        }
      }
    }
  },
  "revision": "20190329",
  "rootUrl": "https://texttospeech.googleapis.com/",
  "schemas": {
    "AudioConfig": {
      "description": "Description of audio data to be synthesized.",
      "id": "AudioConfig",
      "properties": {
        "audioEncoding": {
          "description": "Required. The format of the requested audio byte stream.",
          "enum": [
            "AUDIO_ENCODING_UNSPECIFIED",
            "LINEAR16",
            "MP3",
            "OGG_OPUS"
          ],
          "enumDescriptions": [
            "Not specified. Will return result google.rpc.Code.INVALID_ARGUMENT.",
            "Uncompressed 16-bit signed little-endian samples (Linear PCM).\nAudio content returned as LINEAR16 also contains a WAV header.",
            "MP3 audio at 32kbps.",
            "Opus encoded audio wrapped in an ogg container. The result will be a\nfile which can be played natively on Android, and in browsers (at least\nChrome and Firefox). The quality of the encoding is considerably higher\nthan MP3 while using approximately the same bitrate."
          ],
          "type": "string"
        },
        "effectsProfileId": {
          "description": "An identifier which selects 'audio effects' profiles that are applied on\n(post synthesized) text to speech.\nEffects are applied on top of each other in the order they are given.\nSee\n\n[audio-profiles](https:\n//cloud.google.com/text-to-speech/docs/audio-profiles)\nfor current supported profile ids.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "pitch": {
          "description": "Optional speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20\nsemitones from the original pitch. -20 means decrease 20 semitones from the\noriginal pitch.",
          "format": "double",
          "type": "number"
        },
        "sampleRateHertz": {
          "description": "The synthesis sample rate (in hertz) for this audio. Optional.  If this is\ndifferent from the voice's natural sample rate, then the synthesizer will\nhonor this request by converting to the desired sample rate (which might\nresult in worse audio quality), unless the specified sample rate is not\nsupported for the encoding chosen, in which case it will fail the request\nand return google.rpc.Code.INVALID_ARGUMENT.",
          "format": "int32",
          "type": "integer"
        },
        "speakingRate": {
          "description": "Optional speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal\nnative speed supported by the specific voice. 2.0 is twice as fast, and\n0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any\nother values \u003c 0.25 or \u003e 4.0 will return an error.",
          "format": "double",
          "type": "number"
        },
        "volumeGainDb": {
          "description": "Optional volume gain (in dB) of the normal native volume supported by the\nspecific voice, in the range [-96.0, 16.0]. If unset, or set to a value of\n0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB)\nwill play at approximately half the amplitude of the normal native signal\namplitude. A value of +6.0 (dB) will play at approximately twice the\namplitude of the normal native signal amplitude. Strongly recommend not to\nexceed +10 (dB) as there's usually no effective increase in loudness for\nany value greater than that.",
          "format": "double",
          "type": "number"
        }
      },
      "type": "object"
    },
    "ListVoicesResponse": {
      "description": "The message returned to the client by the `ListVoices` method.",
      "id": "ListVoicesResponse",
      "properties": {
        "voices": {
          "description": "The list of voices.",
          "items": {
            "$ref": "Voice"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "SynthesisInput": {
      "description": "Contains text input to be synthesized. Either `text` or `ssml` must be\nsupplied. Supplying both or neither returns\ngoogle.rpc.Code.INVALID_ARGUMENT. The input size is limited to 5000\ncharacters.",
      "id": "SynthesisInput",
      "properties": {
        "ssml": {
          "description": "The SSML document to be synthesized. The SSML document must be valid\nand well-formed. Otherwise the RPC will fail and return\ngoogle.rpc.Code.INVALID_ARGUMENT. For more information, see\n[SSML](/speech/text-to-speech/docs/ssml).",
          "type": "string"
        },
        "text": {
          "description": "The raw text to be synthesized.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SynthesizeSpeechRequest": {
      "description": "The top-level message sent by the client for the `SynthesizeSpeech` method.",
      "id": "SynthesizeSpeechRequest",
      "properties": {
        "audioConfig": {
          "$ref": "AudioConfig",
          "description": "Required. The configuration of the synthesized audio."
        },
        "input": {
          "$ref": "SynthesisInput",
          "description": "Required. The Synthesizer requires either plain text or SSML as input."
        },
        "voice": {
          "$ref": "VoiceSelectionParams",
          "description": "Required. The desired voice of the synthesized audio."
        }
      },
      "type": "object"
    },
    "SynthesizeSpeechResponse": {
      "description": "The message returned to the client by the `SynthesizeSpeech` method.",
      "id": "SynthesizeSpeechResponse",
      "properties": {
        "audioContent": {
          "description": "The audio data bytes encoded as specified in the request, including the\nheader (For LINEAR16 audio, we include the WAV header). Note: as\nwith all bytes fields, protobuffers use a pure binary representation,\nwhereas JSON representations use base64.",
          "format": "byte",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Voice": {
      "description": "Description of a voice supported by the TTS service.",
      "id": "Voice",
      "properties": {
        "languageCodes": {
          "description": "The languages that this voice supports, expressed as\n[BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tags (e.g.\n\"en-US\", \"es-419\", \"cmn-tw\").",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of this voice.  Each distinct voice has a unique name.",
          "type": "string"
        },
        "naturalSampleRateHertz": {
          "description": "The natural sample rate (in hertz) for this voice.",
          "format": "int32",
          "type": "integer"
        },
        "ssmlGender": {
          "description": "The gender of this voice.",
          "enum": [
            "SSML_VOICE_GENDER_UNSPECIFIED",
            "MALE",
            "FEMALE",
            "NEUTRAL"
          ],
          "enumDescriptions": [
            "An unspecified gender.\nIn VoiceSelectionParams, this means that the client doesn't care which\ngender the selected voice will have. In the Voice field of\nListVoicesResponse, this may mean that the voice doesn't fit any of the\nother categories in this enum, or that the gender of the voice isn't known.",
            "A male voice.",
            "A female voice.",
            "A gender-neutral voice."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "VoiceSelectionParams": {
      "description": "Description of which voice to use for a synthesis request.",
      "id": "VoiceSelectionParams",
      "properties": {
        "languageCode": {
          "description": "The language (and optionally also the region) of the voice expressed as a\n[BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag, e.g.\n\"en-US\". Required. This should not include a script tag (e.g. use\n\"cmn-cn\" rather than \"cmn-Hant-cn\"), because the script will be inferred\nfrom the input provided in the SynthesisInput.  The TTS service\nwill use this parameter to help choose an appropriate voice.  Note that\nthe TTS service may choose a voice with a slightly different language code\nthan the one selected; it may substitute a different region\n(e.g. using en-US rather than en-CA if there isn't a Canadian voice\navailable), or even a different language, e.g. using \"nb\" (Norwegian\nBokmal) instead of \"no\" (Norwegian)\".",
          "type": "string"
        },
        "name": {
          "description": "The name of the voice. Optional; if not set, the service will choose a\nvoice based on the other parameters such as language_code and gender.",
          "type": "string"
        },
        "ssmlGender": {
          "description": "The preferred gender of the voice. Optional; if not set, the service will\nchoose a voice based on the other parameters such as language_code and\nname. Note that this is only a preference, not requirement; if a\nvoice of the appropriate gender is not available, the synthesizer should\nsubstitute a voice with a different gender rather than failing the request.",
          "enum": [
            "SSML_VOICE_GENDER_UNSPECIFIED",
            "MALE",
            "FEMALE",
            "NEUTRAL"
          ],
          "enumDescriptions": [
            "An unspecified gender.\nIn VoiceSelectionParams, this means that the client doesn't care which\ngender the selected voice will have. In the Voice field of\nListVoicesResponse, this may mean that the voice doesn't fit any of the\nother categories in this enum, or that the gender of the voice isn't known.",
            "A male voice.",
            "A female voice.",
            "A gender-neutral voice."
          ],
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "title": "Cloud Text-to-Speech API",
  "version": "v1beta1",
  "version_module": true
}