Microsoft Azure Batch Synthesis API

Microsoft Azure Batch Synthesis API enables developers to easily create and manage complex batch processing workflows in the cloud. By utilizing powerful Azure services, developers can efficiently process large amounts of data without the need for managing infrastructure or scaling resources. The API streamlines the process of running compute-intensive tasks, such as image rendering or data analytics, by automating job scheduling, resource allocation, and job monitoring.

OpenAPI Specification

batch-synthesis-api-openapi-original.yml Raw ↑
swagger: '2.0'
info:
  title: Microsoft Azure Batch synthesis API
  description: Batch synthesis API for text-to-speech.
  contact:
    name: Cognitive Services - Speech Services
    url: https://docs.microsoft.com/azure/cognitive-services/speech-service/support
  version: '2024-04-01'
paths:
  /batchsyntheses:
    get:
      tags:
        - BatchSynthesis
      description: Gets the list of batch syntheses.
      operationId: microsoftAzureBatchsynthesesList
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/QuerySkip'
        - $ref: '#/parameters/QueryMaxPageSize'
        - $ref: '#/parameters/QueryApiVersion'
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/PaginatedBatchSynthesis'
        default:
          description: An error occurred.
          schema:
            $ref: '#/definitions/ErrorResponse'
          headers:
            x-ms-error-code:
              type: string
              description: Error code
      x-ms-pageable:
        nextLinkName: nextLink
        itemName: value
      x-ms-examples:
        Create a project:
          $ref: ./examples/get_batch_syntheses.json
      summary: Microsoft Azure Get Batchsyntheses
  /batchsyntheses/{id}:
    get:
      tags:
        - BatchSynthesis
      description: Gets the batch synthesis identified by the given ID.
      operationId: microsoftAzureBatchsynthesesGet
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/PathId'
        - $ref: '#/parameters/QueryApiVersion'
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/BatchSynthesis'
        default:
          description: An error occurred.
          schema:
            $ref: '#/definitions/ErrorResponse'
          headers:
            x-ms-error-code:
              type: string
              description: Error code
      x-ms-examples:
        get a batch synthesis job.:
          $ref: ./examples/get_batch_synthesis.json
        get a batch synthesis job with ssml input and user provided container output.:
          $ref: >-
            ./examples/get_batch_synthesis_ssml_with_user_provided_container.json
      summary: Microsoft Azure Get Batchsyntheses Id
    put:
      tags:
        - BatchSynthesis
      description: >-
        Creates a batch synthesis job, the max allowed payload content length is
        500KB.
      operationId: microsoftAzureBatchsynthesesCreate
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/PathId'
        - in: body
          name: definition
          required: true
          description: Bath synthesis task definition
          schema:
            $ref: '#/definitions/BatchSynthesis'
        - in: header
          name: Operation-Id
          required: false
          description: >-
            ID of the status monitor for the operation. If the Operation-Id
            header matches an existing operation and the request is not
            identical to the prior request, it will fail with a 400 Bad Request.
          type: string
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]{1,62}[a-zA-Z0-9]$
          minLength: 3
          maxLength: 64
        - $ref: '#/parameters/QueryApiVersion'
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/BatchSynthesis'
          headers:
            operation-id:
              type: string
              description: ID of the operation.
            operation-location:
              description: The location of the batch synthesis job.
              type: string
              format: uri
        default:
          description: An error occurred.
          schema:
            $ref: '#/definitions/ErrorResponse'
          headers:
            x-ms-error-code:
              type: string
              description: Error code
      x-ms-long-running-operation: true
      x-ms-examples:
        Create a batch synthesis job with text input.:
          $ref: ./examples/create_batch_synthesis.json
        Create a batch synthesis job with ssml input and user provided container output.:
          $ref: >-
            ./examples/create_batch_synthesis_ssml_with_user_provided_container.json
      summary: Microsoft Azure Put Batchsyntheses Id
    delete:
      tags:
        - BatchSynthesis
      description: Deletes the batch synthesis identified by the given ID.
      operationId: microsoftAzureBatchsynthesesDelete
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/PathId'
        - $ref: '#/parameters/QueryApiVersion'
      responses:
        '204':
          description: No Content
        default:
          description: An error occurred.
          schema:
            $ref: '#/definitions/ErrorResponse'
          headers:
            x-ms-error-code:
              type: string
              description: Error code
      x-ms-examples:
        get a batch synthesis job.:
          $ref: ./examples/delete_batch_synthesis.json
      summary: Microsoft Azure Delete Batchsyntheses Id
  /operations/{id}:
    get:
      tags:
        - Operations
      description: Gets operation info.
      operationId: microsoftAzureOperationsGet
      produces:
        - application/json
      parameters:
        - in: path
          name: id
          required: true
          description: The id of the operation
          type: string
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]{1,62}[a-zA-Z0-9]$
          minLength: 3
          maxLength: 64
        - $ref: '#/parameters/QueryApiVersion'
      responses:
        '200':
          description: OK.
          schema:
            $ref: '#/definitions/Operation'
        default:
          description: Error encountered.
          schema:
            $ref: '#/definitions/ErrorResponse'
          headers:
            x-ms-error-code:
              type: string
              description: Error code
      x-ms-examples:
        Get Operation:
          $ref: ./examples/get_operation.json
      summary: Microsoft Azure Get Operations Id
