---
title: "Voice Biometrics"
slug: "dataflow-nodes-vb-realtime"
updated: 2025-05-27T14:17:18Z
published: 2025-05-27T14:17:18Z
---

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

# VB Realtime

Integration node for Voice Biometrics (VB) Realtime.

## Parameters

| name | description | default |
| --- | --- | --- |
| Address | Address of Voice Biometrics | https://vb.eu.knovvu.com |
| IgnoreSslErrors | Ignore any certificate errors if VB Realtime address contains "https" | false |
| CredentialId | Id of the credential that will be used for VB Realtime http calls. | None |
| AudioSegmentSizeMsec | The audio package length that will be sent to VB in milliseconds | 5000 |
| SelfAddress | Data Flow CallBack address. You need to change this if you are using a VB deployment in a different Kubernetes cluster than Data Flow | http://{PrivateIp}:{PrivateManagementPort}/ |

## Inputs

### Audio

Expects Single-Channel Audio that has gone through a VAD Node.

### Events

| name | description | possible nodes this event may be received from |
| --- | --- | --- |
| [VBStreamState](/v1/docs/events#vbstreamstate) | This event informs the node if it should start or stop streaming audio to Voice Biometrics | External Relay |
| [Speech Started](/v1/docs/events#speech-started) | Signals the start of speech in realtime | VAD |
| [Speech Ended](/v1/docs/events#speech-ended) | Signals the end of speech in realtime | VAD |

## Outputs

### Audio

none

### Events

none

## Remarks

### Requirements

#### "StartMessage" requirements

"StartMessage" should contain

- "CallProperties.UserProperties.ExternalId" This let's Voice Biometrics know which Agent is currently in call this session.
- "CallProperties.ExternalId" This conversation id is given to Data Flow by the Client. This lets Voice Biometrics know about which specific conversation the VB Analysis will take place.
- Definitions for ChannelTags. This specifies which channel belongs to the customer and which to the agent.
- Every other "CallProperties" property is optional, but nice to have.

```
  {
    "CallProperties": 
    {
      "UserProperties":
      {
        "ExternalId":"AgentsExternalId"
      },
      "ExternalId":"ConversationId"
    },
    "Settings":
    {
      "ChannelTags": 
      [
        "a_tag_for_channel_0",
        "a_tag_for_channel_1;another_tag_for_channel_1"
      ]
    }    
  }
```

#### "StartMessage" example

```
{
    "CallProperties": 
    {
      "UserProperties":
      {
        "ExternalId":"AnExternalId"
      },
      "ExternalId":"AnExternalIdForConversation"
    },
    "Settings":
    {
      "ChannelTags": 
      [
        "customer",
        "agent"
      ]
    }    
 }
```

### Project Structure

VB Realtime node expects to receive audio that went through a [VAD](/v1/docs/dataflow-nodes-audio-splitters) from a single channel. So, in projects with multiple channels, multiple VB Realtime nodes that are connected to different VAD nodes should be used. In cases with multiple VB Realtime nodes, a [Channel Switch](/v1/docs/dataflow-nodes-channel-switch) Node is recommended for starting transactions on the intended channel .

A minimum viable project that utilizes VB Realtime node can be built as such:

<center data-tomark-pass="">
<p><img src="https://cdn.document360.io/9bca2910-6a3b-4224-9470-43f91f9a6d57/Images/Documentation/image%28810%29.png" alt="image.png"></p>
</center>

An example of using two VB Realtime nodes that enables user to authenticate either of the channels during runtime can be built as such:

![image.png](https://cdn.document360.io/9bca2910-6a3b-4224-9470-43f91f9a6d57/Images/Documentation/image%28811%29.png)

Finally, an example of utilizing VB Realtime Node for authenticating specifically the "customer" channel for our default project "ca-online" can be seen below. ![image.png](https://cdn.document360.io/9bca2910-6a3b-4224-9470-43f91f9a6d57/Images/Documentation/image%28812%29.png)

### Detailed Workflow

VB Realtime node is a node that can send real time audio data to Voice Biometrics in real-time.

This node registers the current call to Voice Biometrics using */biometrics/api/votg/v1/calls/{callId}* The same endpoint is used to unregister the call at the end of the call.

After Register, the node enters the "**Idle**" state and waits for the transaction started event from the External Relay. Once the *"VBStreamStateEvent.Data.State == Started"* event is received, node enters **"Stream"** state for transaction Id: "*VBStreamStateEvent.Data.TransactionId*". During the stream state, The node accumulates audio and packs them in lengths of "AudioSegmentSizeMsec". The node sends these audio packs to the endpoint: *"/biometrics/api/votg/v1/transactions/{transactionId}/call-data"*

After receiving transaction stopped event from the external relay, the node enters **"Idle"** state once again. After which, the node can receive another transaction and send data to said transaction.

### Supported flow types

Stream

## Release Notes

 
    

****v3.7.0****

        
        

- Added a feature so that the CallProperties can be given after the start message via a CallStateUpdate message if the start message was incomplete.

    
    

****v3.4.0****

        
        

- Fixed a bug where an invalid Call Start Message would prevent the session from starting properly.

    
    

****v3.1.0****

        
        

- Introduced node.
