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

# What is Velma?

> Velma is an audio-native voice intelligence model over REST or WebSocket.

Velma is Modulate's Conversation Understanding model. It analyzes audio signals (tone, emotion, intent, and dozens of other acoustic cues) and words to capture the true intent and meaning behind a conversation.

Use Velma to surface risks or specific "behaviors" in voice conversations, such as fraud, customer churn, and compliance violations. It ships with 150+ pre-configured behaviors covering common conversation topics and business use cases. Additionally, you can define your own by describing what to detect in a natural-language prompt. Every response also includes a conversation summary, emotion and accent detection, speaker identification, conversation topics, deepfake detection, sentiment, a diarized transcript, and more.

The power of Velma is that you describe what you want to detect, and Velma uses audio signals to detect them.

## Build with Velma

Start from a **detection package** — a ready-made configuration that groups the conversation types, roles, and behaviors for a common use case. Explore what each detects, then download and adapt it.

<CardGroup cols={3}>
  <Card title="Fraud Detection and Prevention" icon="shield-halved" href="/velma/detection-packages/fraud-detection-and-prevention">
    Catch social engineering, account-takeover attempts, and impersonation in customer conversations.
  </Card>

  <Card title="Agentic AI Guardrails" icon="robot" href="/velma/detection-packages/agentic-ai-guardrails">
    Keep AI voice agents on-policy: catch off-script, unsafe, or out-of-scope behavior.
  </Card>

  <Card title="Trust and Safety" icon="shield-check" href="/velma/detection-packages/trust-and-safety">
    Flag harassment, hate, and safety violations in live social and voice-chat audio.
  </Card>

  <Card title="Customer Retention" icon="heart" href="/velma/detection-packages/customer-retention">
    Surface churn signals, dissatisfaction, and save opportunities on every call.
  </Card>

  <Card title="Human Agent Welfare" icon="hand-holding-heart" href="/velma/detection-packages/human-agent-welfare">
    Protect agents by detecting abuse, distress, and burnout indicators.
  </Card>

  <Card title="Compliance and Risk Monitoring" icon="scale-balanced" href="/velma/detection-packages/compliance-and-risk-monitoring">
    Catch disclosure gaps, compliance breaches, and risk events across regulated calls.
  </Card>
</CardGroup>

## Batch or streaming?

|              | Velma (batch)                                       | Velma (streaming)                                     |
| ------------ | --------------------------------------------------- | ----------------------------------------------------- |
| **Use case** | Analyze a complete recording                        | Analyze a live or in-progress conversation            |
| **Protocol** | HTTP POST                                           | WebSocket                                             |
| **Response** | Single JSON response                                | Stream of typed events                                |
| **Best for** | Post-call QA, compliance review, offline processing | Live monitoring, real-time alerting, in-call coaching |

## What Velma produces

<CardGroup cols={3}>
  <Card title="Behavior detection" icon="magnifying-glass">
    Per-behavior verdicts with confidence scores and the specific clips that triggered each detection.
  </Card>

  <Card title="Conversation type" icon="comments">
    Classification of the conversation against the types you define — customer support, sales, interview, and more.
  </Card>

  <Card title="Participant roles" icon="users">
    Per-speaker role assignments drawn from the roles you configure, resolved in real time as speakers are identified.
  </Card>

  <Card title="Topics" icon="tags">
    An aggregated list of the subjects discussed across the full conversation.
  </Card>

  <Card title="Topic sentiment" icon="chart-line">
    Per-speaker sentiment scores for each extracted topic, ranging from −1 (negative) to +1 (positive).
  </Card>

  <Card title="Summary" icon="align-left">
    A free-form narrative summary of the conversation generated at end of stream.
  </Card>
</CardGroup>

## How it works

<Tabs>
  <Tab title="Batch">
    Velma (batch) is an HTTP POST endpoint at `/api/velma-2-batch`. Submit a complete audio file as `multipart/form-data` — the `upload_file` field carries the audio (up to 100 MB), and the `config` field carries a JSON-encoded `BatchConfig` or the literal string `"default"` to use Velma's built-in defaults.

    Velma processes the full recording and returns a single JSON response containing all clips, role assignments, behavior detections, topics, topic sentiment scores, and a summary.

    ```bash theme={null}
    curl -X POST https://platform.modulate.ai/api/velma-2-batch \
      -H "X-API-Key: $MODULATE_API_KEY" \
      -F "upload_file=@recording.mp3" \
      -F "config=default"
    ```

    Use batch when you have a finished recording and want a complete analysis in one call — post-call QA, compliance review, or processing an uploaded file.
  </Tab>

  <Tab title="Streaming">
    Velma (streaming) is a WebSocket endpoint. You connect, send a configuration frame, then stream audio incrementally. Velma emits structured JSON events as it processes — clips, role assignments, behavior detections, topics, sentiment, and a summary — and closes with a `done` event when audio ends.

    The connection follows a strict sequence:

    <Steps>
      <Step title="Connect">
        Open a WebSocket connection to `wss://platform.modulate.ai/api/velma-2-streaming` with your `api_key` as a query parameter.
      </Step>

      <Step title="Send configuration">
        Send a single JSON text frame containing your configuration — the conversation types, participant roles, and behaviors you want Velma to work with. This frame must arrive before any audio.
      </Step>

      <Step title="Stream audio">
        Send your audio as binary WebSocket frames in any chunk size. Self-describing formats (MP3, WAV, OGG, FLAC, WebM, AAC, AIFF) are auto-detected. Raw PCM formats require `audio_format`, `sample_rate`, and `num_channels` query parameters.
      </Step>

      <Step title="Signal end of stream">
        Send an empty text frame (`""`) to tell Velma the audio is complete.
      </Step>

      <Step title="Receive events">
        Velma emits typed JSON events throughout and closes the connection with a `done` event.
      </Step>
    </Steps>
  </Tab>
</Tabs>

## How Velma differs from the other endpoints

|                                  | Velma                         | Transcription | Deepfake Detection |
| -------------------------------- | ----------------------------- | ------------- | ------------------ |
| **Primary output**               | Conversation intelligence     | Transcript    | Deepfake scores    |
| **Behavior detection**           | ✓ (configurable)              | —             | —                  |
| **Conversation classification**  | ✓                             | —             | —                  |
| **Topic and sentiment analysis** | ✓                             | —             | —                  |
| **Summarization**                | ✓                             | —             | —                  |
| **Transcription**                | ✓ (via Transcription options) | ✓             | —                  |
| **Batch and streaming**          | ✓                             | ✓             | ✓                  |

<Note>
  Velma includes transcription as part of its output via Transcription options in your configuration. If transcription alone is what you need, the [Transcription endpoints](/get-started/stt) are the right choice.
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="Capabilities" icon="layer-group" href="/velma/capabilities">
    Explore all of Velma's analysis outputs and configuration options in detail.
  </Card>

  <Card title="Behaviors" icon="wand-magic-sparkles" href="/velma/behaviors/what-are-behaviors">
    Learn how to define the signals you want Velma to detect.
  </Card>
</CardGroup>