definitions:
  BatchSynthesis:
    description: Bath synthesis task.
    required:
      - inputKind
    type: object
    properties:
      inputKind:
        $ref: '#/definitions/InputKind'
      inputs:
        description: Text or SSML inputs, it's allowed up to 10000 items.
        type: array
        items:
          $ref: '#/definitions/BatchSynthesisInput'
      synthesisConfig:
        $ref: '#/definitions/BatchSynthesisConfig'
      customVoices:
        description: The custom voice map of voice name and deployment ID.
        type: object
        additionalProperties:
          type: string
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]{1,62}[a-zA-Z0-9]$
          minLength: 3
          maxLength: 64
      properties:
        $ref: '#/definitions/BatchSynthesisProperties'
      outputs:
        $ref: '#/definitions/BatchSynthesisOutputs'
        readOnly: true
      status:
        $ref: '#/definitions/Status'
        readOnly: true
      lastActionDateTime:
        description: The time-stamp when the current status was entered.
        format: date-time
        type: string
        readOnly: true
      id:
        $ref: '#/definitions/ResourceId'
      description:
        description: The description of the batch synthesis task.
        type: string
      createdDateTime:
        description: The time-stamp when the object was created.
        format: date-time
        type: string
        readOnly: true
  BatchSynthesisBackgroundAudioDefinition:
    description: Background audio setting.
    required:
      - src
    type: object
    properties:
      src:
        format: uri
        description: >-
          Source of audio file. Reference
          https://learn.microsoft.com/azure/ai-services/speech-service/speech-synthesis-markup-voice#add-background-audio.
        type: string
      fadein:
        format: int64
        description: >-
          The fadein value of background audio. Reference
          https://learn.microsoft.com/azure/ai-services/speech-service/speech-synthesis-markup-voice#add-background-audio.
        type: integer
      fadeout:
        format: int64
        description: >-
          The fadeout value of background audio. Reference
          https://learn.microsoft.com/azure/ai-services/speech-service/speech-synthesis-markup-voice#add-background-audio.
        type: integer
      volume:
        format: double
        description: >-
          The volume value of background audio. Reference
          https://learn.microsoft.com/azure/ai-services/speech-service/speech-synthesis-markup-voice#add-background-audio.
        type: number
  BatchSynthesisBillingDetails:
    description: Bath synthesis billing details.
    type: object
    properties:
      neuralCharacters:
        format: int64
        description: >-
          The number of billable characters for prebuilt neural voices in the
          input file.
        type: integer
      customNeuralCharacters:
        format: int64
        description: >-
          The number of billable characters for custom neural voices in the
          input file.
        type: integer
      aoaiCharacters:
        format: int64
        description: The number of billable characters for AOAI voices in the input file.
        type: integer
      aoaiHDCharacters:
        format: int64
        description: >-
          The number of billable characters for AOAI HD voices in the input
          file.
        type: integer
      personalVoiceCharacters:
        format: int64
        description: >-
          The number of billable characters for personal voices in the input
          file.
        type: integer
  BatchSynthesisConfig:
    description: Text-to-speech configuration for plain text input.
    required:
      - voice
    type: object
    properties:
      voice:
        description: >-
          Voice name for PlainText input. You can find platform voice list here
          https://learn.microsoft.com/azure/ai-services/speech-service/language-support?tabs=tts.
        minLength: 1
        type: string
      style:
        description: Style name for PlainText input.
        type: string
      rate:
        description: >-
          Speaking rate for PlainText input. For supported values, see
          https://learn.microsoft.com/azure/ai-services/speech-service/speech-synthesis-markup-voice#adjust-prosody.
        type: string
      pitch:
        description: >-
          Pitch for PlainText input. For supported values, see
          https://learn.microsoft.com/azure/ai-services/speech-service/speech-synthesis-markup-voice#adjust-prosody.
        type: string
      volume:
        description: >-
          Volume for PlainText input. For supported values, see
          https://learn.microsoft.com/azure/ai-services/speech-service/speech-synthesis-markup-voice#adjust-prosody.
        type: string
      backgroundAudio:
        $ref: '#/definitions/BatchSynthesisBackgroundAudioDefinition'
  BatchSynthesisError:
    description: Batch Synthesis Error.
    type: object
    properties:
      code:
        description: Top level error code
        type: string
      message:
        description: Error message
        type: string
  BatchSynthesisInput:
    description: Batch Synthesis input.
    required:
      - content
    type: object
    properties:
      content:
        description: It could be SSML or plain text.
        minLength: 1
        type: string
  BatchSynthesisOutputs:
    description: Batch Synthesis output.
    type: object
    properties:
      result:
        description: >-
          sas url of the result file. It would be relative path when
          "destinationContainerUrl" is specified.
        type: string
      summary:
        description: >-
          When BatchSynthesisProperties.decompressOutputFiles is true, job
          summary file path will be provided here.
        type: string
  BatchSynthesisProperties:
    description: Detailed properties of batch synthesis task.
    type: object
    properties:
      timeToLiveInHours:
        description: >-
          How long the batch task will be kept in the system after it has
          completed. Once the batch task reaches the time to live after
          completion (succeeded or failed) it will be automatically deleted. The
          longest supported duration is 744 hours (31 days). The default value
          is 744 hours. 
        type: integer
        format: int32
      outputFormat:
        description: >-
          The requested audio output format. Reference
          https://learn.microsoft.com/azure/ai-services/speech-service/batch-synthesis-properties#batch-synthesis-properties.
        type: string
      concatenateResult:
        description: Whether synthesis result is concatenated.
        type: boolean
      decompressOutputFiles:
        description: >-
          Whether synthesis result is decompressed in target container. It only
          take effect when "destinationContainerUrl" is specified or "BYOS" is
          configured.
        type: boolean
      wordBoundaryEnabled:
        description: Whether the word boundary output will be generated.
        type: boolean
      sentenceBoundaryEnabled:
        description: Whether the sentence boundary output will be generated.
        type: boolean
      destinationContainerUrl:
        format: uri
        description: >-
          The requested destination container. It is an URL with Service adhoc
          SAS to a writeable container in Azure Blob storage.
        type: string
      destinationPath:
        description: >-
          The destination path in destination container, default to null, it
          only works when "DestinationContainerUrl" is specified, the final path
          prefix of outputs should be {DestinationPath}/{TaskId}/, or {TaskId}
          if not specified.
        type: string
      sizeInBytes:
        format: int64
        description: The generated audio size in bytes.
        type: integer
        readOnly: true
      succeededAudioCount:
        format: int32
        description: The number of succeeded audios.
        type: integer
        readOnly: true
      failedAudioCount:
        format: int32
        description: The number of failed audios.
        type: integer
        readOnly: true
      durationInMilliseconds:
        description: The generated audio duration in milliseconds.
        type: integer
        format: int32
        readOnly: true
      billingDetails:
        $ref: '#/definitions/BatchSynthesisBillingDetails'
        readOnly: true
      error:
        $ref: '#/definitions/BatchSynthesisError'
        readOnly: true
  Error:
    description: >-
      New format which conforms to the new Cognitive Services API guidelines
      which is available at
      https://microsoft.sharepoint.com/%3Aw%3A/t/CognitiveServicesPMO/EUoytcrjuJdKpeOKIK_QRC8BPtUYQpKBi8JsWyeDMRsWlQ?e=CPq8ow.
      This contains an outer error with error code, message, details, target and
      an inner error with more descriptive details.
    required:
      - code
      - message
    type: object
    properties:
      code:
        $ref: '#/definitions/ErrorCode'
      target:
        description: The source of the error.
        type: string
      message:
        description: High level error message.
        type: string
      details:
        description: >-
          Additional supportive details regarding the error and/or expected
          policies.
        type: array
        items:
          $ref: '#/definitions/Error'
      innererror:
        $ref: '#/definitions/InnerError'
  ErrorCode:
    description: Top-level error code
    enum:
      - BadRequest
      - BadArgument
      - Unauthorized
      - Forbidden
      - NotFound
      - UnsupportedMediaType
      - TooManyRequests
      - InternalServerError
      - ServiceUnavailable
    type: string
    x-ms-enum:
      name: ErrorCode
      modelAsString: true
  ErrorResponse:
    description: Error response.
    required:
      - error
    type: object
    properties:
      error:
        $ref: '#/definitions/Error'
  InnerError:
    description: "New Inner Error format which conforms to Cognitive Services API Guidelines which is available at https://microsoft.sharepoint.com/%3Aw%3A/t/CognitiveServicesPMO/EUoytcrjuJdKpeOKIK_QRC8BPtUYQpKBi8JsWyeDMRsWlQ?e=CPq8ow.\r\nThis contains required properties ErrorCode, message and optional properties target, inner error(this can be nested)."
    type: object
    properties:
      code:
        description: Detailed error code to help diagnostic.
        type: string
      target:
        description: The source of the error.
        type: string
      message:
        description: Detailed error message.
        type: string
      innererror:
        $ref: '#/definitions/InnerError'
  OperationId:
    description: Unique operation ID.
    type: string
    pattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]{1,62}[a-zA-Z0-9]$
    minLength: 3
    maxLength: 64
  Operation:
    description: Status of a long running operation.
    type: object
    properties:
      id:
        $ref: '#/definitions/OperationId'
      status:
        $ref: '#/definitions/OperationStatus'
        readOnly: true
  OperationStatus:
    description: Status of an operation.
    enum:
      - NotStarted
      - Running
      - Succeeded
      - Failed
    type: string
    x-ms-enum:
      name: OperationStatus
      modelAsString: true
  PaginatedBatchSynthesis:
    description: Paginated batch synthesis task list
    required:
      - value
    type: object
    properties:
      value:
        description: Bath synthesis tasks.
        type: array
        items:
          $ref: '#/definitions/BatchSynthesis'
      nextLink:
        description: Link to next page.
        format: uri
        type: string
  ResourceId:
    description: Resource id
    type: string
    pattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]{1,62}[a-zA-Z0-9]$
    minLength: 3
    maxLength: 64
  Status:
    description: Status of a resource.
    enum:
      - NotStarted
      - Running
      - Succeeded
      - Failed
    type: string
    x-ms-enum:
      name: Status
      modelAsString: true
  InputKind:
    description: Input text kind.
    enum:
      - PlainText
      - SSML
    type: string
    x-ms-enum:
      name: InputKind
      modelAsString: true
