VoiceRecording Class

Metadata for the merged, whole-call stereo recording of a voice conversation (user audio on the left channel, agent audio on the right). Built once from the per-turn segments after the session ends and durably cached. The common metadata (format, sample rate, channels, channel layout, duration) is returned for both Foundry-managed and bring-your-own-storage (BYOS) recordings. For BYOS the response also includes blob_uri, the URI of the recording in the customer's own storage (no SAS token), which the customer downloads using their own storage credentials. For Foundry-managed storage blob_uri is absent and the bytes are streamed via the /audio/content route instead.

Constructor

VoiceRecording(*args: Any, **kwargs: Any)

Variables

Name Description
conversation_id
str

The id of the conversation this recording belongs to. Required.

format

The container format of the recording. Required. "wav"

sample_rate
int

The sample rate of the recording in Hz, e.g. 24000. Required.

channels
int

The number of audio channels. The merged recording is stereo (2). Required.

channel_layout

The role assigned to each stereo channel. Required.

duration_ms

The total duration of the recording. Required.

blob_uri
str

For bring-your-own-storage (BYOS) recordings only: the URI of the recording in the customer's own storage, without a SAS token. The customer downloads it using their own storage credentials. Absent for Foundry-managed storage, where the bytes are streamed via the /audio/content route instead.

Methods

as_dict

Return a dict that can be turned into json using json.dump.

clear

Remove all items from the dictionary.

copy
get

Get the value for key if key is in the dictionary, else default. :param str key: The key to look up. :param any default: The value to return if key is not in the dictionary. Defaults to None :returns: The value for key if key is in the dictionary, else default. :rtype: any

items
keys
pop

Removes specified key and return the corresponding value. :param str key: The key to pop. :param any default: The value to return if key is not in the dictionary :returns: The value corresponding to the key. :rtype: any :raises KeyError: If key is not found and default is not given.

popitem

Removes and returns some (key, value) pair :returns: The (key, value) pair. :rtype: tuple :raises KeyError: if the dictionary is empty.

setdefault

Return the value for key if key is in the dictionary; otherwise set the key to default and return default. :param str key: The key to look up. :param any default: The value to set if key is not in the dictionary :returns: The value for key if key is in the dictionary, else default. :rtype: any

update

Update the dictionary from a mapping or an iterable of key-value pairs. :param any args: Either a mapping object or an iterable of key-value pairs.

values

as_dict

Return a dict that can be turned into json using json.dump.

as_dict(*, exclude_readonly: bool = False) -> dict[str, Any]

Keyword-Only Parameters

Name Description
exclude_readonly

Whether to remove the readonly properties.

Default value: False

Returns

Type Description

A dict JSON compatible object

clear

Remove all items from the dictionary.

clear() -> None

copy

copy() -> Model

get

Get the value for key if key is in the dictionary, else default. :param str key: The key to look up. :param any default: The value to return if key is not in the dictionary. Defaults to None :returns: The value for key if key is in the dictionary, else default. :rtype: any

get(key: str, default: Any = None) -> Any

Parameters

Name Description
key
Required
default
Default value: None

items

items() -> ItemsView[str, Any]

Returns

Type Description

a set-like object providing a view on the mapping's items

keys

keys() -> KeysView[str]

Returns

Type Description

a set-like object providing a view on the mapping's keys

pop

Removes specified key and return the corresponding value. :param str key: The key to pop. :param any default: The value to return if key is not in the dictionary :returns: The value corresponding to the key. :rtype: any :raises KeyError: If key is not found and default is not given.

pop(key: str, default: ~typing.Any = <object object>) -> Any

Parameters

Name Description
key
Required
default

popitem

Removes and returns some (key, value) pair :returns: The (key, value) pair. :rtype: tuple :raises KeyError: if the dictionary is empty.

popitem() -> tuple[str, Any]

setdefault

Return the value for key if key is in the dictionary; otherwise set the key to default and return default. :param str key: The key to look up. :param any default: The value to set if key is not in the dictionary :returns: The value for key if key is in the dictionary, else default. :rtype: any

setdefault(key: str, default: ~typing.Any = <object object>) -> Any

Parameters

Name Description
key
Required
default

update

Update the dictionary from a mapping or an iterable of key-value pairs. :param any args: Either a mapping object or an iterable of key-value pairs.

update(*args: Any, **kwargs: Any) -> None

values

values() -> ValuesView[Any]

Returns

Type Description

an object providing a view on the mapping's values

Attributes

blob_uri

the URI of the recording in the customer's own storage, without a SAS token. The customer downloads it using their own storage credentials. Absent for Foundry-managed storage, where the bytes are streamed via the /audio/content route instead.

blob_uri: str | None

channel_layout

The role assigned to each stereo channel. Required.

channel_layout: _models.VoiceRecordingChannelLayout

channels

The number of audio channels. The merged recording is stereo (2). Required.

channels: int

conversation_id

The id of the conversation this recording belongs to. Required.

conversation_id: str

duration_ms

The total duration of the recording. Required.

duration_ms: timedelta

format

The container format of the recording. Required. "wav"

format: str | _models.VoiceAudioContainerFormat

sample_rate

The sample rate of the recording in Hz, e.g. 24000. Required.

sample_rate: int