Response Payload

This sub-page helps the integrator to understand two different types of response payload, based on different request payload.

Complete Payload

Complete Payload
{
    "languages": [
        {
            "sourceLanguage": "bn",
            "targetLanguageList": [
                "en",
                "as",
                "gu",
                "hi"              
            ]
        },
        {
            "sourceLanguage": "en",
            "targetLanguageList": [               
                "ml",
                "mr",
                "or",
                "pa",
                "ta",
                "te"
            ]
        },       
        {
            "sourceLanguage": "hi",
            "targetLanguageList": [
                "en",
                "as",
                "bn",
                "gu",
                "kn"
            ]
        }
    ],
    "pipelineResponseConfig": [
        {
            "taskType": "asr",
            "config": [
                {
                    "serviceId": "ai4bharat/conformer-multilingual-indo_aryan-gpu--t4",
                    "modelId": "6411746956e9de23f65b5426",
                    "language": {
                        "sourceLanguage": "bn"
                    },
                    "domain": [
                        "general"
                    ]
                },
                {
                    "serviceId": "ai4bharat/conformer-en-gpu--t4",
                    "modelId": "63ee09c3b95268521c70cd7c",
                    "language": {
                        "sourceLanguage": "en"
                    },
                    "domain": [
                        "general"
                    ]
                },
                {
                    "serviceId": "ai4bharat/conformer-multilingual-indo_aryan-gpu--t4",
                    "modelId": "64117455b1463435d2fbaec4",
                    "language": {
                        "sourceLanguage": "hi"
                    },
                    "domain": [
                        "general"
                    ]
                }
            ]
        },
        {
            "taskType": "tts",
            "config": [
                {
                    "serviceId": "ai4bharat/indic-tts-coqui-misc-gpu--t4",
                    "modelId": "63f7384c2ff3ab138f88c64e",
                    "language": {
                        "sourceLanguage": "en"
                    },
                    "supportedVoices": [
                        "male",
                        "female"
                    ]
                },
                {
                    "serviceId": "ai4bharat/indic-tts-coqui-indo_aryan-gpu--t4",
                    "modelId": "6348db0bfd966563f61bc2c0",
                    "language": {
                        "sourceLanguage": "as"
                    },
                    "supportedVoices": [
                        "male",
                        "female"
                    ]
                }
            ]
        },
        {
            "taskType": "translation",
            "config": [
                {
                    "serviceId": "ai4bharat/indictrans-fairseq-i2e-gpu--t4",
                    "modelId": "6110f7bc014fa35d5e767c3b",
                    "language": {
                        "sourceLanguage": "bn",
                        "targetLanguage": "en"
                    }
                },
                {
                    "serviceId": "ai4bharat/indictrans-fairseq-i2i-gpu--t4",
                    "modelId": "6214b148751fc8007d24084c",
                    "language": {
                        "sourceLanguage": "bn",
                        "targetLanguage": "as"
                    }
                },
                {
                    "serviceId": "ai4bharat/indictrans-fairseq-e2i-gpu--t4",
                    "modelId": "6110f7ce014fa35d5e767c3c",
                    "language": {
                        "sourceLanguage": "en",
                        "targetLanguage": "as"
                    }
                },
                {
                    "serviceId": "ai4bharat/indictrans-fairseq-e2i-gpu--t4",
                    "modelId": "6110f7da014fa35d5e767c3d",
                    "language": {
                        "sourceLanguage": "en",
                        "targetLanguage": "bn"
                    }
                }
            ]
        }
    ],
    "pipelineInferenceAPIEndPoint": {
        "callbackUrl": "https://dhruva-api.bhashini.gov.in/services/inference/pipeline",
        "inferenceApiKey": {
            "name": "Authorization",
            "value": "cZVqccgm-LTAzxQVp6jjznmSR5RgKM"
        },
        "isMultilingualEnabled": true,
        "isSyncApi": true
    }
}

Complete Payload shows the JSON structure of the content that is received when Integrator makes a ULCA Config Call without any configuration details as detailed in Tab 1 of Request Payload This response contains 3 major parameters listed below and detailed further down the section:

Parameter: languages

