version 18 fixes

This commit is contained in:
Jacob Dubin
2026-04-26 07:37:31 -05:00
parent baf886097e
commit f3dbd6c7fd
18 changed files with 7888 additions and 35 deletions

View File

@@ -53,6 +53,30 @@ public sealed class LocalWhisperCppBufferedAudioSttStrategyTests
Assert.False(strategy.CanHandle(turn));
}
[Fact]
public void CanHandle_ReturnsFalse_WhenBufferedAudioHasNoOpusIdentificationHeader()
{
var strategy = new LocalWhisperCppBufferedAudioSttStrategy(
new BufferedAudioSttOptions
{
EnableLocalWhisperCpp = true,
FfmpegPath = "ffmpeg",
WhisperCliPath = "whisper-cli",
WhisperModelPath = "model.bin"
},
new FakeExternalProcessRunner());
var turn = new TurnContext
{
Attributes = new Dictionary<string, object?>
{
["bufferedAudioFrames"] = new[] { BuildMinimalOggPageWithoutOpusHead() }
}
};
Assert.False(strategy.CanHandle(turn));
}
[Fact]
public async Task TranscribeAsync_UsesFfmpegAndWhisperCpp_WhenConfigured()
{
@@ -119,6 +143,13 @@ public sealed class LocalWhisperCppBufferedAudioSttStrategyTests
];
}
private static byte[] BuildMinimalOggPageWithoutOpusHead()
{
var page = BuildMinimalOggPage();
"NotAudio"u8.CopyTo(page.AsSpan(28, 8));
return page;
}
private sealed class FakeExternalProcessRunner : IExternalProcessRunner
{
public List<(string FileName, IReadOnlyList<string> Arguments)> Calls { get; } = [];