Image

(Ultimo cambio: 04.05.2024)

Debian 12 Linux Servidor de transcripción (Python, VOSK, Script)

Para tareas en las que necesita procesar una gran cantidad de archivos de audio para convertir la información en texto, existe un modelo VOSK escrito en Python y que contiene la mayoría de los idiomas del mundo. Esta acción se llama transcripción. Dado que los buscadores indexan los archivos de audio y video por descripción y etiquetas, y no por su contenido, surge la tarea de publicar otra versión de texto. En esta guía, instalamos como root, si tiene uno normal, use el comando sudo .


Preguntas más frecuentes:

  • Queremos que todos los datos estén con nosotros. ¿Puedes hacer todo este ajuste en nuestro equipo?

    Sí, puedes solicitar la instalación y configuración de esta configuración en tu equipo mediante el enlace.

1. Instalar los paquetes necesarios

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

2. Instale la utilidad Vosk

source .venv/bin/activate
pip3 install vosk

3. Descargando el modelo

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

Nota 1: En nuestro caso, elegimos el modelo completo, si la configuración del servidor tiene menos de 8 GB de RAM, entonces este modelo no funcionará y dará un error:

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

En este caso, descargue la versión mínima del modelo, ya que es menos exigente con los recursos del servidor:

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

4. Utilice la siguiente sintaxis de comando para verificar si funciona

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

For the minimum model, respectively:

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

Si tiene varios archivos, encontramos y utilizamos el siguiente script en Internet, que le permite procesar toda la carpeta con archivos de audio y traducirlos todos a texto automáticamente, solo tiene que esperar a que se complete el procesamiento:

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}

Sintaxis para utilizar el 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/

Nota 2: Si volvió a iniciar sesión en el servidor a través de ssh, el comando vosk-transcriber estará disponible después de activar el entorno virtual de Python, por lo que la secuencia de inicio de la transcripción será la siguiente:

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

Para procesar una carpeta completa:

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

Hay más modelos de lenguaje disponibles para enlace, es necesario descargar y descomprimir por analogía se describe en el párrafo 3.

El servidor para traducir archivos de audio a texto está listo para usar. La calidad de la traducción depende de la claridad de la pronunciación y de la calidad de la propia grabación, por ejemplo, cuando se procesa un fragmento de audio de una entrevista, es notablemente más alta que cuando se procesa una canción musical.




Sin comentarios aún