Public Access
feat: add local Resemblyzer speaker recognition
PR and Push Build/Test / build-and-test (push) Successful in 12m37s
PR and Push Build/Test / build-and-test (push) Successful in 12m37s
This commit is contained in:
@@ -16,7 +16,10 @@ using Microsoft.Extensions.Options;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
builder.Logging.AddProvider(new MeetingAssistantFileLoggerProvider());
|
||||
builder.Services.Configure<MeetingAssistantOptions>(builder.Configuration.GetSection("MeetingAssistant"));
|
||||
builder.Services.AddSingleton<IValidateOptions<MeetingAssistantOptions>, MeetingAssistantSpeakerSampleOptionsValidator>();
|
||||
builder.Services.AddOptions<MeetingAssistantOptions>()
|
||||
.Bind(builder.Configuration.GetSection("MeetingAssistant"))
|
||||
.ValidateOnStart();
|
||||
builder.Services.AddSingleton<ILaunchProfileOptionsProvider, ConfigurationLaunchProfileOptionsProvider>();
|
||||
#if WINDOWS
|
||||
builder.Services.AddSingleton<MicrophoneDeviceSelection>();
|
||||
@@ -91,8 +94,35 @@ builder.Services.AddSingleton<ISpeakerSnippetExtractor, WavSpeakerSnippetExtract
|
||||
builder.Services.AddSingleton<ISpeakerIdentityDiarizationClient, AzureSpeechSpeakerIdentityDiarizationClient>();
|
||||
builder.Services.AddSingleton<ISpeakerIdentityMatchValidator, PyannoteSpeakerIdentityMatchValidator>();
|
||||
builder.Services.AddSingleton<ISpeakerIdentityMatcher, AzureSpeechSpeakerIdentityMatcher>();
|
||||
builder.Services.AddSingleton<ISpeakerIdentificationService, SpeakerIdentityService>();
|
||||
builder.Services.AddSingleton<ISpeakerIdentityMergeService, SpeakerIdentityMergeService>();
|
||||
builder.Services.AddSingleton<SpeakerIdentityService>();
|
||||
builder.Services.AddSingleton<IResemblyzerVoiceEncoder, VenvResemblyzerVoiceEncoder>();
|
||||
builder.Services.AddSingleton(services => new ResemblyzerVoiceClusterMatcher(
|
||||
services.GetRequiredService<IOptions<MeetingAssistantOptions>>().Value.SpeakerIdentification.Resemblyzer,
|
||||
services.GetRequiredService<ILogger<ResemblyzerVoiceClusterMatcher>>()));
|
||||
builder.Services.AddSingleton(services => new ResemblyzerVoiceVectorOutlierPruner(
|
||||
services.GetRequiredService<IOptions<MeetingAssistantOptions>>().Value.SpeakerIdentification.Resemblyzer,
|
||||
services.GetRequiredService<ILogger<ResemblyzerVoiceVectorOutlierPruner>>()));
|
||||
builder.Services.AddSingleton<ResemblyzerSpeakerIdentificationService>();
|
||||
builder.Services.AddSingleton(services =>
|
||||
{
|
||||
var resemblyzer = services.GetRequiredService<IOptions<MeetingAssistantOptions>>()
|
||||
.Value.SpeakerIdentification.Resemblyzer;
|
||||
return resemblyzer.Enabled
|
||||
? SpeakerSampleCollectionPolicy.IndependentVectors(resemblyzer.MaxVectorsPerIdentity)
|
||||
: SpeakerSampleCollectionPolicy.ExistingBackend;
|
||||
});
|
||||
builder.Services.AddSingleton<ISpeakerIdentificationService>(services =>
|
||||
services.GetRequiredService<IOptions<MeetingAssistantOptions>>()
|
||||
.Value.SpeakerIdentification.Resemblyzer.Enabled
|
||||
? services.GetRequiredService<ResemblyzerSpeakerIdentificationService>()
|
||||
: services.GetRequiredService<SpeakerIdentityService>());
|
||||
builder.Services.AddSingleton<SpeakerIdentityMergeService>();
|
||||
builder.Services.AddSingleton<ResemblyzerSpeakerIdentityMergeService>();
|
||||
builder.Services.AddSingleton<ISpeakerIdentityMergeService>(services =>
|
||||
services.GetRequiredService<IOptions<MeetingAssistantOptions>>()
|
||||
.Value.SpeakerIdentification.Resemblyzer.Enabled
|
||||
? services.GetRequiredService<ResemblyzerSpeakerIdentityMergeService>()
|
||||
: services.GetRequiredService<SpeakerIdentityMergeService>());
|
||||
builder.Services.AddSingleton<ISpeakerIdentityAttendeeCanonicalizer, SpeakerIdentityAttendeeCanonicalizer>();
|
||||
builder.Services.AddSingleton<IMeetingSummaryArtifactResolver, MeetingSummaryArtifactResolver>();
|
||||
builder.Services.AddSingleton<IMeetingSummaryFailureWriter, MeetingSummaryFailureWriter>();
|
||||
@@ -134,6 +164,7 @@ builder.Services.AddHostedService<OfflineTranscriptionBacklogHostedService>();
|
||||
builder.Services.AddHostedService<SpeakerIdentityDatabaseInitializer>();
|
||||
builder.Services.AddHostedService<SpeechRecognitionPipelineHostedService>();
|
||||
builder.Services.AddHostedService<PyannoteDiarizationWarmupHostedService>();
|
||||
builder.Services.AddHostedService<ResemblyzerWarmupHostedService>();
|
||||
#if WINDOWS
|
||||
builder.Services.AddHostedService<GlobalHotkeyService>();
|
||||
builder.Services.AddHostedService<UnoTaskbarIconService>();
|
||||
|
||||
Reference in New Issue
Block a user