--- openapi: 3.1.0 components: schemas: Language: type: string enum: - English - Hindi - Bengali - Marathi - Telugu - Tamil - Gujarati - Urdu - Bhojpuri - Kannada - Odia - Malayalam - Punjabi - Chhattisgarhi - Assamese - Maithili - Magahi - Santali - Kashmiri - Kashmiri_Arabic - Nepali - Sindhi - Sindhi_Arabic - Dogri - Konkani - Manipuri - Manipuri_Bengali - Bodo - Sanskrit - Auto NormalizeInput: type: object required: - text - language description: Input needed for Text Normalization. properties: text: type: string examples: - "While docking preparations are underway, SDX01 and SDX02 are 105 meters\ \ apart in orbit as of 12 January IST 3:10 a.m." description: Unicode text which needs to be normalized. language: $ref: '#/components/schemas/Language' type: string examples: - English description: Language (Indic/English) of input-text Script: type: string enum: - Devanagari - Bengali - Gurmukhi - Gujarati - Odia - Tamil - Telugu - Kannada - Malayalam - English - Urdu - OlChiki - Meitei TextToSpeechInput: type: object required: - text - language - voiceName description: Input needed for synthesizing speech. properties: text: type: string examples: - "सौर मंडल में सूर्य और वह खगोलीय पिंड सम्मलित हैं, जो इस मंडल में एक द\ ूसरे से गुरुत्वाकर्षण बल द्वारा बंधे हैं।" description: Unicode text for which speech needs to be synthesized. language: $ref: '#/components/schemas/Language' type: string examples: - Hindi description: Language (Indic/English) of input-text translateToLanguage: $ref: '#/components/schemas/Language' type: string examples: - Kannada description: "Optional. If provided, the input text is first translated\ \ into this language and then synthesized into speech in the same language." voiceName: type: string examples: - Female1 description: "Voice Name: Female1, Male1 etc." voiceStyle: $ref: '#/components/schemas/VoiceStyle' type: string examples: - Neutral description: "Voice Style: Tone or speaking manner of the generated voice." default: Neutral speechRate: type: number format: float examples: - 1.25 description: "Control the speed of the generated speech. 1.0 is normal speed,\ \ less than 1.0 is slower, greater than 1.0 is faster." default: 1.0 TranslateInput: type: object required: - inputText - inputLanguage - outputLanguage description: Input needed for Transliteration. properties: inputText: type: string examples: - Chandrayaan-3 is the third and most recent lunar Indian Space Research exploration mission under the Chandrayaan programme of ISRO. It consists of a lander named Vikram and a rover named Pragyan similar to Chandrayaan-2. Its propulsion module behaves like an Orbiter. The propulsion module carries the lander and rover configuration until the spacecraft is in a 100-kilometre (62 mi) lunar orbit. description: Unicode text which needs to be transliterated. inputLanguage: $ref: '#/components/schemas/Language' type: string examples: - English description: Source language (Indic/English) of input-text outputLanguage: $ref: '#/components/schemas/Language' type: string examples: - Hindi description: Target language (Indic/English) in to which the inputText needs to be translated to TransliterateInput: type: object required: - inputText - outputScript description: Input needed for Transliteration. properties: inputText: type: string examples: - भारत का चंद्रयान-3 मिशन के तहत भेजा गया लैंडर चंद्रमा के दक्षिणी ध्रुव की सतह पर सफलतापूर्वक उतर गया। description: Unicode text which needs to be transliterated. inputScript: $ref: '#/components/schemas/Script' type: string examples: - Devanagari description: Script in which input text is given inputLanguage: $ref: '#/components/schemas/Language' type: string examples: - Hindi description: Language of input text outputScript: $ref: '#/components/schemas/Script' type: string examples: - Kannada description: Script in which the output text is expected VoiceStyle: type: string enum: - Neutral - News - Conversational - Book - Command - Happy - Sad - Fear - Disgust - Anger - Surprise - Custom description: "Voice Style: Tone or speaking manner of the generated voice. Possible\ \ values: Neutral, Conversational, Happy, Sad, News, Command, etc." parameters: X-API-KEY: description: Specify your API key (consisting of 32 characters) for going beyond rate limits and/or getting access to premium voices in: header name: X-API-KEY schema: type: string maxLength: 32 version: description: API version (v1 or v2) in: path name: version required: true schema: enum: - v1 - v2 default: v2 securitySchemes: IdToken: type: http scheme: bearer bearerFormat: JWT JWT: type: http scheme: bearer bearerFormat: JWT info: description: "These APIs provide access to Bhashini.ai Text-to-Speech (TTS), Speech-to-Text\ \ (STT), Translation and OCR services" title: Bhashini.ai REST APIs version: 1.0.0 paths: /authorize: post: responses: "200": description: OK security: - IdToken: [] /deepdub/detect-dialogs/{jobId}: get: parameters: - name: jobId in: path required: true schema: type: string - name: includeSession in: query schema: type: boolean - $ref: '#/components/parameters/X-API-KEY' responses: "200": description: OK /deepdub/detect-dialogs/{jobId}/events: get: parameters: - name: jobId in: path required: true schema: type: string - name: includeSession in: query schema: type: boolean - $ref: '#/components/parameters/X-API-KEY' responses: "200": description: OK /deepdub/exports/{jobId}: get: parameters: - name: jobId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' responses: "200": description: OK /deepdub/exports/{jobId}/artifact: get: parameters: - name: jobId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' responses: "200": description: OK /deepdub/sessions/get-or-create: post: summary: Get or create DeepDub session by user + source + video identity parameters: - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: Resolved DeepDub session content: application/json: {} /deepdub/sessions/{sessionId}: get: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' responses: "200": description: OK delete: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' responses: "200": description: OK /deepdub/sessions/{sessionId}/artifacts/{artifactKey}: get: parameters: - name: artifactKey in: path required: true schema: type: string - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' responses: "200": description: OK /deepdub/sessions/{sessionId}/collaborators: delete: parameters: - name: sessionId in: path required: true schema: type: string - name: emailId in: query schema: type: string - $ref: '#/components/parameters/X-API-KEY' responses: "200": description: OK get: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' responses: "200": description: OK post: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/detect-dialogs: post: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: multipart/form-data: schema: type: object properties: file: type: object sourceLanguage: type: string rangeStartSec: type: string rangeEndSec: type: string minDialogSec: type: string application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/dialogs: put: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/dialogs/{dialogId}: put: parameters: - name: dialogId in: path required: true schema: type: string - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK delete: parameters: - name: dialogId in: path required: true schema: type: string - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' responses: "200": description: OK /deepdub/sessions/{sessionId}/dialogs/{dialogId}/clip: get: parameters: - name: dialogId in: path required: true schema: type: string - name: sessionId in: path required: true schema: type: string - name: targetLanguage in: query schema: $ref: '#/components/schemas/Language' - $ref: '#/components/parameters/X-API-KEY' responses: "200": description: OK /deepdub/sessions/{sessionId}/dialogs/{dialogId}/merge: post: parameters: - name: dialogId in: path required: true schema: type: string - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/dialogs/{dialogId}/split: post: parameters: - name: dialogId in: path required: true schema: type: string - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/export: post: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/extract-audio: post: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: multipart/form-data: schema: type: object properties: file: type: object rangeStartSec: type: string rangeEndSec: type: string application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/preferences: post: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/synthesize: post: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/synthesize/track: post: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/synthesize/{dialogId}: post: parameters: - name: dialogId in: path required: true schema: type: string - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/transcribe: post: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/translate: post: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK /deepdub/sessions/{sessionId}/transliterate: post: parameters: - name: sessionId in: path required: true schema: type: string - $ref: '#/components/parameters/X-API-KEY' requestBody: content: application/json: schema: type: string required: true responses: "200": description: OK /{version}/asr: post: summary: Run ASR description: Run ASR on the uploaded audio. parameters: - $ref: '#/components/parameters/X-API-KEY' - $ref: '#/components/parameters/version' requestBody: content: multipart/form-data: schema: type: object properties: file: type: - object - string format: binary language: $ref: '#/components/schemas/Language' description: Language of input-audio required: true responses: default: description: Recognized Text content: application/json: {} "200": description: Recognized text "400": description: Invalid audio file or unsupported language "401": description: Missing/Invalid X-API-KEY or JWT /{version}/normalize: post: summary: Indic Text Normalizer description: Expand numbers and abbreviations in English or Indian language text parameters: - $ref: '#/components/parameters/X-API-KEY' - $ref: '#/components/parameters/version' requestBody: content: application/json: schema: $ref: '#/components/schemas/NormalizeInput' required: true responses: default: description: Normalized text content: text/plain: {} "400": description: Invalid text/language in the request body "401": description: Missing/Invalid X-API-KEY or JWT /{version}/ocr: post: summary: Run Cloud OCR description: Run Cloud OCR on the uploaded document/image. parameters: - $ref: '#/components/parameters/X-API-KEY' - $ref: '#/components/parameters/version' requestBody: content: multipart/form-data: schema: type: object properties: file: type: - object - string format: binary required: true responses: default: description: Recognized Text content: application/xml: {} "400": description: Invalid file in the request body "401": description: Missing/Invalid X-API-KEY or JWT /{version}/synthesize: post: summary: Synthesize speech from text description: Use Bhashini.ai TTS to synthesize speech from Unicode text parameters: - $ref: '#/components/parameters/X-API-KEY' - $ref: '#/components/parameters/version' requestBody: content: application/json: schema: $ref: '#/components/schemas/TextToSpeechInput' required: true responses: default: description: Synthesized speech content: audio/mpeg: {} "400": description: Invalid language/voiceName/text in the request body "401": description: Missing/Invalid X-API-KEY or JWT /{version}/translate: post: summary: "Translate text: English->Indic or Indic->English or Indic->Indic" description: Translate text from English to Indian language or Indian language to English or from one Indian language to another. parameters: - $ref: '#/components/parameters/X-API-KEY' - $ref: '#/components/parameters/version' requestBody: content: application/json: schema: $ref: '#/components/schemas/TranslateInput' required: true responses: default: description: Text translated into target language content: text/plain: {} "400": description: Invalid inputText/inputLanguage/outputLanguage in the request body "401": description: Missing/Invalid X-API-KEY or JWT /{version}/transliterate: post: summary: Transliterate Indic text description: See Indic text in desired script parameters: - $ref: '#/components/parameters/X-API-KEY' - $ref: '#/components/parameters/version' requestBody: content: application/json: schema: $ref: '#/components/schemas/TransliterateInput' required: true responses: default: description: Text transliterated into target script content: text/plain: {} "400": description: Invalid inputText/inputScript/outputScript in the request body servers: - url: https://tts.bhashini.ai