# SpeechDialogueAudio

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.speechdialogueaudio/
> Summary: SpeechDialogueAudio: The audio of a dialogue and the time range of each turn.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.Abstractions.dll</code></div>

The audio of a dialogue and the time range of each turn.

```csharp
public sealed class SpeechDialogueAudio
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.speechdialogueaudio/">SpeechDialogueAudio</a></dd><dt>Inherited Members</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a></dd></dl>

## Remarks

A class, not a `record`, for the reason [SpeechAudio](/api/tracon.speechaudio/) gives: a
generated `ToString` or equality must not walk the audio.

## Constructors

### <a id="Tracon_SpeechDialogueAudio__ctor"></a> SpeechDialogueAudio\(\)

```csharp
public SpeechDialogueAudio()
```

## Properties

### <a id="Tracon_SpeechDialogueAudio_Audio"></a> Audio

Gets the audio of the whole dialogue.

```csharp
public required SpeechAudio Audio { get; init; }
```

#### Property Value

 [SpeechAudio](/api/tracon.speechaudio/)

#### Remarks

[SpeechAudio.CharactersBilled](/api/tracon.speechaudio/#Tracon_SpeechAudio_CharactersBilled), [SpeechAudio.UsageSource](/api/tracon.speechaudio/#Tracon_SpeechAudio_UsageSource)
and [SpeechAudio.ModelId](/api/tracon.speechaudio/#Tracon_SpeechAudio_ModelId) describe the whole request.
[SpeechAudio.Alignment](/api/tracon.speechaudio/#Tracon_SpeechAudio_Alignment) times the turns' texts joined in order, with no
separator.

### <a id="Tracon_SpeechDialogueAudio_Segments"></a> Segments

Gets the time range of each spoken part, in order; [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) when
[SpeechDialogueRequest.IncludeTimestamps](/api/tracon.speechdialoguerequest/#Tracon_SpeechDialogueRequest_IncludeTimestamps) was not set, when the provider
does not report them, or when the provider's report does not match the turns.

```csharp
public IReadOnlyList<SpeechDialogueSegment>? Segments { get; init; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[SpeechDialogueSegment](/api/tracon.speechdialoguesegment/)\>?

#### Remarks

One turn can have more than one segment. A report that names a turn the request
did not have or a voice the turn did not use, that leaves a turn without a
segment, or that is out of order is dropped whole rather than mapped to the wrong
turn.
