Image

(Dernier changement: 22.04.2024)

Debian 12 Linux Serveur de transcription (Python, VOSK, Script)

Pour les tâches où vous devez traiter un grand nombre de fichiers audio afin de convertir des informations en texte, il existe un modèle VOSK écrit en Python et contenant la plupart des langues du monde. Cette action est appelée transcription. Étant donné que les moteurs de recherche indexent les fichiers audio et vidéo par description et balises, et non par leur contenu, la tâche se pose de publier une autre version texte. Dans ce guide, nous installons en tant que root, si vous en avez un normal, utilisez la commande sudo.


Questions les plus fréquemment posées:

  • Nous voulons que toutes les données soient avec nous. Pouvez-vous faire tout ce réglage sur nos équipements ?

    Oui, vous pouvez commander l'installation et le paramétrage de cette configuration sur votre équipement en utilisant le lien.

1. Installez les packages nécessaires

apt update
apt install python3 python3-pip ffmpeg unzip rename
apt install python3.11-venv
python3 -m venv .venv

2. Installer l'utilitaire Vosk

source .venv/bin/activate
pip3 install vosk

3. Téléchargement du modèle

cd /opt
wget https://alphacephei.com/vosk/models/vosk-model-ru-0.42.zip
unzip vosk-model-ru-0.42.zip

Évaluation 1: Dans notre cas, nous avons choisi le modèle complet, si la configuration du serveur dispose de moins de 8 Go de RAM, alors ce modèle ne fonctionnera pas et donnera une erreur:

File "/usr/local/lib/python3.9/dist-packages/vosk/__init__.py", line 57, in __init__
raise Exception("Failed to create a model")
Exception: Failed to create a model

Dans ce cas, téléchargez la version minimale du modèle, car elle est moins gourmande en ressources serveur:

cd /opt
wget https://alphacephei.com/vosk/models/vosk-model-small-ru-0.22.zip
unzip vosk-model-small-ru-0.22.zip

4. Utilisez la syntaxe de commande suivante pour vérifier si cela fonctionne

vosk-transcriber -i audio_file -o text_file -m path_to_model
vosk-transcriber -i /root/test.mp3 -o /root/test.txt -m /opt/vosk-model-ru-0.42

Pour le modèle minimum, respectivement:

vosk-transcriber -i /root/test.mp3 -o /root/test.txt -m /opt/vosk-model-small-ru-0.22

Si vous avez plusieurs fichiers, nous avons trouvé et utilisé le script suivant sur Internet, qui vous permet de traiter l'intégralité du dossier avec des fichiers audio et de tous les traduire automatiquement en texte, il vous suffit d'attendre que le traitement soit terminé :

touch transcribe.sh
chmod +x transcribe.sh
nano transcribe.sh

#!/bin/bash

errmsg="USAGE: sh transcribe.sh SRCPATH DSTPATH VOSKMODELPATH"

if [ $1 ]; then
srcpath=$1
echo "SOURCE PATH: $srcpath"
else
echo "No source path entered" >&2
echo $errmsg
exit 2
fi

if [ $2 ]; then
dstpath=$2
echo "DESTINATION PATH: $dstpath"
else
echo "No destination path entered" >&2
echo $errmsg
exit 2
fi

if [ $3 ]; then
modelpath=$3
echo "VOSK MODEL PATH: $modelpath"
else
echo "No VOSK language model path entered" >&2
echo $errmsg
exit 2
fi

startdate=$(date)

find $srcpath -name "* *" -type f | rename 's/ /_/g'
## remove spaces from filenames in target directory
famount=$(find $srcpath -type f | wc -l) ## counting the number of files
echo "Found $famount files"
i=0;

for f in $srcpath/*; do
i=$(( $i + 1 ))
echo "Transcribing ${f##*/} ($i/$famount)"
vosk-transcriber -m $modelpath -i $srcpath/${f##*/} -o $dstpath/${f##*/}.txt >/dev/null 2>&1 ;
## remove >/dev/null 2>&1 to display recognition status
## rm $srcpath/${f##*/} ## uncomment to remove the original file
done

fready=$(find $dstpath -type f | wc -l)
echo "DONE. Transcribed $fready of $famount files"
enddate=$(date)
echo STARTED AT: ${startdate}
echo ENDED AT: ${enddate}

Syntaxe d'utilisation du script:

sh transcribe.sh path_to_sources_files path_to_result path_to_model
sh transcribe.sh /root/audio/ /root/text/ /opt/vosk-model-ru-0.42/

Évaluation 2: Si vous vous êtes reconnecté au serveur via ssh, la commande vosk-transcriber sera disponible après l'activation de l'environnement virtuel Python. La séquence de démarrage de la transcription sera donc la suivante:

source .venv/bin/activate
vosk-transcriber -i /root/test.mp3 -o /root/test.txt -m /opt/vosk-model-ru-0.42/

Pour traiter un dossier entier:

sh transcribe.sh /root/audio/ /root/text/ /opt/vosk-model-ru-0.42/

Plus de modèles de langue sont disponibles pour Lien, il faut télécharger et décompresser par analogie décrit au paragraphe 3.

Le serveur de traduction de fichiers audio en texte est prêt à l'emploi. La qualité de la traduction dépend de la clarté de la prononciation et de la qualité de l'enregistrement lui-même. Par exemple, lors du traitement d'un fragment audio d'une interview, elle est nettement supérieure à celle du traitement d'une chanson musicale.




Aucun commentaire pour l'instant