lib/ibm_watson/text_to_speech_v1.rb
def synthesize(text:, voice: nil, customization_id: nil, accept: nil)
      raise ArgumentError.new("text must be provided") if text.nil?

      headers = {
        "Accept" => accept
      }
      sdk_headers = Common.new.get_sdk_headers("text_to_speech", "V1", "synthesize")
      headers.merge!(sdk_headers)

      params = {
        "voice" => voice,
        "customization_id" => customization_id
      }

      data = {
        "text" => text
      }

      method_url = "/v1/synthesize"

      response = request(
        method: "POST",
        url: method_url,
        headers: headers,
        params: params,
        json: data,
        accept_json: false
      )
      response
    end
def synthesize(text:, voice: nil, customization_id: nil, accept: nil)
      raise ArgumentError.new("text must be provided") if text.nil?

      headers = {
        "Accept" => accept
      }
      sdk_headers = Common.new.get_sdk_headers("text_to_speech", "V1", "synthesize")
      headers.merge!(sdk_headers)

      params = {
        "voice" => voice,
        "customization_id" => customization_id
      }

      data = {
        "text" => text
      }

      method_url = "/v1/synthesize"

      response = request(
        method: "POST",
        url: method_url,
        headers: headers,
        params: params,
        json: data,
        accept_json: false
      )
      response
    end
Synthesis


 @!method synthesize(text:, voice: nil, customization_id: nil, accept: nil)
 Synthesize audio.
 Synthesizes text to audio that is spoken in the specified voice. The service bases
   its understanding of the language for the input text on the specified voice. Use a
   voice that matches the language of the input text.

   The method accepts a maximum of 5 KB of input text in the body of the request, and
   8 KB for the URL and headers. The 5 KB limit includes any SSML tags that you
   specify. The service returns the synthesized audio stream as an array of bytes.

   **See also:** [The HTTP
   interface](https://cloud.ibm.com/docs/services/text-to-speech/http.html).

   ### Audio formats (accept types)

    The service can return audio in the following formats (MIME types).
   * Where indicated, you can optionally specify the sampling rate (`rate`) of the
   audio. You must specify a sampling rate for the `audio/l16` and `audio/mulaw`
   formats. A specified sampling rate must lie in the range of 8 kHz to 192 kHz.
   * For the `audio/l16` format, you can optionally specify the endianness
   (`endianness`) of the audio: `endianness=big-endian` or
   `endianness=little-endian`.

   Use the `Accept` header or the `accept` parameter to specify the requested format
   of the response audio. If you omit an audio format altogether, the service returns
   the audio in Ogg format with the Opus codec (`audio/ogg;codecs=opus`). The service
   always returns single-channel audio.
   * `audio/basic`

     The service returns audio with a sampling rate of 8000 Hz.
   * `audio/flac`

     You can optionally specify the `rate` of the audio. The default sampling rate is
   22,050 Hz.
   * `audio/l16`

     You must specify the `rate` of the audio. You can optionally specify the
   `endianness` of the audio. The default endianness is `little-endian`.
   * `audio/mp3`

     You can optionally specify the `rate` of the audio. The default sampling rate is
   22,050 Hz.
   * `audio/mpeg`

     You can optionally specify the `rate` of the audio. The default sampling rate is
   22,050 Hz.
   * `audio/mulaw`

     You must specify the `rate` of the audio.
   * `audio/ogg`

     The service returns the audio in the `vorbis` codec. You can optionally specify
   the `rate` of the audio. The default sampling rate is 22,050 Hz.
   * `audio/ogg;codecs=opus`

     You can optionally specify the `rate` of the audio. The default sampling rate is
   22,050 Hz.
   * `audio/ogg;codecs=vorbis`

     You can optionally specify the `rate` of the audio. The default sampling rate is
   22,050 Hz.
   * `audio/wav`

     You can optionally specify the `rate` of the audio. The default sampling rate is
   22,050 Hz.
   * `audio/webm`

     The service returns the audio in the `opus` codec. The service returns audio
   with a sampling rate of 48,000 Hz.
   * `audio/webm;codecs=opus`

     The service returns audio with a sampling rate of 48,000 Hz.
   * `audio/webm;codecs=vorbis`

     You can optionally specify the `rate` of the audio. The default sampling rate is
   22,050 Hz.

   For more information about specifying an audio format, including additional
   details about some of the formats, see [Audio
   formats](https://cloud.ibm.com/docs/services/text-to-speech/audio-formats.html).

   ### Warning messages

    If a request includes invalid query parameters, the service returns a `Warnings`
   response header that provides messages about the invalid parameters. The warning
   includes a descriptive message and a list of invalid argument strings. For
   example, a message such as `\"Unknown arguments:\"` or `\"Unknown url query
   arguments:\"` followed by a list of the form `\"{invalid_arg_1},
   {invalid_arg_2}.\"` The request succeeds despite the warnings.
 @param text [String] The text to synthesize.
 @param voice [String] The voice to use for synthesis.
 @param customization_id [String] The customization ID (GUID) of a custom voice model to use for the synthesis. If a
   custom voice model is specified, it is guaranteed to work only if it matches the
   language of the indicated voice. You must make the request with service
   credentials created for the instance of the service that owns the custom model.
   Omit the parameter to use the specified voice with no customization.
 @param accept [String] The requested format (MIME type) of the audio. You can use the `Accept` header or
   the `accept` parameter to specify the audio format. For more information about
   specifying an audio format, see **Audio formats (accept types)** in the method
   description.

   Default: `audio/ogg;codecs=opus`.
 @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.