add hook
This commit is contained in:
parent
ccf4b3dd0a
commit
d76fef38d0
|
|
@ -13,6 +13,7 @@ public class RealtimeHubConnection
|
||||||
public Func<string, string> OnModelMessageReceived { get; set; } = null!;
|
public Func<string, string> OnModelMessageReceived { get; set; } = null!;
|
||||||
public Func<string> OnModelAudioResponseDone { get; set; } = null!;
|
public Func<string> OnModelAudioResponseDone { get; set; } = null!;
|
||||||
public Func<string> OnModelUserInterrupted { get; set; } = null!;
|
public Func<string> OnModelUserInterrupted { get; set; } = null!;
|
||||||
|
public Func<string> OnUserSpeechDetected { get; set; } = () => string.Empty;
|
||||||
|
|
||||||
public void ResetResponseState()
|
public void ResetResponseState()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -150,6 +150,9 @@ public class RealtimeHub : IRealtimeHub
|
||||||
var data = _conn.OnModelUserInterrupted();
|
var data = _conn.OnModelUserInterrupted();
|
||||||
await (responseToUser?.Invoke(data) ?? Task.CompletedTask);
|
await (responseToUser?.Invoke(data) ?? Task.CompletedTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var res = _conn.OnUserSpeechDetected();
|
||||||
|
await (responseToUser?.Invoke(res) ?? Task.CompletedTask);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -263,7 +263,7 @@ public class RealTimeCompletionProvider : IRealTimeCompletion
|
||||||
MaxResponseOutputTokens = realtimeModelSettings.MaxResponseOutputTokens,
|
MaxResponseOutputTokens = realtimeModelSettings.MaxResponseOutputTokens,
|
||||||
TurnDetection = new RealtimeSessionTurnDetection
|
TurnDetection = new RealtimeSessionTurnDetection
|
||||||
{
|
{
|
||||||
InterruptResponse = false/*,
|
InterruptResponse = realtimeModelSettings.InterruptResponse/*,
|
||||||
Threshold = realtimeModelSettings.TurnDetection.Threshold,
|
Threshold = realtimeModelSettings.TurnDetection.Threshold,
|
||||||
PrefixPadding = realtimeModelSettings.TurnDetection.PrefixPadding,
|
PrefixPadding = realtimeModelSettings.TurnDetection.PrefixPadding,
|
||||||
SilenceDuration = realtimeModelSettings.TurnDetection.SilenceDuration*/
|
SilenceDuration = realtimeModelSettings.TurnDetection.SilenceDuration*/
|
||||||
|
|
|
||||||
|
|
@ -49,14 +49,20 @@ conn.OnModelAudioResponseDone = () =>
|
||||||
conn.OnModelUserInterrupted = () =>
|
conn.OnModelUserInterrupted = () =>
|
||||||
JsonSerializer.Serialize(new
|
JsonSerializer.Serialize(new
|
||||||
{
|
{
|
||||||
@event = "clear"
|
@event = "interrupted"
|
||||||
|
});
|
||||||
|
|
||||||
|
conn.OnUserSpeechDetected = () =>
|
||||||
|
JsonSerializer.Serialize(new
|
||||||
|
{
|
||||||
|
@event = "speech-detected"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
await hub.ConnectToModel(async data =>
|
await hub.ConnectToModel(async data =>
|
||||||
{
|
{
|
||||||
var response = JsonSerializer.Deserialize<ModelResponseEvent>(data);
|
var response = JsonSerializer.Deserialize<ModelResponseEvent>(data);
|
||||||
if (response.Event == "clear")
|
if (response.Event == "speech-detected")
|
||||||
{
|
{
|
||||||
channel.ClearBuffer();
|
channel.ClearBuffer();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue