-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchunks.ts
29 lines (24 loc) · 1.05 KB
/
chunks.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import { createFolderIfNotExists } from 'utils/fs.ts';
import Transcripts from 'common/Transcripts.ts';
import { Directory } from 'utils/dirs.ts';
export default function combineTranscriptsIntoChunks(chuckWordLimit: number) {
const chunksDirectory = new Directory(import.meta.url, '..', `data/chunks/${chuckWordLimit}`);
return async function (transcripts: Transcripts): Promise<Transcripts> {
console.log(
`➡️ Combining ${transcripts.size()} files into chunks (of up to ${chuckWordLimit} words each)`
);
// Create combined directory if it doesn't exist
await createFolderIfNotExists(chunksDirectory.path);
// Generate chunks for each transcript, and save them to the combined directory
let totalChunks = 0;
transcripts.reset();
for (const transcript of transcripts) {
await transcript.load();
await transcript.chunks.generate(chuckWordLimit);
await transcript.chunks.save(chunksDirectory.path);
totalChunks += transcript.chunks.count();
}
console.log(`✅ Combined into ${totalChunks} chunks`);
return transcripts;
};
}