Transcriptions (introduction)

De April MediaWiki
Aller à la navigationAller à la recherche

Wiki du groupe Transcriptions

http://www.april.org/fr/groupes/transcriptions

Introduction

Le groupe de transcription de l'April est ouvert à toutes les bonnes volontés. Les remarques constructives sont les bienvenues.

Pour nous contacter, il suffit de s'inscrire à la liste de diffusion : http://www.april.org/wws/info/transcriptions

Présentation

L'objectif est de transcrire des documents sonores ou vidéos intéressants et traitant de logiciels libres, de ressources documentaires diffusées selon des conditions comparables à celles des logiciels libres, et de tous sujets pertinents annexes et connexes : transformation en texte brut (ou HTML...) de (parties de) bandes son ou vidéo de conférences ou interventions stratégiques ou importantes: RMLL, CSI, interviews radio... Réflexion sur des programmes facilitant la tâche. Contact des intervenants pour s'assurer de leur accord ou conditions. Réécriture légère sur un ton passant mieux à l'écrit. Ainsi ces contenus seront plus accessibles, disponibles dans les moteurs de recherche, imprimables, citables, etc.

Motivation

Le groupe de travail «Transcriptions» vise à recenser, annoter et transformer au format texte brut (ou HTML) des documents sonores ou vidéo présentant un intérêt pour l'objet de l'association.

En termes de visibilité dans les moteurs de recherche, un événement, un discours, une émission... non transcrits n'existent pas. Du point de vue de la mémoire, un événement non enregistré en vue d'une transcription future laisse chez les personnes présentes dans le public une trace qui s'efface vite - quel souvenir conservez-vous des discours que vous avez entendus voici quelques années? Parfois, on observe d'intéressantes évolutions dans les idées, argumentations, ou exemples présentés par un orateur récurrent.

Produire des textes permet encore au lecteur de s'y reporter facilement, d'extraire facilement des citations pour appuyer un argumentaire, de les lire en diagonale ou à son rythme sans devoir subir le débit de l'orateur, son accent, une mauvaise qualité d'enregistrement. On élargit considérablement le public potentiellement atteint pour un même effort d'organisation initial.

Pour toutes ces raisons, on peut soutenir que la présence d'un format texte dans les archives multiplie considérablement la visibilité et l'impact d'un événement, et qu'il est donc souhaitable que ses organisateurs se donnent les moyens ou ressources d'organiser cet effort.

Les sources sont les conférences et interventions, notamment de sommités; les émissions des médias grand public; certaines vidéos issues du Web. Nous disposons déjà de plusieurs dizaines de documents, pour la plupart stockés sur la zone web « Médias » et recensés sur le présent document.

Chacun choisira les interventions qui lui semblent les plus importantes ou intéressantes en priorité, en s'assurant préalablement de l'accord des personnes ou ayant-droits qui pourraient juridiquement s'opposer à la diffusion du texte transcrit.

C'est un travail assez long et demandant d'écrire la langue parlée sans trop de fautes. Les premières mesures montrent qu'il faut compter (selon la langue, le débit de l'orateur, son accent, la qualité de l'enregistrement) 5 à 7h de travail pour écrire le premier jet d'une heure d'enregistrement... qu'il faut encore corriger, relire/réécrire, faire relire aux personnes concernées, et mettre en page, En termes financiers, s'il fallait rémunérer ce travail, chaque heure bien transcrite coûterait largement 200 € (ordre de grandeur). On ne pourra donc jamais tout faire, et on comprend qu'il est important de traiter en priorité les documents stratégiques les plus importants - même si l'intérêt personnel du bénévole et l'urgence sont également des facteurs.

Si vous souhaitez en savoir plus, contactez le groupe de travail sur sa liste de diffusion.

Les copies locales des médias sont autant que possible conservées dans leur format original, même s'il ne s'agit pas d'un format ouvert au sens de l'article 4 de la loi française nº 2004-575 du 21 juin 2004 : « On entend par standard ouvert tout protocole de communication, d'interconnexion ou d'échange et tout format de données interopérable et dont les spécifications techniques sont publiques et sans restriction d'accès ni de mise en oeuvre. »

