How to get sentence-level timestamps?

Ouverte
#54 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
38/100
Type d'issue
Fonctionnalité
Clarté
À clarifier
Activité
Calme
Stack technique
shell
Domaine
audio-video-rtc, cli

Piste de recherche

Commencez par la commande parakeet-cli transcribe et sa sortie JSON, puis examinez comment les horodatages des mots sont exposés. Comparez le comportement demandé pour des sous-titres au niveau des phrases avec le script make_subtitles.py lié, et déterminez si cela doit faire partie de la CLI ou prendre la forme d’un outil compagnon local. Le travail sera considéré comme terminé lorsqu’il existera un moyen documenté et respectueux de la vie privée de produire des sous-titres traditionnels au niveau des phrases.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

parakeet output is word-level timestamped, but is friendly/traditional to make a subtitle for a video/audio transcription. Is possible to get sentence-level output? There is a local tool that can do it?

I was able to get word-level transcription with:

parakeet-cli transcribe --model tdt-0.6b-v3-q4_k.gguf --input in.wav --json > out.json

And with this shell script I was able to convert to WebVTT subtitle:

#!/bin/sh
jq -r '
  def format_time:
    . as $s |
    ($s / 3600 | floor) as $h |
    (($s % 3600) / 60 | floor) as $m |
    ($s % 60 | floor) as $sec |
    ($s * 1000 | floor % 1000) as $ms |
    "\(if $h < 10 then "0" else "" end)\($h):\(if $m < 10 then "0" else "" end)\($m):\(if $sec < 10 then "0" else "" end)\($sec).\(if $ms < 10 then "00" elif $ms < 100 then "0" else "" end)\($ms)";

  "WEBVTT\n\n" + ([.words[] | "\(.start | format_time) --> \(.end | format_time)\n\(.w)"] | join("\n\n")) + "\n"
' "$1"
  • The output is one word per subtitle line, that is not very friendly to create a subtitle for a video or audio recording.
  • Do you know a way to convert the transcription in a more traditional (sentence-level timestamps) subtitle?
Workaround

Using Word Timestamp to Subtitles online tool, I was able to get an expected formatted subtitle from JSON output (from parakeet), but I'm searching a local/offline tool, because privacy.

This should work but give me errors, and I'm not a programmer to fix that.

Langage dominant
C++
Étoiles
869
Forks
107
Merge moyen
16 h 26 min
PR mergées (30 j)
30

Préparer son environnement

  • Fournit un Dockerfile ou un fichier Docker Compose
  • Aucun modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de mudler/parakeet.cpp

Toutes les issues de mudler/parakeet.cpp

Issues similaires

Plus d'issues C++

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.