UNPKG

googleapis

Version:
236 lines (235 loc) 9.75 kB
/** * Copyright 2015 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { AxiosPromise } from 'axios'; import { GoogleApis } from '../..'; import { BodyResponseCallback, GlobalOptions, MethodOptions } from '../../lib/api'; /** * Cloud Text-to-Speech API * * Synthesizes natural-sounding speech by applying powerful neural network * models. * * @example * const google = require('googleapis'); * const texttospeech = google.texttospeech('v1beta1'); * * @namespace texttospeech * @type {Function} * @version v1beta1 * @variation v1beta1 * @param {object=} options Options for Texttospeech */ export declare class Texttospeech { _options: GlobalOptions; google: GoogleApis; root: this; text: Resource$Text; voices: Resource$Voices; constructor(options: GlobalOptions, google: GoogleApis); getRoot(): this; } /** * Description of audio data to be synthesized. */ export interface Schema$AudioConfig { /** * Required. The format of the requested audio byte stream. */ audioEncoding: string; /** * 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. */ pitch: number; /** * The synthesis sample rate (in hertz) for this audio. Optional. If this is * different from the voice&#39;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. */ sampleRateHertz: number; /** * 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. */ speakingRate: number; /** * 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&#39;s usually no effective increase in loudness * for any value greater than that. */ volumeGainDb: number; } /** * The message returned to the client by the `ListVoices` method. */ export interface Schema$ListVoicesResponse { /** * The list of voices. */ voices: Schema$Voice[]; } /** * Contains text input to be synthesized. Either `text` or `ssml` must be * supplied. Supplying both or neither returns google.rpc.Code.INVALID_ARGUMENT. * The input size is limited to 5000 characters. */ export interface Schema$SynthesisInput { /** * The SSML document to be synthesized. The SSML document must be valid and * well-formed. Otherwise the RPC will fail and return * google.rpc.Code.INVALID_ARGUMENT. For more information, see * [SSML](/speech/text-to-speech/docs/ssml). */ ssml: string; /** * The raw text to be synthesized. */ text: string; } /** * The top-level message sent by the client for the `SynthesizeSpeech` method. */ export interface Schema$SynthesizeSpeechRequest { /** * Required. The configuration of the synthesized audio. */ audioConfig: Schema$AudioConfig; /** * Required. The Synthesizer requires either plain text or SSML as input. */ input: Schema$SynthesisInput; /** * Required. The desired voice of the synthesized audio. */ voice: Schema$VoiceSelectionParams; } /** * The message returned to the client by the `SynthesizeSpeech` method. */ export interface Schema$SynthesizeSpeechResponse { /** * The audio data bytes encoded as specified in the request, including the * header (For LINEAR16 audio, we include the WAV header). Note: as with all * bytes fields, protobuffers use a pure binary representation, whereas JSON * representations use base64. */ audioContent: string; } /** * Description of a voice supported by the TTS service. */ export interface Schema$Voice { /** * The languages that this voice supports, expressed as * [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tags (e.g. * &quot;en-US&quot;, &quot;es-419&quot;, &quot;cmn-tw&quot;). */ languageCodes: string[]; /** * The name of this voice. Each distinct voice has a unique name. */ name: string; /** * The natural sample rate (in hertz) for this voice. */ naturalSampleRateHertz: number; /** * The gender of this voice. */ ssmlGender: string; } /** * Description of which voice to use for a synthesis request. */ export interface Schema$VoiceSelectionParams { /** * The language (and optionally also the region) of the voice expressed as a * [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag, e.g. * &quot;en-US&quot;. Required. This should not include a script tag (e.g. use * &quot;cmn-cn&quot; rather than &quot;cmn-Hant-cn&quot;), because the script * will be inferred from the input provided in the SynthesisInput. The TTS * service will use this parameter to help choose an appropriate voice. Note * that the TTS service may choose a voice with a slightly different language * code than the one selected; it may substitute a different region (e.g. * using en-US rather than en-CA if there isn&#39;t a Canadian voice * available), or even a different language, e.g. using &quot;nb&quot; * (Norwegian Bokmal) instead of &quot;no&quot; (Norwegian)&quot;. */ languageCode: string; /** * The name of the voice. Optional; if not set, the service will choose a * voice based on the other parameters such as language_code and gender. */ name: string; /** * The preferred gender of the voice. Optional; if not set, the service will * choose a voice based on the other parameters such as language_code and * name. Note that this is only a preference, not requirement; if a voice of * the appropriate gender is not available, the synthesizer should substitute * a voice with a different gender rather than failing the request. */ ssmlGender: string; } export declare class Resource$Text { root: Texttospeech; constructor(root: Texttospeech); getRoot(): Texttospeech; /** * texttospeech.text.synthesize * @desc Synthesizes speech synchronously: receive results after all text * input has been processed. * @alias texttospeech.text.synthesize * @memberOf! () * * @param {object} params Parameters for request * @param {().SynthesizeSpeechRequest} params.resource Request body data * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ synthesize(params?: any, options?: MethodOptions): AxiosPromise<Schema$SynthesizeSpeechResponse>; synthesize(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$SynthesizeSpeechResponse>, callback?: BodyResponseCallback<Schema$SynthesizeSpeechResponse>): void; } export declare class Resource$Voices { root: Texttospeech; constructor(root: Texttospeech); getRoot(): Texttospeech; /** * texttospeech.voices.list * @desc Returns a list of Voice supported for synthesis. * @alias texttospeech.voices.list * @memberOf! () * * @param {object} params Parameters for request * @param {string=} params.languageCode Optional (but recommended) [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. If specified, the ListVoices call will only return voices that can be used to synthesize this language_code. E.g. when specifying "en-NZ", you will get supported "en-*" voices; when specifying "no", you will get supported "no-*" (Norwegian) and "nb-*" (Norwegian Bokmal) voices; specifying "zh" will also get supported "cmn-*" voices; specifying "zh-hk" will also get supported "yue-*" voices. * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ list(params?: any, options?: MethodOptions): AxiosPromise<Schema$ListVoicesResponse>; list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$ListVoicesResponse>, callback?: BodyResponseCallback<Schema$ListVoicesResponse>): void; }