mirror of https://github.com/Chocobozzz/PeerTube
67 lines
3.4 KiB
TypeScript
67 lines
3.4 KiB
TypeScript
/* eslint-disable @typescript-eslint/no-unused-expressions, no-new, max-len */
|
|
import { TranscriptFile, TranscriptFileEvaluator } from '@peertube/peertube-transcription'
|
|
import { buildAbsoluteFixturePath } from '@peertube/peertube-node-utils'
|
|
import { join } from 'path'
|
|
import { mkdir, rm } from 'node:fs/promises'
|
|
import { expect } from 'chai'
|
|
|
|
describe('Transcript File Evaluator', function () {
|
|
const transcriptDirectory = buildAbsoluteFixturePath('transcription/transcript-evaluator')
|
|
const referenceTranscriptFilepath = buildAbsoluteFixturePath('transcription/transcript/reference.txt')
|
|
|
|
before(async function () {
|
|
await mkdir(transcriptDirectory, { recursive: true })
|
|
})
|
|
|
|
it(`may not compare files in another format than txt`, async function () {
|
|
const vttReference = await TranscriptFile.write({
|
|
path: join(transcriptDirectory, 'reference.vtt'),
|
|
format: 'vtt',
|
|
content: ''
|
|
})
|
|
const vttHypothesis = await TranscriptFile.write({
|
|
path: join(transcriptDirectory, 'hypothesis.vtt'),
|
|
format: 'vtt',
|
|
content: ''
|
|
})
|
|
expect(() => new TranscriptFileEvaluator(vttReference, vttHypothesis)).to.throw('Can only evaluate txt transcript file')
|
|
})
|
|
|
|
it(`evaluation must return coherent wer & cer`, async function () {
|
|
const reference = new TranscriptFile({
|
|
path: referenceTranscriptFilepath,
|
|
language: 'fr',
|
|
format: 'txt'
|
|
})
|
|
const hypothesis = await TranscriptFile.write({
|
|
path: join(transcriptDirectory, 'openai.txt'),
|
|
content: `Communiquez lors d'une classe transplante. Utilisez les photos prises lors de cette classe pour raconter quotidiennement le séjour vécu.
|
|
C'est le scénario P-Dagujic présenté par monsieur Navoli, professeur ainsi que le 3 sur une école alimentaire de Montpellier.
|
|
La première application a utilisé ce ralame déatec. L'enseignant va alors transférer les différentes photos réalisés lors de la classe transplante.
|
|
Dans un dossier, spécifique pour que les élèves puissent le retrouver plus facilement. Il téléverse donc ses photos dans le dossier, dans le venté, dans la médiatèque de la classe.
|
|
Pour terminer, il s'assure que le dossier soit bien ouvert aux utilisateurs afin que tout le monde puisse l'utiliser.
|
|
Les élèves par la suite utilisera le blog. A partir de leurs nantes, il pourront se loi de parposte rédigeant un article d'un reinté.
|
|
Ils illustront ses articles à l'aide des photos de que mon numérique mise à n'accélier dans le venté.
|
|
Pour se faire, il pourront utiliser les diteurs avancés qui les renvèrent directement dans la médiatèque de la classe où il pourront retrouver le dossier créé par leurs enseignants.
|
|
Une fois leur article terminée, les élèves soumétront se lui-ci au professeur qui pourra soit la noté pour correction ou le public.
|
|
Ensuite, il pourront lire et commenter ce de leurs camarades ou répondre aux commentaires de la veille.
|
|
`,
|
|
format: 'txt',
|
|
language: 'fr'
|
|
})
|
|
const evaluator = new TranscriptFileEvaluator(reference, hypothesis)
|
|
const wer = await evaluator.wer()
|
|
expect(wer).to.be.below(1)
|
|
expect(wer).to.be.greaterThan(0.3)
|
|
|
|
const cer = await evaluator.cer()
|
|
expect(cer).to.be.below(0.1)
|
|
expect(cer).to.be.greaterThan(0.09)
|
|
console.log(await evaluator.alignement())
|
|
})
|
|
|
|
after(async function () {
|
|
await rm(transcriptDirectory, { recursive: true, force: true })
|
|
})
|
|
})
|