This parameter helps integrator to know what languages are available that can be used for the requested pipeline tasks in that sequence. For example, consider scenarios where Integrator requests for either:

  • Individual Task i.e., either ASR or Translation or TTS as shown here

  • Combination of Tasks in that sequence i.e.,

    • ASR+Translation or

    • Translation+TTS or

    • ASR+Translation+TTS as shown here

For Single Tasks, the understanding is straight-forward that the languages appearing in the response corresponds to that task. e.g.

  • If the integrator wants to do only ASR, the languages appearing shows that Server can do ASR in these languages. In this case, parameters sourceLanguage and targetLanguageList will contain the same value since for ASR involves only one language unlike Translation where source and target (two) languages are involved. In this case, targetLanguageList can safely be ignored and only sourceLanguage can be used.

  • If the integrator wants to do only TTS, the languages appearing shows that Server can do TTS in these languages. In this case, parameters sourceLanguage and targetLanguageList will contain the same value since for TTS too only one language is involved. In this case too, targetLanguageList can safely be ignored and only sourceLanguage can be used.

Usual format of language for such cases is below:

Supported Languages for requested Pipeline.
"languages": [
        {
            "sourceLanguage": "bn",
            "targetLanguageList": [
                "bn"              
            ]
        },
        {
            "sourceLanguage": "en",
            "targetLanguageList": [               
                "en"
            ]
        },       
        {
            "sourceLanguage": "hi",
            "targetLanguageList": [
                "hi"
            ]
        }
    ]
  • If the integrator wants to do only Translation, the languages appearing shows that Server can do Translation in these languages. In this case, parameters sourceLanguage and targetLanguageList means that for the languages appearing in targetLanguageList are the ones in which Server can do translation FROM the language that appear in sourceLanguage.

For Combination of Tasks, the understanding is that the languages appearing in the response are the ones which Server can cater to, for the complete task sequence sent by the integrator. e.g.

  • If the integrator wants to do ASR and Translation together in that sequence, the languages appearing shows that the Server can do this combination in that sequence for these languages. In this case, the Server would be able to do this combination for the languages appearing in targetLanguageList, if the input is given in the language mentioned in sourceLanguage parameter.

  • If the integrator wants to do Translation and TTS together in that sequence, the languages appearing shows that the Server can do this combination in that sequence for these languages. In this case, the Server would be able to do this combination for the languages appearing in targetLanguageList, if the input is given in the language mentioned in sourceLanguage parameter.

  • If the integrator wants to do ASR, then Translation and then TTS together in that sequence, the languages appearing shows that the Server can do this combination in that sequence for these languages. In this case, the Server would be able to do this combination for the languages appearing in targetLanguageList, if the input is given in the language mentioned in sourceLanguage parameter.

Usual format of language for such cases is below:

Supported Languages for requested Pipeline.
"languages": [
        {
            "sourceLanguage": "bn",
            "targetLanguageList": [
                "en",
                "as",
                "gu",
                "hi"              
            ]
        },
        {
            "sourceLanguage": "en",
            "targetLanguageList": [               
                "ml",
                "mr",
                "or",
                "pa",
                "ta",
                "te"
            ]
        },       
        {
            "sourceLanguage": "hi",
            "targetLanguageList": [
                "en",
                "as",
                "bn",
                "gu",
                "kn"
            ]
        }
    ]

Parameter: pipelineResponseConfig

This parameter helps the integrator to obtain the Service ID for a particular task type and language(s) associated with that task.

The task types appearing here will be the same as the ones that the integrator requested while sending the pipelineTasks parameter in Request Payload e.g., Integrator request for configuration of the combination of ASR, Translation and TTS together, the pipelineResponseConfig parameter in the output will contain the JSON data as shown below. It will contain three dictionaries for each task type ASR, Translation and TTS. If Integrator requested for a combination of ASR and Translation, this parameter would contain JSON data for ASR and Translation only. Now consider, Integrator knows the language for which the combination ASR, Translation and TTS is to be performed (language may be determined by asking the end-user etc.). Say the language pair chosen is Bengali to Assamese. Integrator shall now obtain the Service ID correspondingly in the below manner:

  1. Obtain Service ID for doing ASR in Bengali. Line 6 from Dictionary of Line 5-14 below.

  2. Obtain Service ID for doing Translation from Bengali to Assamese. Line 49 from Dictionary of Line 48-55 below.

  3. Obtain Service ID for doing TTS in Assamese. Line 89 from Dictionary of Line 88-98 below.

