/** * Copyright 2018 IBM 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 { AxiosResponse } from 'axios'; import { BaseService } from 'ibm-cloud-sdk-core'; import { FileObject } from 'ibm-cloud-sdk-core'; /** * ### Service Overview The IBM® Text to Speech service provides APIs that use IBM's speech-synthesis capabilities to synthesize text into natural-sounding speech in a variety of languages, dialects, and voices. The service supports at least one male or female voice, sometimes both, for each language. The audio is streamed back to the client with minimal delay. For speech synthesis, the service supports a synchronous HTTP Representational State Transfer (REST) interface. It also supports a WebSocket interface that provides both plain text and SSML input, including the SSML <mark> element and word timings. SSML is an XML-based markup language that provides text annotation for speech-synthesis applications. The service also offers a customization interface. You can use the interface to define sounds-like or phonetic translations for words. A sounds-like translation consists of one or more words that, when combined, sound like the word. A phonetic translation is based on the SSML phoneme format for representing a word. You can specify a phonetic translation in standard International Phonetic Alphabet (IPA) representation or in the proprietary IBM Symbolic Phonetic Representation (SPR). */ declare class TextToSpeechV1 extends BaseService { static URL: string; name: string; serviceVersion: string; /** * Construct a TextToSpeechV1 object. * * @param {Object} options - Options for the service. * @param {string} [options.url] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/text-to-speech/api'). The base url may differ between Bluemix regions. * @param {string} [options.username] - The username used to authenticate with the service. Username and password credentials are only required to run your application locally or outside of Bluemix. When running on Bluemix, the credentials will be automatically loaded from the `VCAP_SERVICES` environment variable. * @param {string} [options.password] - The password used to authenticate with the service. Username and password credentials are only required to run your application locally or outside of Bluemix. When running on Bluemix, the credentials will be automatically loaded from the `VCAP_SERVICES` environment variable. * @param {string} [options.iam_access_token] - An IAM access token fully managed by the application. Responsibility falls on the application to refresh the token, either before it expires or reactively upon receiving a 401 from the service, as any requests made with an expired token will fail. * @param {string} [options.iam_apikey] - An API key that can be used to request IAM tokens. If this API key is provided, the SDK will manage the token and handle the refreshing. * @param {string} [options.iam_url] - An optional URL for the IAM service API. Defaults to 'https://iam.bluemix.net/identity/token'. * @param {boolean} [options.use_unauthenticated] - Set to `true` to avoid including an authorization header. This option may be useful for requests that are proxied. * @param {Object} [options.headers] - Default headers that shall be included with every request to the service. * @param {boolean} [options.headers.X-Watson-Learning-Opt-Out] - Set to `true` to opt-out of data collection. By default, all IBM Watson services log requests and their results. Logging is done only to improve the services for future users. The logged data is not shared or made public. If you are concerned with protecting the privacy of users' personal information or otherwise do not want your requests to be logged, you can opt out of logging. * @constructor * @returns {TextToSpeechV1} */ constructor(options: TextToSpeechV1.Options); /************************* * voices ************************/ /** * Get a voice. * * Gets information about the specified voice. The information includes the name, language, gender, and other details * about the voice. Specify a customization ID to obtain information for that custom voice model of the specified * voice. To list information about all available voices, use the **List voices** method. * * **See also:** [Listing a specific voice](https://cloud.ibm.com/docs/services/text-to-speech/voices.html#listVoice). * * @param {Object} params - The parameters to send to the service. * @param {string} params.voice - The voice for which information is to be returned. * @param {string} [params.customization_id] - The customization ID (GUID) of a custom voice model for which * information is to be returned. You must make the request with service credentials created for the instance of the * service that owns the custom model. Omit the parameter to see information about the specified voice with no * customization. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ getVoice(params: TextToSpeechV1.GetVoiceParams, callback?: TextToSpeechV1.Callback): Promise | void; /** * List voices. * * Lists all voices available for use with the service. The information includes the name, language, gender, and other * details about the voice. To see information about a specific voice, use the **Get a voice** method. * * **See also:** [Listing all available * voices](https://cloud.ibm.com/docs/services/text-to-speech/voices.html#listVoices). * * @param {Object} [params] - The parameters to send to the service. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ listVoices(params?: TextToSpeechV1.ListVoicesParams, callback?: TextToSpeechV1.Callback): Promise | void; /************************* * synthesis ************************/ /** * 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 {Object} params - The parameters to send to the service. * @param {string} params.text - The text to synthesize. * @param {string} [params.voice] - The voice to use for synthesis. * @param {string} [params.customization_id] - 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 {string} [params.accept] - 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`. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ synthesize(params: TextToSpeechV1.SynthesizeParams, callback?: TextToSpeechV1.Callback): Promise | void; /************************* * pronunciation ************************/ /** * Get pronunciation. * * Gets the phonetic pronunciation for the specified word. You can request the pronunciation for a specific format. * You can also request the pronunciation for a specific voice to see the default translation for the language of that * voice or for a specific custom voice model to see the translation for that voice model. * * **Note:** This method is currently a beta release. * * **See also:** [Querying a word from a * language](https://cloud.ibm.com/docs/services/text-to-speech/custom-entries.html#cuWordsQueryLanguage). * * @param {Object} params - The parameters to send to the service. * @param {string} params.text - The word for which the pronunciation is requested. * @param {string} [params.voice] - A voice that specifies the language in which the pronunciation is to be returned. * All voices for the same language (for example, `en-US`) return the same translation. * @param {string} [params.format] - The phoneme format in which to return the pronunciation. Omit the parameter to * obtain the pronunciation in the default format. * @param {string} [params.customization_id] - The customization ID (GUID) of a custom voice model for which the * pronunciation is to be returned. The language of a specified custom model must match the language of the specified * voice. If the word is not defined in the specified custom model, the service returns the default translation for * the custom model's language. You must make the request with service credentials created for the instance of the * service that owns the custom model. Omit the parameter to see the translation for the specified voice with no * customization. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ getPronunciation(params: TextToSpeechV1.GetPronunciationParams, callback?: TextToSpeechV1.Callback): Promise | void; /************************* * customModels ************************/ /** * Create a custom model. * * Creates a new empty custom voice model. You must specify a name for the new custom model. You can optionally * specify the language and a description for the new model. The model is owned by the instance of the service whose * credentials are used to create it. * * **Note:** This method is currently a beta release. * * **See also:** [Creating a custom * model](https://cloud.ibm.com/docs/services/text-to-speech/custom-models.html#cuModelsCreate). * * @param {Object} params - The parameters to send to the service. * @param {string} params.name - The name of the new custom voice model. * @param {string} [params.language] - The language of the new custom voice model. Omit the parameter to use the the * default language, `en-US`. * @param {string} [params.description] - A description of the new custom voice model. Specifying a description is * recommended. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ createVoiceModel(params: TextToSpeechV1.CreateVoiceModelParams, callback?: TextToSpeechV1.Callback): Promise | void; /** * Delete a custom model. * * Deletes the specified custom voice model. You must use credentials for the instance of the service that owns a * model to delete it. * * **Note:** This method is currently a beta release. * * **See also:** [Deleting a custom * model](https://cloud.ibm.com/docs/services/text-to-speech/custom-models.html#cuModelsDelete). * * @param {Object} params - The parameters to send to the service. * @param {string} params.customization_id - The customization ID (GUID) of the custom voice model. You must make the * request with service credentials created for the instance of the service that owns the custom model. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ deleteVoiceModel(params: TextToSpeechV1.DeleteVoiceModelParams, callback?: TextToSpeechV1.Callback): Promise | void; /** * Get a custom model. * * Gets all information about a specified custom voice model. In addition to metadata such as the name and description * of the voice model, the output includes the words and their translations as defined in the model. To see just the * metadata for a voice model, use the **List custom models** method. * * **Note:** This method is currently a beta release. * * **See also:** [Querying a custom * model](https://cloud.ibm.com/docs/services/text-to-speech/custom-models.html#cuModelsQuery). * * @param {Object} params - The parameters to send to the service. * @param {string} params.customization_id - The customization ID (GUID) of the custom voice model. You must make the * request with service credentials created for the instance of the service that owns the custom model. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ getVoiceModel(params: TextToSpeechV1.GetVoiceModelParams, callback?: TextToSpeechV1.Callback): Promise | void; /** * List custom models. * * Lists metadata such as the name and description for all custom voice models that are owned by an instance of the * service. Specify a language to list the voice models for that language only. To see the words in addition to the * metadata for a specific voice model, use the **List a custom model** method. You must use credentials for the * instance of the service that owns a model to list information about it. * * **Note:** This method is currently a beta release. * * **See also:** [Querying all custom * models](https://cloud.ibm.com/docs/services/text-to-speech/custom-models.html#cuModelsQueryAll). * * @param {Object} [params] - The parameters to send to the service. * @param {string} [params.language] - The language for which custom voice models that are owned by the requesting * service credentials are to be returned. Omit the parameter to see all custom voice models that are owned by the * requester. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ listVoiceModels(params?: TextToSpeechV1.ListVoiceModelsParams, callback?: TextToSpeechV1.Callback): Promise | void; /** * Update a custom model. * * Updates information for the specified custom voice model. You can update metadata such as the name and description * of the voice model. You can also update the words in the model and their translations. Adding a new translation for * a word that already exists in a custom model overwrites the word's existing translation. A custom model can contain * no more than 20,000 entries. You must use credentials for the instance of the service that owns a model to update * it. * * You can define sounds-like or phonetic translations for words. A sounds-like translation consists of one or more * words that, when combined, sound like the word. Phonetic translations are based on the SSML phoneme format for * representing a word. You can specify them in standard International Phonetic Alphabet (IPA) representation * * <phoneme alphabet=\"ipa\" ph=\"təmˈɑto\"></phoneme> * * or in the proprietary IBM Symbolic Phonetic Representation (SPR) * * <phoneme alphabet=\"ibm\" ph=\"1gAstroEntxrYFXs\"></phoneme> * * **Note:** This method is currently a beta release. * * **See also:** * * [Updating a custom model](https://cloud.ibm.com/docs/services/text-to-speech/custom-models.html#cuModelsUpdate) * * [Adding words to a Japanese custom * model](https://cloud.ibm.com/docs/services/text-to-speech/custom-entries.html#cuJapaneseAdd) * * [Understanding customization](https://cloud.ibm.com/docs/services/text-to-speech/custom-intro.html). * * @param {Object} params - The parameters to send to the service. * @param {string} params.customization_id - The customization ID (GUID) of the custom voice model. You must make the * request with service credentials created for the instance of the service that owns the custom model. * @param {string} [params.name] - A new name for the custom voice model. * @param {string} [params.description] - A new description for the custom voice model. * @param {Word[]} [params.words] - An array of `Word` objects that provides the words and their translations that are * to be added or updated for the custom voice model. Pass an empty array to make no additions or updates. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ updateVoiceModel(params: TextToSpeechV1.UpdateVoiceModelParams, callback?: TextToSpeechV1.Callback): Promise | void; /************************* * customWords ************************/ /** * Add a custom word. * * Adds a single word and its translation to the specified custom voice model. Adding a new translation for a word * that already exists in a custom model overwrites the word's existing translation. A custom model can contain no * more than 20,000 entries. You must use credentials for the instance of the service that owns a model to add a word * to it. * * You can define sounds-like or phonetic translations for words. A sounds-like translation consists of one or more * words that, when combined, sound like the word. Phonetic translations are based on the SSML phoneme format for * representing a word. You can specify them in standard International Phonetic Alphabet (IPA) representation * * <phoneme alphabet=\"ipa\" ph=\"təmˈɑto\"></phoneme> * * or in the proprietary IBM Symbolic Phonetic Representation (SPR) * * <phoneme alphabet=\"ibm\" ph=\"1gAstroEntxrYFXs\"></phoneme> * * **Note:** This method is currently a beta release. * * **See also:** * * [Adding a single word to a custom * model](https://cloud.ibm.com/docs/services/text-to-speech/custom-entries.html#cuWordAdd) * * [Adding words to a Japanese custom * model](https://cloud.ibm.com/docs/services/text-to-speech/custom-entries.html#cuJapaneseAdd) * * [Understanding customization](https://cloud.ibm.com/docs/services/text-to-speech/custom-intro.html). * * @param {Object} params - The parameters to send to the service. * @param {string} params.customization_id - The customization ID (GUID) of the custom voice model. You must make the * request with service credentials created for the instance of the service that owns the custom model. * @param {string} params.word - The word that is to be added or updated for the custom voice model. * @param {string} params.translation - The phonetic or sounds-like translation for the word. A phonetic translation * is based on the SSML format for representing the phonetic string of a word either as an IPA translation or as an * IBM SPR translation. A sounds-like is one or more words that, when combined, sound like the word. * @param {string} [params.part_of_speech] - **Japanese only.** The part of speech for the word. The service uses the * value to produce the correct intonation for the word. You can create only a single entry, with or without a single * part of speech, for any word; you cannot create multiple entries with different parts of speech for the same word. * For more information, see [Working with Japanese * entries](https://cloud.ibm.com/docs/services/text-to-speech/custom-rules.html#jaNotes). * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ addWord(params: TextToSpeechV1.AddWordParams, callback?: TextToSpeechV1.Callback): Promise | void; /** * Add custom words. * * Adds one or more words and their translations to the specified custom voice model. Adding a new translation for a * word that already exists in a custom model overwrites the word's existing translation. A custom model can contain * no more than 20,000 entries. You must use credentials for the instance of the service that owns a model to add * words to it. * * You can define sounds-like or phonetic translations for words. A sounds-like translation consists of one or more * words that, when combined, sound like the word. Phonetic translations are based on the SSML phoneme format for * representing a word. You can specify them in standard International Phonetic Alphabet (IPA) representation * * <phoneme alphabet=\"ipa\" ph=\"təmˈɑto\"></phoneme> * * or in the proprietary IBM Symbolic Phonetic Representation (SPR) * * <phoneme alphabet=\"ibm\" ph=\"1gAstroEntxrYFXs\"></phoneme> * * **Note:** This method is currently a beta release. * * **See also:** * * [Adding multiple words to a custom * model](https://cloud.ibm.com/docs/services/text-to-speech/custom-entries.html#cuWordsAdd) * * [Adding words to a Japanese custom * model](https://cloud.ibm.com/docs/services/text-to-speech/custom-entries.html#cuJapaneseAdd) * * [Understanding customization](https://cloud.ibm.com/docs/services/text-to-speech/custom-intro.html). * * @param {Object} params - The parameters to send to the service. * @param {string} params.customization_id - The customization ID (GUID) of the custom voice model. You must make the * request with service credentials created for the instance of the service that owns the custom model. * @param {Word[]} params.words - The **Add custom words** method accepts an array of `Word` objects. Each object * provides a word that is to be added or updated for the custom voice model and the word's translation. * * The **List custom words** method returns an array of `Word` objects. Each object shows a word and its translation * from the custom voice model. The words are listed in alphabetical order, with uppercase letters listed before * lowercase letters. The array is empty if the custom model contains no words. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ addWords(params: TextToSpeechV1.AddWordsParams, callback?: TextToSpeechV1.Callback): Promise | void; /** * Delete a custom word. * * Deletes a single word from the specified custom voice model. You must use credentials for the instance of the * service that owns a model to delete its words. * * **Note:** This method is currently a beta release. * * **See also:** [Deleting a word from a custom * model](https://cloud.ibm.com/docs/services/text-to-speech/custom-entries.html#cuWordDelete). * * @param {Object} params - The parameters to send to the service. * @param {string} params.customization_id - The customization ID (GUID) of the custom voice model. You must make the * request with service credentials created for the instance of the service that owns the custom model. * @param {string} params.word - The word that is to be deleted from the custom voice model. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ deleteWord(params: TextToSpeechV1.DeleteWordParams, callback?: TextToSpeechV1.Callback): Promise | void; /** * Get a custom word. * * Gets the translation for a single word from the specified custom model. The output shows the translation as it is * defined in the model. You must use credentials for the instance of the service that owns a model to list its words. * * * **Note:** This method is currently a beta release. * * **See also:** [Querying a single word from a custom * model](https://cloud.ibm.com/docs/services/text-to-speech/custom-entries.html#cuWordQueryModel). * * @param {Object} params - The parameters to send to the service. * @param {string} params.customization_id - The customization ID (GUID) of the custom voice model. You must make the * request with service credentials created for the instance of the service that owns the custom model. * @param {string} params.word - The word that is to be queried from the custom voice model. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ getWord(params: TextToSpeechV1.GetWordParams, callback?: TextToSpeechV1.Callback): Promise | void; /** * List custom words. * * Lists all of the words and their translations for the specified custom voice model. The output shows the * translations as they are defined in the model. You must use credentials for the instance of the service that owns a * model to list its words. * * **Note:** This method is currently a beta release. * * **See also:** [Querying all words from a custom * model](https://cloud.ibm.com/docs/services/text-to-speech/custom-entries.html#cuWordsQueryModel). * * @param {Object} params - The parameters to send to the service. * @param {string} params.customization_id - The customization ID (GUID) of the custom voice model. You must make the * request with service credentials created for the instance of the service that owns the custom model. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ listWords(params: TextToSpeechV1.ListWordsParams, callback?: TextToSpeechV1.Callback): Promise | void; /************************* * userData ************************/ /** * Delete labeled data. * * Deletes all data that is associated with a specified customer ID. The method deletes all data for the customer ID, * regardless of the method by which the information was added. The method has no effect if no data is associated with * the customer ID. You must issue the request with credentials for the same instance of the service that was used to * associate the customer ID with the data. * * You associate a customer ID with data by passing the `X-Watson-Metadata` header with a request that passes the * data. * * **See also:** [Information security](https://cloud.ibm.com/docs/services/text-to-speech/information-security.html). * * @param {Object} params - The parameters to send to the service. * @param {string} params.customer_id - The customer ID for which all data is to be deleted. * @param {Object} [params.headers] - Custom request headers * @param {Function} [callback] - The callback that handles the response. * @returns {Promise|void} */ deleteUserData(params: TextToSpeechV1.DeleteUserDataParams, callback?: TextToSpeechV1.Callback): Promise | void; } /************************* * interfaces ************************/ declare namespace TextToSpeechV1 { /** Options for the `TextToSpeechV1` constructor. */ type Options = { url?: string; iam_access_token?: string; iam_apikey?: string; iam_url?: string; username?: string; password?: string; use_unauthenticated?: boolean; headers?: object; }; /** The callback for a service request. */ type Callback = (error: any, body?: T, response?: AxiosResponse) => void; /** The body of a service request that returns no response data. */ interface Empty { } /************************* * request interfaces ************************/ /** Parameters for the `getVoice` operation. */ interface GetVoiceParams { /** The voice for which information is to be returned. */ voice: GetVoiceConstants.Voice | string; /** The customization ID (GUID) of a custom voice model for which information is to be returned. You must make the request with service credentials created for the instance of the service that owns the custom model. Omit the parameter to see information about the specified voice with no customization. */ customization_id?: string; headers?: Object; return_response?: boolean; } /** Constants for the `getVoice` operation. */ namespace GetVoiceConstants { /** The voice for which information is to be returned. */ enum Voice { EN_US_ALLISONVOICE = "en-US_AllisonVoice", EN_US_ALLISONV2VOICE = "en-US_AllisonV2Voice", EN_US_LISAVOICE = "en-US_LisaVoice", EN_US_LISAV2VOICE = "en-US_LisaV2Voice", EN_US_MICHAELVOICE = "en-US_MichaelVoice", EN_US_MICHAELV2VOICE = "en-US_MichaelV2Voice", EN_GB_KATEVOICE = "en-GB_KateVoice", ES_ES_ENRIQUEVOICE = "es-ES_EnriqueVoice", ES_ES_LAURAVOICE = "es-ES_LauraVoice", ES_LA_SOFIAVOICE = "es-LA_SofiaVoice", ES_US_SOFIAVOICE = "es-US_SofiaVoice", DE_DE_BIRGITVOICE = "de-DE_BirgitVoice", DE_DE_BIRGITV2VOICE = "de-DE_BirgitV2Voice", DE_DE_DIETERVOICE = "de-DE_DieterVoice", DE_DE_DIETERV2VOICE = "de-DE_DieterV2Voice", FR_FR_RENEEVOICE = "fr-FR_ReneeVoice", IT_IT_FRANCESCAVOICE = "it-IT_FrancescaVoice", IT_IT_FRANCESCAV2VOICE = "it-IT_FrancescaV2Voice", JA_JP_EMIVOICE = "ja-JP_EmiVoice", PT_BR_ISABELAVOICE = "pt-BR_IsabelaVoice" } } /** Parameters for the `listVoices` operation. */ interface ListVoicesParams { headers?: Object; return_response?: boolean; } /** Parameters for the `synthesize` operation. */ interface SynthesizeParams { /** The text to synthesize. */ text: string; /** The voice to use for synthesis. */ voice?: SynthesizeConstants.Voice | 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. */ customization_id?: 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`. */ accept?: SynthesizeConstants.Accept | string; headers?: Object; return_response?: boolean; } /** Constants for the `synthesize` operation. */ namespace SynthesizeConstants { /** The voice to use for synthesis. */ enum Voice { EN_US_ALLISONVOICE = "en-US_AllisonVoice", EN_US_ALLISONV2VOICE = "en-US_AllisonV2Voice", EN_US_LISAVOICE = "en-US_LisaVoice", EN_US_LISAV2VOICE = "en-US_LisaV2Voice", EN_US_MICHAELVOICE = "en-US_MichaelVoice", EN_US_MICHAELV2VOICE = "en-US_MichaelV2Voice", EN_GB_KATEVOICE = "en-GB_KateVoice", ES_ES_ENRIQUEVOICE = "es-ES_EnriqueVoice", ES_ES_LAURAVOICE = "es-ES_LauraVoice", ES_LA_SOFIAVOICE = "es-LA_SofiaVoice", ES_US_SOFIAVOICE = "es-US_SofiaVoice", DE_DE_BIRGITVOICE = "de-DE_BirgitVoice", DE_DE_BIRGITV2VOICE = "de-DE_BirgitV2Voice", DE_DE_DIETERVOICE = "de-DE_DieterVoice", DE_DE_DIETERV2VOICE = "de-DE_DieterV2Voice", FR_FR_RENEEVOICE = "fr-FR_ReneeVoice", IT_IT_FRANCESCAVOICE = "it-IT_FrancescaVoice", IT_IT_FRANCESCAV2VOICE = "it-IT_FrancescaV2Voice", JA_JP_EMIVOICE = "ja-JP_EmiVoice", PT_BR_ISABELAVOICE = "pt-BR_IsabelaVoice" } /** 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`. */ enum Accept { AUDIO_BASIC = "audio/basic", AUDIO_FLAC = "audio/flac", AUDIO_L16 = "audio/l16", AUDIO_OGG = "audio/ogg", AUDIO_OGG_CODECS_OPUS = "audio/ogg;codecs=opus", AUDIO_OGG_CODECS_VORBIS = "audio/ogg;codecs=vorbis", AUDIO_MP3 = "audio/mp3", AUDIO_MPEG = "audio/mpeg", AUDIO_MULAW = "audio/mulaw", AUDIO_WAV = "audio/wav", AUDIO_WEBM = "audio/webm", AUDIO_WEBM_CODECS_OPUS = "audio/webm;codecs=opus", AUDIO_WEBM_CODECS_VORBIS = "audio/webm;codecs=vorbis" } } /** Parameters for the `getPronunciation` operation. */ interface GetPronunciationParams { /** The word for which the pronunciation is requested. */ text: string; /** A voice that specifies the language in which the pronunciation is to be returned. All voices for the same language (for example, `en-US`) return the same translation. */ voice?: GetPronunciationConstants.Voice | string; /** The phoneme format in which to return the pronunciation. Omit the parameter to obtain the pronunciation in the default format. */ format?: GetPronunciationConstants.Format | string; /** The customization ID (GUID) of a custom voice model for which the pronunciation is to be returned. The language of a specified custom model must match the language of the specified voice. If the word is not defined in the specified custom model, the service returns the default translation for the custom model's language. You must make the request with service credentials created for the instance of the service that owns the custom model. Omit the parameter to see the translation for the specified voice with no customization. */ customization_id?: string; headers?: Object; return_response?: boolean; } /** Constants for the `getPronunciation` operation. */ namespace GetPronunciationConstants { /** A voice that specifies the language in which the pronunciation is to be returned. All voices for the same language (for example, `en-US`) return the same translation. */ enum Voice { EN_US_ALLISONVOICE = "en-US_AllisonVoice", EN_US_ALLISONV2VOICE = "en-US_AllisonV2Voice", EN_US_LISAVOICE = "en-US_LisaVoice", EN_US_LISAV2VOICE = "en-US_LisaV2Voice", EN_US_MICHAELVOICE = "en-US_MichaelVoice", EN_US_MICHAELV2VOICE = "en-US_MichaelV2Voice", EN_GB_KATEVOICE = "en-GB_KateVoice", ES_ES_ENRIQUEVOICE = "es-ES_EnriqueVoice", ES_ES_LAURAVOICE = "es-ES_LauraVoice", ES_LA_SOFIAVOICE = "es-LA_SofiaVoice", ES_US_SOFIAVOICE = "es-US_SofiaVoice", DE_DE_BIRGITVOICE = "de-DE_BirgitVoice", DE_DE_BIRGITV2VOICE = "de-DE_BirgitV2Voice", DE_DE_DIETERVOICE = "de-DE_DieterVoice", DE_DE_DIETERV2VOICE = "de-DE_DieterV2Voice", FR_FR_RENEEVOICE = "fr-FR_ReneeVoice", IT_IT_FRANCESCAVOICE = "it-IT_FrancescaVoice", IT_IT_FRANCESCAV2VOICE = "it-IT_FrancescaV2Voice", JA_JP_EMIVOICE = "ja-JP_EmiVoice", PT_BR_ISABELAVOICE = "pt-BR_IsabelaVoice" } /** The phoneme format in which to return the pronunciation. Omit the parameter to obtain the pronunciation in the default format. */ enum Format { IPA = "ipa", IBM = "ibm" } } /** Parameters for the `createVoiceModel` operation. */ interface CreateVoiceModelParams { /** The name of the new custom voice model. */ name: string; /** The language of the new custom voice model. Omit the parameter to use the the default language, `en-US`. */ language?: CreateVoiceModelConstants.Language | string; /** A description of the new custom voice model. Specifying a description is recommended. */ description?: string; headers?: Object; return_response?: boolean; } /** Constants for the `createVoiceModel` operation. */ namespace CreateVoiceModelConstants { /** The language of the new custom voice model. Omit the parameter to use the the default language, `en-US`. */ enum Language { DE_DE = "de-DE", EN_US = "en-US", EN_GB = "en-GB", ES_ES = "es-ES", ES_LA = "es-LA", ES_US = "es-US", FR_FR = "fr-FR", IT_IT = "it-IT", JA_JP = "ja-JP", PT_BR = "pt-BR" } } /** Parameters for the `deleteVoiceModel` operation. */ interface DeleteVoiceModelParams { /** The customization ID (GUID) of the custom voice model. You must make the request with service credentials created for the instance of the service that owns the custom model. */ customization_id: string; headers?: Object; return_response?: boolean; } /** Parameters for the `getVoiceModel` operation. */ interface GetVoiceModelParams { /** The customization ID (GUID) of the custom voice model. You must make the request with service credentials created for the instance of the service that owns the custom model. */ customization_id: string; headers?: Object; return_response?: boolean; } /** Parameters for the `listVoiceModels` operation. */ interface ListVoiceModelsParams { /** The language for which custom voice models that are owned by the requesting service credentials are to be returned. Omit the parameter to see all custom voice models that are owned by the requester. */ language?: ListVoiceModelsConstants.Language | string; headers?: Object; return_response?: boolean; } /** Constants for the `listVoiceModels` operation. */ namespace ListVoiceModelsConstants { /** The language for which custom voice models that are owned by the requesting service credentials are to be returned. Omit the parameter to see all custom voice models that are owned by the requester. */ enum Language { DE_DE = "de-DE", EN_US = "en-US", EN_GB = "en-GB", ES_ES = "es-ES", ES_LA = "es-LA", ES_US = "es-US", FR_FR = "fr-FR", IT_IT = "it-IT", JA_JP = "ja-JP", PT_BR = "pt-BR" } } /** Parameters for the `updateVoiceModel` operation. */ interface UpdateVoiceModelParams { /** The customization ID (GUID) of the custom voice model. You must make the request with service credentials created for the instance of the service that owns the custom model. */ customization_id: string; /** A new name for the custom voice model. */ name?: string; /** A new description for the custom voice model. */ description?: string; /** An array of `Word` objects that provides the words and their translations that are to be added or updated for the custom voice model. Pass an empty array to make no additions or updates. */ words?: Word[]; headers?: Object; return_response?: boolean; } /** Parameters for the `addWord` operation. */ interface AddWordParams { /** The customization ID (GUID) of the custom voice model. You must make the request with service credentials created for the instance of the service that owns the custom model. */ customization_id: string; /** The word that is to be added or updated for the custom voice model. */ word: string; /** The phonetic or sounds-like translation for the word. A phonetic translation is based on the SSML format for representing the phonetic string of a word either as an IPA translation or as an IBM SPR translation. A sounds-like is one or more words that, when combined, sound like the word. */ translation: string; /** **Japanese only.** The part of speech for the word. The service uses the value to produce the correct intonation for the word. You can create only a single entry, with or without a single part of speech, for any word; you cannot create multiple entries with different parts of speech for the same word. For more information, see [Working with Japanese entries](https://cloud.ibm.com/docs/services/text-to-speech/custom-rules.html#jaNotes). */ part_of_speech?: AddWordConstants.PartOfSpeech | string; headers?: Object; return_response?: boolean; } /** Constants for the `addWord` operation. */ namespace AddWordConstants { /** **Japanese only.** The part of speech for the word. The service uses the value to produce the correct intonation for the word. You can create only a single entry, with or without a single part of speech, for any word; you cannot create multiple entries with different parts of speech for the same word. For more information, see [Working with Japanese entries](https://cloud.ibm.com/docs/services/text-to-speech/custom-rules.html#jaNotes). */ enum PartOfSpeech { JOSI = "Josi", MESI = "Mesi", KIGO = "Kigo", GOBI = "Gobi", DOSI = "Dosi", JODO = "Jodo", KOYU = "Koyu", STBI = "Stbi", SUJI = "Suji", KEDO = "Kedo", FUKU = "Fuku", KEYO = "Keyo", STTO = "Stto", RETA = "Reta", STZO = "Stzo", KATO = "Kato", HOKA = "Hoka" } } /** Parameters for the `addWords` operation. */ interface AddWordsParams { /** The customization ID (GUID) of the custom voice model. You must make the request with service credentials created for the instance of the service that owns the custom model. */ customization_id: string; /** The **Add custom words** method accepts an array of `Word` objects. Each object provides a word that is to be added or updated for the custom voice model and the word's translation. The **List custom words** method returns an array of `Word` objects. Each object shows a word and its translation from the custom voice model. The words are listed in alphabetical order, with uppercase letters listed before lowercase letters. The array is empty if the custom model contains no words. */ words: Word[]; headers?: Object; return_response?: boolean; } /** Parameters for the `deleteWord` operation. */ interface DeleteWordParams { /** The customization ID (GUID) of the custom voice model. You must make the request with service credentials created for the instance of the service that owns the custom model. */ customization_id: string; /** The word that is to be deleted from the custom voice model. */ word: string; headers?: Object; return_response?: boolean; } /** Parameters for the `getWord` operation. */ interface GetWordParams { /** The customization ID (GUID) of the custom voice model. You must make the request with service credentials created for the instance of the service that owns the custom model. */ customization_id: string; /** The word that is to be queried from the custom voice model. */ word: string; headers?: Object; return_response?: boolean; } /** Parameters for the `listWords` operation. */ interface ListWordsParams { /** The customization ID (GUID) of the custom voice model. You must make the request with service credentials created for the instance of the service that owns the custom model. */ customization_id: string; headers?: Object; return_response?: boolean; } /** Parameters for the `deleteUserData` operation. */ interface DeleteUserDataParams { /** The customer ID for which all data is to be deleted. */ customer_id: string; headers?: Object; return_response?: boolean; } /************************* * model interfaces ************************/ /** Pronunciation. */ interface Pronunciation { /** The pronunciation of the specified text in the requested voice and format. If a custom voice model is specified, the pronunciation also reflects that custom voice. */ pronunciation: string; } /** Describes the additional service features that are supported with the voice. */ interface SupportedFeatures { /** If `true`, the voice can be customized; if `false`, the voice cannot be customized. (Same as `customizable`.). */ custom_pronunciation: boolean; /** If `true`, the voice can be transformed by using the SSML <voice-transformation> element; if `false`, the voice cannot be transformed. */ voice_transformation: boolean; } /** Translation. */ interface Translation { /** The phonetic or sounds-like translation for the word. A phonetic translation is based on the SSML format for representing the phonetic string of a word either as an IPA translation or as an IBM SPR translation. A sounds-like is one or more words that, when combined, sound like the word. */ translation: string; /** **Japanese only.** The part of speech for the word. The service uses the value to produce the correct intonation for the word. You can create only a single entry, with or without a single part of speech, for any word; you cannot create multiple entries with different parts of speech for the same word. For more information, see [Working with Japanese entries](https://cloud.ibm.com/docs/services/text-to-speech/custom-rules.html#jaNotes). */ part_of_speech?: string; } /** Voice. */ interface Voice { /** The URI of the voice. */ url: string; /** The gender of the voice: `male` or `female`. */ gender: string; /** The name of the voice. Use this as the voice identifier in all requests. */ name: string; /** The language and region of the voice (for example, `en-US`). */ language: string; /** A textual description of the voice. */ description: string; /** If `true`, the voice can be customized; if `false`, the voice cannot be customized. (Same as `custom_pronunciation`; maintained for backward compatibility.). */ customizable: boolean; /** Describes the additional service features that are supported with the voice. */ supported_features: SupportedFeatures; /** Returns information about a specified custom voice model. This field is returned only by the **Get a voice** method and only when you specify the customization ID of a custom voice model. */ customization?: VoiceModel; } /** VoiceModel. */ interface VoiceModel { /** The customization ID (GUID) of the custom voice model. The **Create a custom model** method returns only this field. It does not not return the other fields of this object. */ customization_id: string; /** The name of the custom voice model. */ name?: string; /** The language identifier of the custom voice model (for example, `en-US`). */ language?: string; /** The GUID of the service credentials for the instance of the service that owns the custom voice model. */ owner?: string; /** The date and time in Coordinated Universal Time (UTC) at which the custom voice model was created. The value is provided in full ISO 8601 format (`YYYY-MM-DDThh:mm:ss.sTZD`). */ created?: string; /** The date and time in Coordinated Universal Time (UTC) at which the custom voice model was last modified. Equals `created` when a new voice model is first added but has yet to be updated. The value is provided in full ISO 8601 format (`YYYY-MM-DDThh:mm:ss.sTZD`). */ last_modified?: string; /** The description of the custom voice model. */ description?: string; /** An array of `Word` objects that lists the words and their translations from the custom voice model. The words are listed in alphabetical order, with uppercase letters listed before lowercase letters. The array is empty if the custom model contains no words. This field is returned only by the **Get a voice** method and only when you specify the customization ID of a custom voice model. */ words?: Word[]; } /** VoiceModels. */ interface VoiceModels { /** An array of `VoiceModel` objects that provides information about each available custom voice model. The array is empty if the requesting service credentials own no custom voice models (if no language is specified) or own no custom voice models for the specified language. */ customizations: VoiceModel[]; } /** Voices. */ interface Voices { /** A list of available voices. */ voices: Voice[]; } /** Word. */ interface Word { /** A word from the custom voice model. */ word: string; /** The phonetic or sounds-like translation for the word. A phonetic translation is based on the SSML format for representing the phonetic string of a word either as an IPA or IBM SPR translation. A sounds-like translation consists of one or more words that, when combined, sound like the word. */ translation: string; /** **Japanese only.** The part of speech for the word. The service uses the value to produce the correct intonation for the word. You can create only a single entry, with or without a single part of speech, for any word; you cannot create multiple entries with different parts of speech for the same word. For more information, see [Working with Japanese entries](https://cloud.ibm.com/docs/services/text-to-speech/custom-rules.html#jaNotes). */ part_of_speech?: string; } /** Words. */ interface Words { /** The **Add custom words** method accepts an array of `Word` objects. Each object provides a word that is to be added or updated for the custom voice model and the word's translation. The **List custom words** method returns an array of `Word` objects. Each object shows a word and its translation from the custom voice model. The words are listed in alphabetical order, with uppercase letters listed before lowercase letters. The array is empty if the custom model contains no words. */ words: Word[]; } } export = TextToSpeechV1;