Image

(Son değişiklik: 06.11.2024)

Debian 12 Linux Transkripsiyon sunucusu (Python, VOSK, Script)

Ses dosyalarını metne dönüştürmek için büyük sayıda dosyayı işleme ihtiyacı duyulan görevler için, Python ile yazılmış ve dünyadaki çoğu dili içeren bir VOSK modeli mevcuttur. Bu işlem transkripsiyon olarak adlandırılır. Arama motorları ses ve video dosyalarını açıklamalar ve etiketler ile indeksler, içeriklerine göre değil, bu yüzden başka bir metin versiyonu yayımlama ihtiyacı doğar. Bu kılavuzda, root olarak kurulum yapılacaktır, eğer normal bir kullanıcıysanız sudo komutunu kullanın.


En sık sorulan sorular:

  • Мы хотим, чтобы все данные находились у нас. Можете ли Вы произвести всю эту настройку на нашем оборудовании?

    Да, Вы можете заказать установку и настройку данной конфигурации на Вашем оборудовании по ссылке.

1. Gerekli paketleri kurun

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

2. Vosk aracını kurun

source .venv/bin/activate
pip3 install vosk

3. Modeli indirin

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

Not 1: Bizim durumumuzda tam modeli seçtik, ancak sunucuda 8 GB RAM'den daha az bellek varsa, bu model çalışmaz ve şu hatayı verir:

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

Bu durumda, sunucu kaynakları daha az talep eden minimum model versiyonunu indirin:

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

4. Çalışıp çalışmadığını kontrol etmek için şu komut sözdizimini kullanın

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

Minimum model için ise:

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

Eğer birden fazla dosyanız varsa, internetten bulduğumuz ve ses dosyalarını içeren tüm klasörü işleyip hepsini metne dönüştüren aşağıdaki script'i kullanabilirsiniz, işlem tamamlanana kadar beklemeniz yeterlidir:

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

#!/bin/bash

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

if [ $1 ]; then
srcpath=$1
echo "SOURCE PATH: $srcpath"
else
echo "Kaynak yol girilmedi" >&2
echo $errmsg
exit 2
fi

if [ $2 ]; then
dstpath=$2
echo "DESTINASYON YOLU: $dstpath"
else
echo "Hedef yol girilmedi" >&2
echo $errmsg
exit 2
fi

if [ $3 ]; then
modelpath=$3
echo "VOSK MODEL YOLU: $modelpath"
else
echo "VOSK dil modeli yolu girilmedi" >&2
echo $errmsg
exit 2
fi

startdate=$(date)

find $srcpath -name "* *" -type f | rename 's/ /_/g'
## dosya adlarındaki boşlukları hedef klasörde kaldır
famount=$(find $srcpath -type f | wc -l) ## dosya sayısını say
echo "$famount dosya bulundu"
i=0;

for f in $srcpath/*; do
i=$(( $i + 1 ))
echo "Transkripsiyon yapılıyor: ${f##*/} ($i/$famount)"
vosk-transcriber -m $modelpath -i $srcpath/${f##*/} -o $dstpath/${f##*/}.txt >/dev/null 2>&1 ;
## >/dev/null 2>&1 kısmını kaldırarak tanıma durumunu görüntüleyebilirsiniz
## rm $srcpath/${f##*/} ## orijinal dosyayı kaldırmak için yorum satırını kaldırın
done

fready=$(find $dstpath -type f | wc -l)
echo "BİTTİ. $famount dosyadan $fready dosya transkribe edildi"
enddate=$(date)
echo BAŞLADI: ${startdate}
echo BİTTİ: ${enddate}

Script'i kullanma sözdizimi:

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/

Not 2: Eğer sunucuya tekrar ssh ile giriş yaptıysanız, vosk-transcriber komutu, Python sanal ortamını aktifleştirene kadar kullanılamaz, bu nedenle transkripsiyon başlatma sırası şu şekilde olacaktır:

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

Tüm bir klasörü işlemek için:

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

Daha fazla dil modeli için bağlantı adresini ziyaret edebilirsiniz, indirme ve çıkarma işlemleri 3. maddede anlatıldığı gibi yapılmalıdır.

Ses dosyalarını metne dönüştürmek için sunucu hazır. Çeviri kalitesi, telaffuzun netliğine ve kaydın kalitesine bağlıdır, örneğin bir röportajdan alınan ses parçası işlenirken, bir müzik şarkısından daha yüksek kaliteli sonuçlar elde edilir.




No Comments Yet