Les raisons de ce choix :

  • ce groupe de travail ne vise pas à produire de médias; il n'a donc pas de dimension d'incitation et peu de risques de devoir acquitter des amendes ou frais de licence;
  • ces formats sont lisibles avec des logiciels libres (un critère suffisant : ils sont testés avec des paquets officiels de la distribution Debian GNU/Linux ;
  • À ce jour, toute transformation dans un format ouvert est complexe, ad hoc, buggée, et introduit presque toujours des pertes de qualité, parfois inacceptables car détectables au point de gêner. Il y a donc destruction d'information, ce qui est presque toujours une mauvaise chose.

Ainsi, la conférence de Michael Hart à l'UNESCO de Paris en 2004 fut sans doute retraitée, car un long passage en est inaudible, et ce symptôme est typique d'un bug observé du programme mencoder.

De même, une manipulation visant à n'extraire que la portion pertinente d'une vidéo introduit souvent de désagréables défauts de fluidité dans la bande son.

Comment contribuer

Tout coup de main permettant de se rapprocher de ces objectifs est donc le bienvenu:

  • Correction de fond ou de forme portant sur le présent document
  • Signalement d'un document non encore mentionné ici
  • Astuces techniques pour transcrire plus vite, mieux, plus facilement
  • Relecture des documents déjà transcrits
  • Volontariat pour transcrire des documents non encore transcrits:
    • En ce cas, insérez régulièrement des time codes (estampilles temporelles); voyez des exemples dans les documents déjà transcrits. Ils pourront être exploités pour renvoyer directement au bon moment du média source.
    • Prenez note du temps effectif de travail nécessaire, pour qu'on l'évalue au mieux

Avant tout travail, contactez la liste de diffusion; il n'est pas nécessaire d'être abonné pour y écrire, mais c'est souhaitable pour lire les réponses plus facilement. Vous confirmerez ainsi que personne d'autre ne s'occupe de la même chose. Quand vous aurez le feu vert vous serez noté dans ce document récapitulatif.

Procédure et critères pour choisir un document à transcrire:

  • une source publique, non restreinte, peut être plus motivante (diffusion plus facile)
  • opter de préférence pour un orateur connu ou prestigieux, une intervention, une conférence, un sujet important ou d'actualité
  • pour débuter et s'habituer à l'exercice, on choisira d'abord des documents de longueur modeste

Il est préférable de prendre contact avec l'intervenant par politesse et pour s'assurer de son accord; il pourra suivre la progressoin du travail, fournir des documents complémentaires, relire, vérifier, corriger...

On prendra soin également d'insérer régulièrement des timecodes dans le document transcrit pour retrouver plus facilement le passage concerné, tirer des liens depuis le document final mis en page vers le bon moment dans le fichier audio ou vidéo...

Pour évaluer correctement le travail nécessaire, veillez à prendre note du temps de travail effectif consacré au travail.

Après inscription dans le présent document, la mise à jour prendra effet sur le site web dans l'heure (une crontab s'exécute aux minutes 00 et 30; il pourra être nécessaire de recharger la page web dans le navigateur. Pour connaître la version mise en ligne, vérifiez la valeur de la mention Id en début de document (l'heure indiquée est exprimée dans le fuseau horaire UTC).

Contacts

Pour éviter de publier des adresses électroniques en clair, je rappelle que tout membre d'April dispose d'un alias construit comme suit: initiale de son prénom suivie de son nom (plus numéro éventuel pour les homonymies). Les accents disparaissent. Ainsi Jean Dupont peut normalement être joint à l'adresse jdupont À april POINT org.

Pour joindre le responsable du groupe de travail, vous pouvez lui envoyer un courrier électronique. L'adresse générique, attachée à la fonction, est définie comme suit: la chaîne resp-transcriptions, le nom de domaine suivant l'arobase étant encore une fois celui de l'association.

Volumétrie

Calcul effectué avec le programme Progress.pl. Penser à l'exécuter à chaque ajout de données...

Cette page rassemble une collection de médias sonores et vidéo.

Durées cumulées pour sources publiques:

  • 15:43:09 transcrit (95 médias)
  • 4:09:58 en cours (3 médias)
  • 6 d. 12:32:51 disponible (226 médias)

Interprétation: d. indique un nombre de jours; les autres nombres sont au format hh:mm:ss (heures, minutes, secondes) ou mm:ss (minutes, secondes).

Modes opératoires et conseils techniques

Liens et programmes utiles

  • Mplayer lit la plupart des formats vidéo utilisés; je ne pense pas qu'un autre programme libre en lise certains que lui ne sait pas lire. Il est (désormais) packagé par Debian. Il y a apparemment des questions compliquées de codes disponibles mais pas libres.
  • Un navigateur web en mode texte comme w3m (packagé par Debian) est parfois bien pratique.
  • Les URL débutant par itpc://... ??? TODO. Exemple: 1 sur la page 2.
  • Les URL débutant par mms:// se téléchargent avec le programme mimms (packagé par Debian).
  • Les URL débutant par rtsp://... Apparemment le paquet Debian livemedia-utils et son programme openRTSP se chargent de cela, mais je n'ai pas réussi à le faire fonctionner. ??? TODO. Exemple: [rtsp://212.95.67.121:554/permanent/c6/promos/070619_fr.rmvb?cloakport=80,554,7070 1] vu sur 2 vu sur 3.
  • Un flux RSS mentionne l'URL du média. Exemple: 1 trouvé sur la page 2 mentionne 3 (lien désormais cassé...).
  • Les URL débutant par pnm://...??? TODO Exemple: [pnm://212.95.67.121:7070/permanent/c6/promos/070619_fr.rmvb?cloakport=80,554,7070 1] vu sur 2 vu sur 3.
  • TODO: comment télécharger les vidéos annoncées au format RealPlayer? Exemple: 1 trouvé sur la page 2.
  • Validation XHTML.
  • Validation CSS.

Méthode générale

Traitons par exemple le cas d'un podcast.

Utiliser le navigateur Firefox et installer l'extension Firebug.

Dans la sous-fenêtre de Firebug, onglet Net, on voit dans la liste un nom de fichier (nom_de_fichier.mp3). Clic droit, Copy Location. Ça semble fonctionner avec Youtube et de nombreux sites.

Description plus détaillée: Télécharger n'importe quel contenu sur les sites de diffusions de vidéos et MP3.

Connaître la durée d'un document

Format Extension Commande
Ogg Vorbis ou Ogg Theora .ogg ogginfo
MPEG, AVI .mp3, .mp4, .mpg, .avi mplayer -identify; chercher ID_LENGTH (valeur exprimée en secondes); ne disposer que du début du fichier suffit parfois
Général .xxx Approximation avec: time player fichier

Programmes d'assistance à la transcription

Trans

Le programme trans du paquet Debian transcriber semble riche et prometteur. Si quelqu'un apprend à s'en servir et peut expliquer comment procéder efficacement, ses conseils seront les bienvenus (TODO). Attention, la page web du projet donnée dans la documentation a disparu; le projet est désormais hébergé sur Sourceforge.

Programme temporel simple

Le programme [bin/Play.pl Play.pl] permet de jouer des petites portions (intervalles) d'un média afin de les transcrire au fur et à mesure. Il dispose d'options d'ergonomie. Il joue le fichier indiqué dans la variable d'environnement MEDIA_FILE. Les valeurs des variables utilisées sont rappelées dans un xmessage.

On pourra l'interfacer avec l'éditeur de textes VIM en insérant les lignes suivantes dans son fichier de configuration:

" To use for transcriptions
:map <F1> !!perl ~/bin/Play.pl GotoPreviousInterval<CR>
:map <F2> !!perl ~/bin/Play.pl PlayCurrentInterval<CR>
:map <F3> !!perl ~/bin/Play.pl PlayNextInterval<CR>A
:map <F4> !!perl ~/bin/Play.pl GotoNextInterval<CR>A
:map <F5> !!perl ~/bin/Play.pl ShortenIntervalLength<CR>
:map <F6> !!perl ~/bin/Play.pl ShortenOverlapLength<CR>
:map <F7> !!perl ~/bin/Play.pl LengthenOverlapLength<CR>
:map <F8> !!perl ~/bin/Play.pl LengthenIntervalLength<CR>
:map <F9> !!perl ~/bin/Play.pl ReduceSpeed<CR>
:map <F10> !!perl ~/bin/Play.pl AccelerateSpeed<CR>
:map <F11> !!perl ~/bin/Play.pl ForwardTwoSeconds<CR>
:map <F12> !!perl ~/bin/Play.pl MarkUpOffset<CR>

Ceci mettra en place les effets suivants:

Touche Commande Effet
F1 GotoPreviousInterval Recule d'un intervalle.
F2 PlayCurrentInterval (Re)joue l'intervalle actuel.
F3 PlayNextInterval Joue l'intervalle suivant sans y avancer.
F4 GotoNextInterval Avance d'un intervalle.
F5 ShortenIntervalLength Réduit d'une seconde la durée de l'intervalle (durée minimale: 1 seconde).
F6 ShortenOverlapLength Réduit d'une seconde le recouvrement entre deux intervalles (durée minimale: 1 seconde).
F7 LengthenOverlapLength Augmente d'une seconde le recouvrement entre deux intervalles (durée maximale: celle de l'intervalle).
F8 LengthenIntervalLength Augmente d'une seconde la durée de l'intervalle (durée maximale: durée totale).
F9 ReduceSpeed Réduit la vitesse de 5% (vitesse minimale: 50%) et arrondit à 1 si on est 1 plus ou moins 3%.
F10 AccelerateSpeed Augmente la vitesse de 5% (vitesse maximale: 2) et arrondit à 1 si on est 1 plus ou moins 3%.
F11 ForwardTwoSeconds Avance de deux secondes.
F12 MarkUpOffset Insère le timecode actuel dans la transcription.

Note: VIM n'est en rien imposé ou nécessaire; la plupart des autres éditeurs de texte programmables pourront eux aussi être raccordés au programme Play.pl. Communiquez-moi les instructions de configuration et je les mentionnerai ici.

Programme syllabique plus évolué

Cette méthode analyse dans un premier temps le fichier sonore pour repérer les silences le ponctuant et y compter les syllabes. Elle repose sur le fait que SoX, à partir de sa version 14, est capable de jouer des portions de bande son découpées au centième de seconde près.

L'ensemble se compose de trois éléments:

  1. Un [bin/w.c programme C], qui analyse le fichier son (au format WAV 16 bits). On le compile sans difficulté particulière, par exemple avec gcc -Wall -O2 -o w wav.c.
  2. Un [bin/P.pl script Perl], qui exploite les données produites pour en jouer les portions repérées une à une.
  3. Quelques lignes de configuration instrumentant l'éditeur de texte employé pour faire appel à ce script.


Méthode opératoire pour appliquer le découpage syllabique

Méthode opératoire (on ne détaille pas les répertoires de stockage et chemins d'accès, ces choix étant laissés libres et ces notions supposées connues):

  1. Télécharger le fichier son (exemple utilisé ici: FreeSoft.ogg).
  2. Le convertir au format WAV 16 bits.
    1. On peut faire appel au programme oggdec (paquet Debian vorbis-tools): oggdec fichier.ogg
  3. Repérer les syllabes et silences de ce fichier: ./w FreeSoft.wav | tee TIMECODES.txt.

Ce dernier calcul dépend des choix de constantes faits dans w.c. Avec les réglages suivants:

#define MAX_SILENCE (1.0)       /* Always cut when silences that long (in seconds) */
#define MAX_DURATION  20        /* Maximum duration of the chunk to listen (in seconds) */

#define MIN_SYLLABLES 20        /* Minimum number of syllables to listen to (precedence smaller than MAX_SILENCE) */
#define MAX_SYLLABLES 40        /* Maximum number of syllables to listen to */

#define ENERGY_LEVELS 30            /* Range where we will map energy levels (ignoring the zero as silences) */
#define PER_SECOND_GRANULARITY 100  /* Basic time length */
#define MAX_SYLLABLES_PER_SECOND 10 /* Maximum speech rate */

On obtiendra plus de mille lignes:

0.00 5.31 5.31 0.42 35
5.31 11.24 5.93 0.72 35
11.24 17.84 6.60 0.43 33
17.84 29.56 11.72 1.64 33
[...]
5681.41 5688.26 6.85 0.23 40 
5688.26 5694.88 6.62 0.40 37
5694.88 5699.70 4.82 0.63 30
5699.70 5700.89 1.19 0.00 40

On incorpore ces lignes sous la ligne __DATA__ dans le fichier P.pl. Note: dans ce fichier une commande produit un bip pour clarifier les séparations (le fichier /usr/share/sounds/KDE_Beep_Pop.wav relève du paquet Debian kdebase-data):

my $beep = "play /usr/share/sounds/KDE_Beep_Pop.wav;";

On règle l'éditeur de textes (dans cet exemple nous détaillerons le cas de VIM) comme suit:

" Start the chunk
:map <F1> :.,$!perl P.pl<CR>
" 1 more second of overlap in the beginning
:map <F12> :.,$!perl PP.pl<CR>o
" Tag afterwards: type this on the first line of the rest of the transcription
:map <F8> Gdd''P<F1>
:syntax match TimeCode /^\[\[[0-9].*$/
:highlight TimeCode ctermfg=DarkGreen

" Cut word before cursor
:map <F5> i...<CR>...<ESC>

" Check mode
:map <F2> !!perl P.pl<CR>jdd
" Check mode, with more overlap
:map <F11> !!perl PP.pl<CR>o

" Wraps the current word (>= 2 letters) with "*"
:map <F9> hebi*<ESC>ea*<ESC>

On pourra sauvegarder ces quelques lignes dans un fichier transcription.vim. La première, qui définit le comportement de la touche F1, indique notamment à l'éditeur de textes VIM de transmettre au programme P.pl toute la suite du fichier, à partir de la ligne courante, jusqu'à la fin.

Note: on appelle timecode un marqueur temporel de type hh:mm:ss.cc (heures, minutes, secondes, centièmes; les heures et minutes ne sont pas toujours précisées quand elles sont nulles.

La touche F1 sert alors à la transcription (et les touches F2 ou F8 à l'insertion de timecodes dans les fichiers déjà transcrits; F11 ajoutant une seconde de contexte sonore au début). La touche F12 donne un peu plus de contexte au début de l'extrait courant. La touche F9 encadre le mot courant, s'il compte plus de deux lettres, d'astérisques.

La touche F5 coupe le mot en cours par des points de suspension:

comme ce...
[[ hh:mm:ss]] # ''ceci est une mention de timecode''
...ci

si cela correspond à une borne du morcellement sonore; ce mot sera recollé ensuite par le programme <a href="bin/Rush_to_TXT.sh">Rush_to_TXT.sh</a>.

Note importante: si l'on a décodé le média compressé (au format .ogg par exemple) en le transformant en .wav, la réactivité sera instantanée au lieu d'être de plus en plus longue: en effet, le format WAV permet au lecteur de se rendre directement au bon endroit du morceau, alors qu'il faut décoder tout le début dans le cas d'un format compressé. Le fichier P.pl, en présence d'une version WAV, la détectera à son extension de fichier et l'utilisera de préférence.

On met en place la variable d'environnement MEDIA_FILE pour renvoyer sur le fichier FreeSoft.ogg:

export MEDIA_FILE=FreeSoft.ogg

Alors, on peut débuter la transcription comme suit: vim -S transcription.vim FreeSoft.txt, dans un terminal de préférence sur fond sombre (par exemple un xterm en blanc sur noir — dans le cas contraire on pourra intervenir sur le réglage de couleur DarkGreen):

[[00.00]] syl=35 sil=0.42
[[05.32]]

Ces lignes apparaissent en vert foncé. La première indique: on débute à la seconde 0. C'est le début d'une séquence de 35 syllabes, terminée par un blanc de 42 centièmes de seconde, qui prendra fin au timecode 5.31. On peut réécouter la séquence en enfonçant à nouveau la touche F1. Le bip de fin marque la fin du blanc, et précède un petit temps de recouvrement réglé dans P.pl. La touche o sous VIM permet de réaliser la transcription de cette portion:

[[00.00]] syl=35 sil=0.42
Denis Devos: Vous écoutez Radio Campus, la radio de la communauté de
l'université libre de Bruxelles. Il est 10:18.
[[05.32]]

On presse ensuite la touche d'échappement ESC, se place sur le timecode suivant (05.32), et une nouvelle pression sur F1 produit:

[[05.31]] syl=35 sil=0.72
[[11.25]]

On procède ainsi de proche en proche jusqu'à la fin de la transcription. Pour noter un changement d'interlocuteur ou un nouveau paragraphe, on passe une ligne (avant ou après le timecode, ou entre deux timecodes, selon les cas. On veillera à laisser les timecodes toujours seuls sur leur ligne, et prendra garde à ne pas passer plusieurs lignes.

Ceci produit le fichier de [data/02/2002-11-27-Brevets-Radio-Campus.txt rushes]. Les timecodes pourront être exploités dans une application web ou autre, pour faire le lien entre la bande son et la transcription textuelle.

On transforme facilement le fichier de rushes en [data/03/2002-11-27-Brevets-Radio-Campus.txt version texte brut] un peu plus propre, avec le filtre [bin/Rush_to_TXT.sh Rush_to_TXT.sh]. Ligne de commande: sh Rush_to_TXT.sh rushes.txt > texte.txt.

À faire

Court terme

  • Fixer des objectifs (à court terme)
    • transcrire en priorité les enregistrements courts présentant l'association
    • transcrire des documents (courts) ayant un retour sur investissement rapide, utilisables immédiatement, campagnes, public important.
  • Reprendre le document de référence historique (2008-06-07) pour le ventiler dans le nouveau site de l'April http://www.april.org/files/documents/html/table.html à ce stade il ne semble pas nécessaire d'y apporter de modification, conséquence du sérieux avec lequel le travail avait été mené
  • Rassembler et organiser les documents April mentionnant la transcription, sur le site de l'April ou sur le wiki
  • Réaliser un tutoriel accessible pour faciliter les contributions nouvelles
  • Réaliser une FAQ et autres documentations
  • Lancer une campagne de recherche de bénévoles pour augmenter le volume de travail global et diminuer la charge individuelle (par exemple : 1h de transcription par mois = 1 spot par mois pour une personne, ou 1 conférence pour 10 personnes)

moyen terme

  • Fixer des objectifs (à moyen terme)
    • Transcrire des enregistrements de conférences, avec un niveau de qualité privilégiant une exploitation rapide
  • Améliorer la documentation
  • Traductions des transcriptions
  • Transcription en langage des signes
  • Intégration des transcriptions dans les vidéos
  • Pérenniser les transcriptions de l'April par
    • la recherche de contributeurs
    • la promotion de la transcription
    • l'automatisation des transcriptions
    • l'automatisation de l'exploitation des transcriptions (flux de traduction et d'intégration)

long terme

  • Fixer des objectifs (à long terme)
    • reprendre l'ensemble des transcriptions selon les règles de qualité proposées par le document de référence historique
  • Exploiter la politique de transcription et d'accessibilité au profit de l'image de l'April

Documents

Documents de référence

A réaliser, à améliorer, ou à consulter.

Documents April mentionnant la transcription

Recherches

Liste (à organiser)

Documents externes traitant de la transcription