forked from tykayn/transcription
add converters from mp3
This commit is contained in:
parent
17bf79976e
commit
334cb218c2
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,5 +1,6 @@
|
||||
/models/*
|
||||
/models/fr/*
|
||||
!/input/demo.wav
|
||||
/input/converted_to_wav/*.wav
|
||||
/output/*.txt
|
||||
/output/*.csv
|
||||
/output/*.srt
|
||||
|
2
Makefile
2
Makefile
@ -3,3 +3,5 @@ install:
|
||||
bash install.sh
|
||||
convert:
|
||||
bash convert_from_wav.sh $(args)
|
||||
srt:
|
||||
perl clean.sh $(args) > output/clean.srt
|
||||
|
11
README.md
11
README.md
@ -6,13 +6,14 @@ configuration pour transcrire des fichiers audio wav avec Vosk
|
||||
|
||||
### installation
|
||||
#### Prérequis
|
||||
* python3
|
||||
* pip
|
||||
* git
|
||||
* jq
|
||||
* python3 (pour l'école serpentard)
|
||||
* pip (gestionnaire de paquets python)
|
||||
* git (gestion de version)
|
||||
* jq (pour le nettoyage de fichier json)
|
||||
* ffmpeg (pour la conversion vers wav)
|
||||
pour les installer avec aptitude
|
||||
```
|
||||
sudo apt install jq python3-pip git
|
||||
sudo apt install jq python3-pip git ffmpeg
|
||||
```
|
||||
|
||||
#### cloner ce dépot dans un dossier de travail
|
||||
|
28
clean.sh
Normal file
28
clean.sh
Normal file
@ -0,0 +1,28 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
# Script de transformation de la sortie (json) de vosk.
|
||||
|
||||
use strict; use warnings;
|
||||
use feature qw(say);
|
||||
|
||||
open(F,$ARGV[0]) or die("Le script a besoin du fichier de sortie Vosk en argument.");
|
||||
undef $/;
|
||||
my $json = <F>;
|
||||
close(F);
|
||||
|
||||
while ($json =~ m@(\{\s+"result" :.+?"text" :.+?\})@gs) {
|
||||
my $resultat = $1;
|
||||
# Récupération de la seconde initiale de la séquence
|
||||
my ($debut) = ($resultat) =~ m@"start" : ([^,]+),@s;
|
||||
# Récupération du texte
|
||||
my ($texte) = ($resultat) =~ m@"text" : "(.+?)"@s;
|
||||
|
||||
# Transformation de la seconde en minutes-secondes
|
||||
my ($minutes,$secondes) = (0,$debut);
|
||||
$minutes = int($debut / 60);
|
||||
$secondes = int($debut % 60);
|
||||
map { $_ = "0" . $_ if $_ < 10; } ($minutes,$secondes);
|
||||
|
||||
# Affichage du résultat dans le terminal.
|
||||
say join("\t","[$minutes'$secondes]",$texte);
|
||||
}
|
@ -23,4 +23,7 @@ cat output/converted_out_without_nulls.txt
|
||||
echo " "
|
||||
echo "########### $(date) : lignes transcriptes $COUNT_LINES "
|
||||
echo "########### $(date) : conversion faite dans output/converted_out_without_nulls.txt"
|
||||
echo "########### $(date) : conversion de la sortie en fichier de sous titres"
|
||||
perl clean.sh output/converted_output.txt > output/output.srt
|
||||
|
||||
exit 0
|
||||
|
0
models/.gitkeep
Normal file
0
models/.gitkeep
Normal file
20
mp3_to_wav.sh
Normal file
20
mp3_to_wav.sh
Normal file
@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
# utilisation: bash convert_from_wav.sh MONFICHIER.wav
|
||||
# auteur du script: tykayn contact@cipherbliss.com
|
||||
|
||||
echo "########### conversion des fichiers audio .ogg placés dans le dossier input, vers du wav mono-piste uniquement"
|
||||
echo " "
|
||||
for i in input/*.mp3; do
|
||||
ffmpeg -acodec libvorbis -i "$i" -acodec pcm_s16le "input/converted_to_wav/${i%mp3}wav"
|
||||
done
|
||||
|
||||
echo " "
|
||||
echo "########### OK "
|
||||
echo " "
|
||||
COUNT_LINES_OGG=$(ll input/*.ogg |wc -l)
|
||||
COUNT_LINES=$(ll input/converted_to_wav |wc -l)
|
||||
|
||||
echo "########### fichiers ogg dans le dossier input: $COUNT_LINES_OGG "
|
||||
echo "########### fichiers wav dans le dossier input: $COUNT_LINES "
|
||||
echo "########### conversion faite dans output/converted_out_without_nulls.txt"
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user