These Service IDs will be used in the Pipeline Compute Call.

For each taskType in the response, there may appear additional configuration parameters that are specific to each taskType. e.g.,

  • As seen below, for taskType ASR, domain parameter appears which helps integrator to understand the domain(s) (general, agriculture, medical etc.), this particular Service ID is capable of providing output for.

  • Similarly, for taskType TTS, supportedVoice parameter appears which helps integrator to understand which all voices are available for a particular language that is serviced by that specific Service ID.

Configuration Details and Service IDs for requested pipeline tasks.
"pipelineResponseConfig": [
        {
            "taskType": "asr",
            "config": [
                {
                    "serviceId": "ai4bharat/conformer-multilingual-indo_aryan-gpu--t4",
                    "modelId": "6411746956e9de23f65b5426",
                    "language": {
                        "sourceLanguage": "bn"
                    },
                    "domain": [
                        "general"
                    ]
                },
                {
                    "serviceId": "ai4bharat/conformer-en-gpu--t4",
                    "modelId": "63ee09c3b95268521c70cd7c",
                    "language": {
                        "sourceLanguage": "en"
                    },
                    "domain": [
                        "general"
                    ]
                },
                {
                    "serviceId": "ai4bharat/conformer-multilingual-indo_aryan-gpu--t4",
                    "modelId": "64117455b1463435d2fbaec4",
                    "language": {
                        "sourceLanguage": "hi"
                    },
                    "domain": [
                        "general"
                    ]
                }
            ]
        },
        {
            "taskType": "translation",
            "config": [
                {
                    "serviceId": "ai4bharat/indictrans-fairseq-i2e-gpu--t4",
                    "modelId": "6110f7bc014fa35d5e767c3b",
                    "language": {
                        "sourceLanguage": "bn",
                        "targetLanguage": "en"
                    }
                },
                {
                    "serviceId": "ai4bharat/indictrans-fairseq-i2i-gpu--t4",
                    "modelId": "6214b148751fc8007d24084c",
                    "language": {
                        "sourceLanguage": "bn",
                        "targetLanguage": "as"
                    }
                },
                {
                    "serviceId": "ai4bharat/indictrans-fairseq-e2i-gpu--t4",
                    "modelId": "6110f7ce014fa35d5e767c3c",
                    "language": {
                        "sourceLanguage": "en",
                        "targetLanguage": "as"
                    }
                },
                {
                    "serviceId": "ai4bharat/indictrans-fairseq-e2i-gpu--t4",
                    "modelId": "6110f7da014fa35d5e767c3d",
                    "language": {
                        "sourceLanguage": "en",
                        "targetLanguage": "bn"
                    }
                }
            ]
        },
        {
            "taskType": "tts",
            "config": [
                {
                    "serviceId": "ai4bharat/indic-tts-coqui-misc-gpu--t4",
                    "modelId": "63f7384c2ff3ab138f88c64e",
                    "language": {
                        "sourceLanguage": "en"
                    },
                    "supportedVoices": [
                        "male",
                        "female"
                    ]
                },
                {
                    "serviceId": "ai4bharat/indic-tts-coqui-indo_aryan-gpu--t4",
                    "modelId": "6348db0bfd966563f61bc2c0",
                    "language": {
                        "sourceLanguage": "as"
                    },
                    "supportedVoices": [
                        "male",
                        "female"
                    ]
                }
            ]
        }
    ]

Parameter: pipelineInferenceAPIEndPoint

This parameter helps the integrator to know the details of the Pipeline Compute Callwhere to send (callbackURL parameter) and shall be sent along with the Authorization Key-Value pair received under inferenceApiKey parameter which will be used for authentication of the same.

Details for Actual Inferencing.
"pipelineInferenceAPIEndPoint": {
        "callbackUrl": "https://dhruva-api.bhashini.gov.in/services/inference/pipeline",
        "inferenceApiKey": {
            "name": "Authorization",
            "value": "cZVqccgm-LTAzxQVp6jjznmSR5RgKM"
        },
        "isMultilingualEnabled": true,
        "isSyncApi": true
    }

Last updated