video_translate/src/lib/alignment/speakerAssignment.test.ts
2026-03-18 11:42:00 +08:00

26 lines
933 B
TypeScript

import { describe, expect, it } from 'vitest';
import { assignSpeakerToWord, assignSpeakersToWords } from './speakerAssignment';
describe('speakerAssignment', () => {
it('assigns each word to the speaker segment with the maximum overlap', () => {
const speakerId = assignSpeakerToWord(
{ text: 'hello', startTime: 1.0, endTime: 1.4, speakerId: 'unknown', confidence: 0.95 },
[
{ speakerId: 'spk_0', startTime: 0.8, endTime: 1.1 },
{ speakerId: 'spk_1', startTime: 1.1, endTime: 1.6 },
],
);
expect(speakerId).toBe('spk_1');
});
it('falls back to unknown when a word has no overlapping speaker segments', () => {
const words = assignSpeakersToWords(
[{ text: 'hello', startTime: 1.0, endTime: 1.4, speakerId: 'unknown', confidence: 0.95 }],
[{ speakerId: 'spk_0', startTime: 2.0, endTime: 2.5 }],
);
expect(words[0].speakerId).toBe('unknown');
});
});