jb_alvarado
Lieutenant
- Registriert
- Sep. 2015
- Beiträge
- 617
Guten Morgen an Alle!
Ich wollte eure Meinung zu folgendem Sachverhalt wissen:
Hintergrund
ich arbeite für einen gemeinnützigen Verein und wir betreiben ein Internet TV, sowie eine Mediathek. Inhalt sind hauptsächlich christliche Vorträge.
Wir würden uns gerne in Sachen Barrierefreiheit verbessern und Untertitel anbieten. Da wir nicht die Manpower haben, alles selbst zu betiteln, machen wir das mit faster_whisper, ist nicht ganz fehlerfrei aber funktioniert erstaunlich gut. Zu den Untertiteln möchte ich die Texte auch in eine Datenbank schreiben, um so nach Inhalten suchen zu können.
Sachverhalt
Bei Tests habe ich von ca. 1500 Videos (ist ca. 1/5 von der Gesamtmenge) die Untertitel in eine Postgresql Datenbank geschrieben, im Format:
Dabei hatte meine Tabelle am Ende ~120MB. Eine Volltextsuche ohne Index hat daraufhin ~8 Sekunden gedauert. Mit Index 4 Sekunden.
Mein Gedanke war nun, dass ich die Volltextsuche nach Meilisearch verlagere, weil ich damit in der Vergangenheit gute Erfahrung gemacht habe. Auch bietet es experimentell AI-Search an, was für die Zukunft sicher noch interessant werden könnte. (Elastic Search ist mir zu groß und würde ich gerne drauf verzichten.)
Ich frage mich nun, wie ich die Dokumente aufbauen soll. Soll ich weiterhin pro Zeitstempel und Textzeile ein Dokument anlegen, oder soll ich pro Untertiteldatei ein Dokument anlegen, in diesem Format:
Man sagt ja, dass kleinere Dokumente effizienter zu verarbeiten sind, allerdings bin ich mir nicht ganz sicher von welcher Größe bei "kleinen Dokumenten" gesprochen wird. Ein Vortrag von einer Stunden und 50 Minuten hat um die 3000 Zeilen Text und 180kb Dateigröße. Ist das noch klein?
Wenn ich nur ein Dokument pro Video anlegen würde, wäre es von meinem Verständnis her auch einfacher, später per AI-Search nach sinnhaften Ergebnissen zu suchen, weil man dann ja den ganzen Zusammenhang hat. Ob so die Möglichkeit bestehen bleibt, dass man die genaue zeitliche Position bestimmen kann, weiß ich leider noch nicht, schön wäre es.
Wie würdet ihr hier vorgehen? Macht es Sinn pro Untertiteldatei ein Dokument anzulegen, oder lieber doch pro Untertitelzeile?
Ich wollte eure Meinung zu folgendem Sachverhalt wissen:
Hintergrund
ich arbeite für einen gemeinnützigen Verein und wir betreiben ein Internet TV, sowie eine Mediathek. Inhalt sind hauptsächlich christliche Vorträge.
Wir würden uns gerne in Sachen Barrierefreiheit verbessern und Untertitel anbieten. Da wir nicht die Manpower haben, alles selbst zu betiteln, machen wir das mit faster_whisper, ist nicht ganz fehlerfrei aber funktioniert erstaunlich gut. Zu den Untertiteln möchte ich die Texte auch in eine Datenbank schreiben, um so nach Inhalten suchen zu können.
Sachverhalt
Bei Tests habe ich von ca. 1500 Videos (ist ca. 1/5 von der Gesamtmenge) die Untertitel in eine Postgresql Datenbank geschrieben, im Format:
Code:
id | media_id | start | end | text
Dabei hatte meine Tabelle am Ende ~120MB. Eine Volltextsuche ohne Index hat daraufhin ~8 Sekunden gedauert. Mit Index 4 Sekunden.
Mein Gedanke war nun, dass ich die Volltextsuche nach Meilisearch verlagere, weil ich damit in der Vergangenheit gute Erfahrung gemacht habe. Auch bietet es experimentell AI-Search an, was für die Zukunft sicher noch interessant werden könnte. (Elastic Search ist mir zu groß und würde ich gerne drauf verzichten.)
Ich frage mich nun, wie ich die Dokumente aufbauen soll. Soll ich weiterhin pro Zeitstempel und Textzeile ein Dokument anlegen, oder soll ich pro Untertiteldatei ein Dokument anlegen, in diesem Format:
JSON:
{
"id": 1,
"media_id": 12,
"filename": "subtitle_file.vtt",
"hash": "abc123hash",
"language": "de",
"subtitles": [
{
"start": "00:00:10,000",
"end": "00:00:12,000",
"text": "Hello, world!"
},
{
"start": "00:00:13,000",
"end": "00:00:15,000",
"text": "This is a test."
}
]
}
Man sagt ja, dass kleinere Dokumente effizienter zu verarbeiten sind, allerdings bin ich mir nicht ganz sicher von welcher Größe bei "kleinen Dokumenten" gesprochen wird. Ein Vortrag von einer Stunden und 50 Minuten hat um die 3000 Zeilen Text und 180kb Dateigröße. Ist das noch klein?
Wenn ich nur ein Dokument pro Video anlegen würde, wäre es von meinem Verständnis her auch einfacher, später per AI-Search nach sinnhaften Ergebnissen zu suchen, weil man dann ja den ganzen Zusammenhang hat. Ob so die Möglichkeit bestehen bleibt, dass man die genaue zeitliche Position bestimmen kann, weiß ich leider noch nicht, schön wäre es.
Wie würdet ihr hier vorgehen? Macht es Sinn pro Untertiteldatei ein Dokument anzulegen, oder lieber doch pro Untertitelzeile?