1.0.0-beta.3 (2025-09-26)
Features Added
- Added
VideoBackground
class to support video background customization withColor
andImageUrl
properties - Added new properties to
VideoParams
:Background
(VideoBackground): Configure video background settingsGopSize
(int?): Configure Group of Pictures size
- Added new properties to turn detection classes for enhanced control:
CreateResponse
(bool?): Added toServerVadTurnDetection
,AzureSemanticVadTurnDetection
, and related classesInterruptResponse
(bool?): Added to the same turn detection classes
- Added string constructor overloads for message item classes:
AssistantMessageItem(string assistantMessageText)
SystemMessageItem(string systemMessageText)
UserMessageItem(string userMessageText)
- Enhanced README with new code examples for function calling and user message handling
- Added Headers dictionary to VoiceLiveClientOptions to specify additional headers to set on connect.
Breaking Changes
Type Changes from Enums to Extensible Enums
Several enum types have been converted to extensible enums (struct-based) for better extensibility:
AnimationOutputType
- Before:
enum AnimationOutputType
- After:
readonly partial struct AnimationOutputType
- Impact: The type is now an extensible enum. Existing code using the enum values will continue to work due to implicit conversions.
AudioNoiseReductionType
- Before:
enum AudioNoiseReductionType
- After:
readonly partial struct AudioNoiseReductionType
- Impact: The type is now an extensible enum. Existing code using the enum values will continue to work due to implicit conversions.
ItemParamStatus
- Before:
enum ItemParamStatus
- After:
readonly partial struct ItemParamStatus
- Impact: The type is now an extensible enum. Existing code using the enum values will continue to work due to implicit conversions.
ResponseCancelledDetailsReason
- Before:
enum ResponseCancelledDetailsReason
- After:
readonly partial struct ResponseCancelledDetailsReason
- Impact: The type is now an extensible enum. Existing code using the enum values will continue to work due to implicit conversions.
ResponseIncompleteDetailsReason
- Before:
enum ResponseIncompleteDetailsReason
- After:
readonly partial struct ResponseIncompleteDetailsReason
- Impact: The type is now an extensible enum. Existing code using the enum values will continue to work due to implicit conversions.
Class and Property Renames
AudioInputTranscriptionSettings → AudioInputTranscriptionOptions
- Type renamed:
AudioInputTranscriptionSettings
is nowAudioInputTranscriptionOptions
- Model property renamed:
AudioInputTranscriptionSettingsModel
is nowAudioInputTranscriptionOptionsModel
- Impact: Update all references to use the new type name.
InputModality → InteractionModality
- Type renamed:
InputModality
is nowInteractionModality
- Impact: Update all references from
InputModality
toInteractionModality
throughout your code.
ResponseMaxOutputTokensOption → MaxResponseOutputTokensOption
- Type renamed:
ResponseMaxOutputTokensOption
is nowMaxResponseOutputTokensOption
- Impact: Update all type references to use the new name.
Removed Types
UserContentPart (abstract base class)
- Removed: The abstract
UserContentPart
class has been removed. - Replacement: Use the new
MessageContentPart
abstract base class instead. - Impact: Update inheritance hierarchies to use
MessageContentPart
.
AzureSemanticEnEouDetection
- Removed: This class has been removed.
- Replacement: Use
AzureSemanticEouDetectionEn
instead.
AzureSemanticMultilingualEouDetection
- Removed: This class has been removed.
- Replacement: Use
AzureSemanticEouDetectionMultilingual
instead.
AzureSemanticVadEnTurnDetection
- Removed: This class has been removed.
- Replacement: Use
AzureSemanticVadTurnDetectionEn
instead.
AzureSemanticVadMultilingualTurnDetection
- Removed: This class has been removed.
- Replacement: Use
AzureSemanticVadTurnDetectionMultilingual
instead.
Property Removals
AnimationOptions
- Removed properties:
EmotionDetectionInterval
EmotionDetectionIntervalMs
- Impact: Remove any code that sets or reads these properties.
AzureSemanticEouDetection family
- Changed property:
Threshold
(float) has been replaced withThresholdLevel
using new threshold level types:AzureSemanticDetectionThresholdLevel
forAzureSemanticEouDetection
AzureSemanticDetectionEnThresholdLevel
forAzureSemanticEouDetectionEn
AzureSemanticDetectionMultilingualThresholdLevel
forAzureSemanticEouDetectionMultilingual
- Impact: Update code to use the new
ThresholdLevel
property with appropriate enum values (Default, Low, Medium, High).
Constructor and Method Signature Changes
MessageItem
- Constructor changed:
- Before:
MessageItem(string role)
- After:
MessageItem(ResponseMessageRole role, IEnumerable<MessageContentPart> content)
- Before:
- Impact: Update all MessageItem instantiations to provide both role and content parameters.
AssistantMessageItem
- Constructor changed:
- Before: Accepted
OutputTextContentPart
orIEnumerable<OutputTextContentPart>
- After: Accepts
MessageContentPart
,IEnumerable<MessageContentPart>
, or a string
- Before: Accepted
- Property changed:
Content
is nowIList<MessageContentPart>
instead ofIList<OutputTextContentPart>
SystemMessageItem
- Constructor changed:
- Before: Accepted
InputTextContentPart
orIEnumerable<InputTextContentPart>
- After: Accepts
InputTextContentPart
,IEnumerable<MessageContentPart>
, or a string
- Before: Accepted
- Property changed:
Content
is now part of baseMessageItem
asIList<MessageContentPart>
UserMessageItem
- Constructor changed:
- Before: Accepted
UserContentPart
orIEnumerable<UserContentPart>
- After: Accepts
InputTextContentPart
,IEnumerable<MessageContentPart>
, or a string
- Before: Accepted
- Property changed:
Content
is now part of baseMessageItem
asIList<MessageContentPart>
ToolChoiceOption
- Constructor parameter renamed:
- Before:
ToolChoiceOption(string stringValue)
- After:
ToolChoiceOption(string functionName)
- Before:
- Impact: The parameter name has changed, but functionality remains the same.
Service Version Changes
VoiceLiveClientOptions
- Default service version changed:
- Before:
ServiceVersion.V2025_05_01_Preview
- After:
ServiceVersion.V2025_10_01
- Before:
- Impact: The client now defaults to a newer, non-preview API version.
Class Inheritance Changes
VoiceLiveClientOptions
- Before: Inherited from
Azure.Core.ClientOptions
- After: No longer inherits from
ClientOptions
, but provides aDiagnosticsOptions
property - Impact: Some properties previously available through inheritance may need to be accessed differently.
Content Part Classes
InputAudioContentPart
: Now inherits fromMessageContentPart
instead ofUserContentPart
InputTextContentPart
: Now inherits fromMessageContentPart
instead ofUserContentPart
OutputTextContentPart
: Now inherits fromMessageContentPart
instead of being standalone
New Required Properties
Turn Detection Classes
Several turn detection classes have new properties that should be considered:
CreateResponse
(bool?): Added toServerVadTurnDetection
,AzureSemanticVadTurnDetection
, and related classesInterruptResponse
(bool?): Added to the same turn detection classes
VideoParams
- New optional properties:
Background
(VideoBackground): Configure video background settingsGopSize
(int?): Configure Group of Pictures size
Property Access Changes
VoiceLiveClient
- Removed:
Pipeline
property is no longer publicly accessible - Impact: If you were accessing the HTTP pipeline directly, you'll need to find alternative approaches.
VoiceLiveResponse
- Property changed:
Modalities
is nowModalitiesInternal
and returnsIList<InteractionModality>
instead ofSessionUpdateModality
Authentication Changes
VoiceLiveClient Authentication Scope
- Authentication scope changed: The default authentication scope has been updated from
https://cognitiveservices.azure.com/.default
tohttps://ai.azure.com/.default
- Impact: This change should be transparent for most users, but custom authentication implementations may need adjustment.
Class Inheritance and Interface Implementation Changes
AzureSemanticEouDetectionEn and AzureSemanticEouDetectionMultilingual
- Before: These classes were incomplete and did not properly inherit from base classes
- After: Both classes now properly inherit from
EouDetection
and implement full serialization interfaces - Impact: These classes are now fully functional and consistent with the API pattern
Migration Guide
-
Update enum usage: While the conversion to extensible enums maintains backward compatibility through implicit conversions, consider updating to use the new struct-based pattern for future-proofing.
-
Rename types: Find and replace all occurrences of renamed types:
AudioInputTranscriptionSettings
→AudioInputTranscriptionOptions
InputModality
→InteractionModality
ResponseMaxOutputTokensOption
→MaxResponseOutputTokensOption
-
Update inheritance: Replace
UserContentPart
withMessageContentPart
in any custom implementations. -
Update constructors: Review and update all MessageItem-derived class instantiations to use the new constructor signatures.
-
Update threshold properties: Replace float
Threshold
properties with appropriateThresholdLevel
properties using the new enum values. -
Consider new properties: Review the new
CreateResponse
andInterruptResponse
properties in turn detection configurations to see if they benefit your use case.
Other Changes
- Updated README examples to use new
InteractionModality
instead ofInputModality
- Updated default service version examples to use
V2025_10_01
- Enhanced documentation with additional code snippets for function response handling and user message creation