> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tensorpix.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Generate real estate voiceover audio

> Create voiceover audio and caption timing from the saved text and selected speaker_voice. The project must have is_voiceover_enabled set to true and saved text must not be empty. This action does not create shot image descriptions. Audio may be longer than the project. Final rendering cuts audio at the project duration, so compare audio_asset duration_s with project duration_s before rendering.



## OpenAPI

````yaml https://backend.tensorpix.ai/api/schema/ post /api/v2/real-estate/projects/{project_id}/voiceover/generate-audio/
openapi: 3.1.0
info:
  title: TensorPix OpenAPI Documentation
  version: 1.1.0
  termsOfService: https://tensorpix.ai/terms-conditions
  contact:
    name: TensorPix Dev Team
    email: devs@tensorpix.ai
servers:
  - url: https://backend.tensorpix.ai
security: []
tags:
  - name: tensorshots-projects
    description: Create, read, update, and delete TensorShots projects.
    x-displayName: Projects
    x-group: TensorShots Projects
  - name: tensorshots-shots
    description: Manage TensorShots project shots and shot voiceovers.
    x-displayName: Shots
    x-group: TensorShots Shots
  - name: tensorshots-assets
    description: Manage TensorShots audio, image, video, and shared assets.
    x-displayName: Assets
    x-group: TensorShots Assets
  - name: tensorshots-jobs
    description: Start, list, read, and delete TensorShots generation and render jobs.
    x-displayName: Jobs
    x-group: TensorShots Jobs
  - name: tensorshots-settings
    description: Manage TensorShots styles, music, voices, and prompt templates.
    x-displayName: Settings
    x-group: TensorShots Settings
  - name: real-estate-projects
    description: >-
      Manage real estate projects, property data, render settings, previews, and
      cost estimates.
    x-displayName: Projects
    x-group: Real Estate Projects
  - name: real-estate-shots
    description: >-
      Manage ordered project shots, first frames, generation prompts, crops,
      timing, speed, and transitions.
    x-displayName: Shots
    x-group: Real Estate Shots
  - name: real-estate-assets
    description: >-
      Manage project image assets, video assets, logos, and uploaded background
      music.
    x-displayName: Assets
    x-group: Real Estate Assets
  - name: real-estate-voiceover
    description: >-
      Manage project voiceover text, generated audio, caption timing, and text
      limits.
    x-displayName: Voiceover
    x-group: Real Estate Voiceover
  - name: real-estate-jobs
    description: >-
      Start, list, read, and poll property import, image edit, shot video, full
      video, and render jobs.
    x-displayName: Jobs
    x-group: Real Estate Jobs
  - name: real-estate-branding
    description: >-
      Manage reusable agent profiles and brand kits, then copy them into
      projects.
    x-displayName: Branding
    x-group: Real Estate Branding
  - name: real-estate-templates
    description: List intro and outro templates and manage project template images.
    x-displayName: Templates
    x-group: Real Estate Templates
externalDocs:
  url: https://docs.tensorpix.ai
  description: Check out the full TensorPix documentation.
paths:
  /api/v2/real-estate/projects/{project_id}/voiceover/generate-audio/:
    post:
      tags:
        - real-estate-voiceover
      summary: Generate real estate voiceover audio
      description: >-
        Create voiceover audio and caption timing from the saved text and
        selected speaker_voice. The project must have is_voiceover_enabled set
        to true and saved text must not be empty. This action does not create
        shot image descriptions. Audio may be longer than the project. Final
        rendering cuts audio at the project duration, so compare audio_asset
        duration_s with project duration_s before rendering.
      operationId: real_estate_project_voiceover_generate_audio_post
      parameters:
        - in: path
          name: project_id
          schema:
            type: string
            format: uuid
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VoiceoverAsset'
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail: {}
                  error_id:
                    type: string
                    format: uuid
                additionalProperties: true
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: ''
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
          description: ''
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
          description: ''
      security:
        - tokenAuth: []
        - jwtAuth: []
components:
  schemas:
    VoiceoverAsset:
      type: object
      description: Serializer for VoiceoverAsset with nested audio and text.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        audio_asset:
          allOf:
            - $ref: '#/components/schemas/AudioAsset'
          readOnly: true
        caption_asset:
          allOf:
            - $ref: '#/components/schemas/CaptionAsset'
          readOnly: true
        text_asset:
          allOf:
            - $ref: '#/components/schemas/TextAsset'
          readOnly: true
        metadata:
          readOnly: true
          description: Voiceover - e.g. extra description fields
      required:
        - audio_asset
        - caption_asset
        - created_at
        - id
        - metadata
        - text_asset
    UnauthenticatedError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        detail:
          type: string
        error_id:
          type: string
          format: uuid
      required:
        - detail
        - error_id
    ForbiddenError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        detail:
          type: string
        error_id:
          type: string
          format: uuid
      required:
        - detail
        - error_id
    NotFoundError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        detail:
          type: string
        error_id:
          type: string
          format: uuid
      required:
        - detail
        - error_id
    RateLimitError:
      type: object
      description: Serializer stub used for simple documented error payloads.
      properties:
        detail:
          type: string
        error_id:
          type: string
          format: uuid
      required:
        - detail
        - error_id
    ServerError:
      type: object
      description: Describe errors created by the global exception handler.
      properties:
        error:
          type: string
        error_id:
          type: string
          format: uuid
      required:
        - error
        - error_id
    AudioAsset:
      type: object
      description: Serializer for AudioAsset with basic fields.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
          description: Human-readable asset name.
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        file:
          type:
            - string
            - 'null'
          format: uri
          readOnly: true
          description: >-
            Audio file stored on S3. Pre-signed URL may expire. To generate a
            new URL, call the endpoint again. If the field is `null`, the audio
            hasn't been completely uploaded.
        duration_s:
          type: number
          format: double
          readOnly: true
          description: Audio duration in seconds.
        file_size:
          type: integer
          readOnly: true
          description: File size in bytes.
        bitrate:
          type:
            - integer
            - 'null'
          readOnly: true
          description: Audio bitrate in bits per second.
        sample_rate:
          type:
            - integer
            - 'null'
          readOnly: true
          description: Audio sample rate in Hz (e.g., 44100, 48000).
        channels:
          type:
            - integer
            - 'null'
          readOnly: true
          description: Number of audio channels (1=mono, 2=stereo, etc.).
      required:
        - bitrate
        - channels
        - created_at
        - duration_s
        - file
        - file_size
        - id
        - name
        - sample_rate
    CaptionAsset:
      type: object
      description: Serialize one generated caption asset.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        name:
          type: string
          readOnly: true
          description: Human-readable asset name.
        file:
          type: string
          format: uri
          readOnly: true
      required:
        - created_at
        - file
        - id
        - name
    TextAsset:
      type: object
      description: Serializer for TextAsset with basic fields.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Datetime when the record was created.
        text:
          type: string
          readOnly: true
          description: Generated text content.
      required:
        - created_at
        - id
        - text
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"
    jwtAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.