Skip to content

Commit d752670

Browse files
OpenAI-DotNet 8.8.1 (#474)
- Updated realtime audio transcription settings properties
1 parent 96540eb commit d752670

4 files changed

Lines changed: 55 additions & 14 deletions

File tree

OpenAI-DotNet/OpenAI-DotNet.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ More context [on Roger Pincombe's blog](https://rogerpincombe.com/openai-dotnet-
2929
<AssemblyOriginatorKeyFile>OpenAI-DotNet.pfx</AssemblyOriginatorKeyFile>
3030
<IncludeSymbols>true</IncludeSymbols>
3131
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
32-
<Version>8.8.0</Version>
32+
<Version>8.8.1</Version>
3333
<PackageReleaseNotes>
34+
Version 8.8.1
35+
- Updated realtime audio transcription settings properties
3436
Version 8.8.0
3537
- Improved RealtimeSession websocket support for proxies
3638
- Proxy no longer handles the websocket connection directly, but instead initiates the connection to the OpenAI api directly using the ephemeral api key

OpenAI-DotNet/Realtime/InputAudioTranscriptionSettings.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,25 @@ public sealed class InputAudioTranscriptionSettings
99
{
1010
public InputAudioTranscriptionSettings() { }
1111

12-
public InputAudioTranscriptionSettings(Model model)
12+
public InputAudioTranscriptionSettings(Model model, string prompt = null, string language = null)
1313
{
14-
Model = string.IsNullOrWhiteSpace(model.Id) ? "whisper-1" : model;
14+
Model = string.IsNullOrWhiteSpace(model?.Id) ? Models.Model.Whisper1 : model;
15+
Prompt = prompt;
16+
Language = language;
1517
}
1618

1719
[JsonInclude]
1820
[JsonPropertyName("model")]
1921
public string Model { get; private set; }
22+
23+
[JsonInclude]
24+
[JsonPropertyName("prompt")]
25+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
26+
public string Prompt { get; private set; }
27+
28+
[JsonInclude]
29+
[JsonPropertyName("language")]
30+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
31+
public string Language { get; private set; }
2032
}
2133
}

OpenAI-DotNet/Realtime/Options.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,7 @@ public Options(
6969
: instructions;
7070
InputAudioFormat = inputAudioFormat;
7171
OutputAudioFormat = outputAudioFormat;
72-
InputAudioTranscriptionSettings = new(string.IsNullOrWhiteSpace(transcriptionModel)
73-
? "whisper-1"
74-
: transcriptionModel);
72+
InputAudioTranscriptionSettings = new(transcriptionModel);
7573
VoiceActivityDetectionSettings = turnDetectionSettings ?? new(TurnDetectionType.Server_VAD);
7674
tools.ProcessTools<Tool>(toolChoice, out var toolList, out var activeTool);
7775
Tools = toolList?.Where(t => t.IsFunction).Select(tool =>

OpenAI-DotNet/Realtime/SessionConfiguration.cs

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
using OpenAI.Extensions;
44
using OpenAI.Models;
5+
using System;
56
using System.Collections.Generic;
67
using System.Linq;
78
using System.Text.Json.Serialization;
@@ -12,14 +13,46 @@ public class SessionConfiguration
1213
{
1314
public SessionConfiguration() { }
1415

16+
[Obsolete("use new ctor overload")]
17+
public SessionConfiguration(
18+
Model model,
19+
Modality modalities,
20+
Voice voice,
21+
string instructions,
22+
RealtimeAudioFormat inputAudioFormat,
23+
RealtimeAudioFormat outputAudioFormat,
24+
Model transcriptionModel,
25+
IVoiceActivityDetectionSettings turnDetectionSettings,
26+
IEnumerable<Tool> tools,
27+
string toolChoice,
28+
float? temperature,
29+
int? maxResponseOutputTokens,
30+
int? expiresAfter)
31+
: this(
32+
model: model,
33+
modalities: modalities,
34+
voice: voice,
35+
instructions: instructions,
36+
inputAudioFormat: inputAudioFormat,
37+
outputAudioFormat: outputAudioFormat,
38+
inputAudioTranscriptionSettings: new(transcriptionModel),
39+
turnDetectionSettings: turnDetectionSettings,
40+
tools: tools,
41+
toolChoice: toolChoice,
42+
temperature: temperature,
43+
maxResponseOutputTokens: maxResponseOutputTokens,
44+
expiresAfter: expiresAfter)
45+
{
46+
}
47+
1548
public SessionConfiguration(
1649
Model model,
1750
Modality modalities = Modality.Text | Modality.Audio,
1851
Voice voice = null,
1952
string instructions = null,
2053
RealtimeAudioFormat inputAudioFormat = RealtimeAudioFormat.PCM16,
2154
RealtimeAudioFormat outputAudioFormat = RealtimeAudioFormat.PCM16,
22-
Model transcriptionModel = null,
55+
InputAudioTranscriptionSettings inputAudioTranscriptionSettings = null,
2356
IVoiceActivityDetectionSettings turnDetectionSettings = null,
2457
IEnumerable<Tool> tools = null,
2558
string toolChoice = null,
@@ -28,11 +61,9 @@ public SessionConfiguration(
2861
int? expiresAfter = null)
2962
{
3063
ClientSecret = new ClientSecret(expiresAfter);
31-
Model = string.IsNullOrWhiteSpace(model.Id)
32-
? Models.Model.GPT4oRealtime
33-
: model;
64+
Model = string.IsNullOrWhiteSpace(model?.Id) ? Models.Model.GPT4oRealtime : model;
3465
Modalities = modalities;
35-
Voice = voice ?? OpenAI.Voice.Alloy;
66+
Voice = string.IsNullOrWhiteSpace(voice?.Id) ? OpenAI.Voice.Alloy : voice;
3667
Instructions = string.IsNullOrWhiteSpace(instructions)
3768
? "Your knowledge cutoff is 2023-10. You are a helpful, witty, and friendly AI. Act like a human, " +
3869
"but remember that you aren't a human and that you can't do human things in the real world. " +
@@ -43,9 +74,7 @@ public SessionConfiguration(
4374
: instructions;
4475
InputAudioFormat = inputAudioFormat;
4576
OutputAudioFormat = outputAudioFormat;
46-
InputAudioTranscriptionSettings = new(string.IsNullOrWhiteSpace(transcriptionModel)
47-
? "whisper-1"
48-
: transcriptionModel);
77+
InputAudioTranscriptionSettings = inputAudioTranscriptionSettings;
4978
VoiceActivityDetectionSettings = turnDetectionSettings ?? new ServerVAD();
5079
tools.ProcessTools<Tool>(toolChoice, out var toolList, out var activeTool);
5180
Tools = toolList?.Where(t => t.IsFunction).Select(tool =>

0 commit comments

Comments
 (0)