chore: normalize line endings

This commit is contained in:
Maze Winther
2026-03-29 15:56:48 +02:00
parent 82817cb50c
commit 4d127a038b
736 changed files with 73880 additions and 73782 deletions
+49 -49
View File
@@ -1,49 +1,49 @@
import type { TranscriptionSegment, CaptionChunk } from "@/lib/transcription/types";
import {
DEFAULT_WORDS_PER_CAPTION,
MIN_CAPTION_DURATION_SECONDS,
} from "@/constants/transcription-constants";
export function buildCaptionChunks({
segments,
wordsPerChunk = DEFAULT_WORDS_PER_CAPTION,
minDuration = MIN_CAPTION_DURATION_SECONDS,
}: {
segments: TranscriptionSegment[];
wordsPerChunk?: number;
minDuration?: number;
}): CaptionChunk[] {
const captions: CaptionChunk[] = [];
let globalEndTime = 0;
for (const segment of segments) {
const words = segment.text.trim().split(/\s+/);
if (words.length === 0 || (words.length === 1 && words[0] === "")) continue;
const segmentDuration = segment.end - segment.start;
const wordsPerSecond = words.length / segmentDuration;
const chunks: string[] = [];
for (let i = 0; i < words.length; i += wordsPerChunk) {
chunks.push(words.slice(i, i + wordsPerChunk).join(" "));
}
let chunkStartTime = segment.start;
for (const chunk of chunks) {
const chunkWords = chunk.split(/\s+/).length;
const chunkDuration = Math.max(minDuration, chunkWords / wordsPerSecond);
const adjustedStartTime = Math.max(chunkStartTime, globalEndTime);
captions.push({
text: chunk,
startTime: adjustedStartTime,
duration: chunkDuration,
});
globalEndTime = adjustedStartTime + chunkDuration;
chunkStartTime += chunkDuration;
}
}
return captions;
}
import type { TranscriptionSegment, CaptionChunk } from "@/lib/transcription/types";
import {
DEFAULT_WORDS_PER_CAPTION,
MIN_CAPTION_DURATION_SECONDS,
} from "@/constants/transcription-constants";
export function buildCaptionChunks({
segments,
wordsPerChunk = DEFAULT_WORDS_PER_CAPTION,
minDuration = MIN_CAPTION_DURATION_SECONDS,
}: {
segments: TranscriptionSegment[];
wordsPerChunk?: number;
minDuration?: number;
}): CaptionChunk[] {
const captions: CaptionChunk[] = [];
let globalEndTime = 0;
for (const segment of segments) {
const words = segment.text.trim().split(/\s+/);
if (words.length === 0 || (words.length === 1 && words[0] === "")) continue;
const segmentDuration = segment.end - segment.start;
const wordsPerSecond = words.length / segmentDuration;
const chunks: string[] = [];
for (let i = 0; i < words.length; i += wordsPerChunk) {
chunks.push(words.slice(i, i + wordsPerChunk).join(" "));
}
let chunkStartTime = segment.start;
for (const chunk of chunks) {
const chunkWords = chunk.split(/\s+/).length;
const chunkDuration = Math.max(minDuration, chunkWords / wordsPerSecond);
const adjustedStartTime = Math.max(chunkStartTime, globalEndTime);
captions.push({
text: chunk,
startTime: adjustedStartTime,
duration: chunkDuration,
});
globalEndTime = adjustedStartTime + chunkDuration;
chunkStartTime += chunkDuration;
}
}
return captions;
}
+47 -47
View File
@@ -1,47 +1,47 @@
import type { LanguageCode } from "@/constants/language-constants";
export type TranscriptionLanguage = LanguageCode | "auto";
export interface TranscriptionSegment {
text: string;
start: number;
end: number;
}
export interface TranscriptionResult {
text: string;
segments: TranscriptionSegment[];
language: string;
}
export type TranscriptionStatus =
| "idle"
| "loading-model"
| "transcribing"
| "complete"
| "error";
export interface TranscriptionProgress {
status: TranscriptionStatus;
progress: number;
message?: string;
}
export type TranscriptionModelId =
| "whisper-tiny"
| "whisper-small"
| "whisper-medium"
| "whisper-large-v3-turbo";
export interface TranscriptionModel {
id: TranscriptionModelId;
name: string;
huggingFaceId: string;
description: string;
}
export interface CaptionChunk {
text: string;
startTime: number;
duration: number;
}
import type { LanguageCode } from "@/constants/language-constants";
export type TranscriptionLanguage = LanguageCode | "auto";
export interface TranscriptionSegment {
text: string;
start: number;
end: number;
}
export interface TranscriptionResult {
text: string;
segments: TranscriptionSegment[];
language: string;
}
export type TranscriptionStatus =
| "idle"
| "loading-model"
| "transcribing"
| "complete"
| "error";
export interface TranscriptionProgress {
status: TranscriptionStatus;
progress: number;
message?: string;
}
export type TranscriptionModelId =
| "whisper-tiny"
| "whisper-small"
| "whisper-medium"
| "whisper-large-v3-turbo";
export interface TranscriptionModel {
id: TranscriptionModelId;
name: string;
huggingFaceId: string;
description: string;
}
export interface CaptionChunk {
text: string;
startTime: number;
duration: number;
}