securityDefinitions:
  subscription_key:
    type: apiKey
    name: Ocp-Apim-Subscription-Key
    in: header
    description: Provide your cognitive services subscription key here.
  AADToken:
    type: oauth2
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    flow: implicit
    description: >-
      These are the [Azure Active Directory
      OAuth2](https://docs.microsoft.com/azure/active-directory/develop/v1-overview)
      Flows.
    scopes:
      https://cognitiveservices.azure.com/.default: https://cognitiveservices.azure.com/.default
security:
  - subscription_key: []
    AADToken: []
schemes:
  - https
x-ms-parameterized-host:
  hostTemplate: '{endpoint}/texttospeech'
  useSchemePrefix: false
  parameters:
    - name: endpoint
      in: path
      description: >-
        Supported Cognitive Services endpoints (protocol and hostname, for
        example: https://eastus.api.cognitive.microsoft.com).
      required: true
      type: string
parameters:
  QueryApiVersion:
    name: api-version
    in: query
    description: The API version to use for this operation.
    required: true
    type: string
    minLength: 1
    x-ms-parameter-location: method
    x-ms-client-name: apiVersion
  QuerySkip:
    name: skip
    in: query
    description: The number of result items to skip.
    required: false
    type: integer
    format: int32
    default: 0
    x-ms-parameter-location: method
  QueryMaxPageSize:
    name: maxpagesize
    in: query
    description: The maximum number of result items to include in a single response.
    required: false
    type: integer
    format: int32
    x-ms-parameter-location: method
  PathId:
    name: id
    in: path
    description: The id of resource.
    required: true
    type: string
    pattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]{1,62}[a-zA-Z0-9]$
    minLength: 3
    maxLength: 64
    x-ms-parameter-location: method
tags:
  - name: BatchSynthesis
  - name: Operations