add doc for other models

This commit is contained in:
Tykayn 2022-04-12 10:45:53 +02:00 committed by tykayn
parent 4ce54d002c
commit 27765e243d
3 changed files with 43 additions and 13 deletions

View File

@ -2,7 +2,7 @@
configuration pour transcrire des fichiers audio wav avec Vosk
## mode d'emploi
## Mode d'emploi
### installation
#### Prérequis
@ -21,7 +21,7 @@ pour les installer avec aptitude
sudo apt install jq python3-pip git ffmpeg
```
#### cloner ce dépot dans un dossier de travail
#### Cloner ce dépot dans un dossier de travail
```bash
git clone https://forge.chapril.org/tykayn/transcription.git && cd transcription
```
@ -51,10 +51,35 @@ Chaque fichier transcrit a un sous-dossier de son nom dans le dossier output. Ai
* si deux personnes parlent rapidement l'une après l'autre, vosk considèrera qu'il s'agit d'une seule phrase.
* les transcriptions peuvent être faites pour plusieurs langues, il faudra modifier le fichier "conversion_simple_fr.py" si on veut autre chose que du Français.
# évolutions possibles
# Évolutions possibles
- convertir un fichier mp3 vers WAV mono avec ffmpeg.
- nettoyer l'écho et normaliser le fichier audio.
- permettre le traitement en masse de plusieurs fichiers de podcast et leur donner un output nommé comme le fichier d'entrée afin de les distinguer.
# Modèles de voix
Common voice: 22Go
https://commonvoice.mozilla.org/fr/datasets
Other models
Other places where you can check for models which might be compatible:
https://kaldi-asr.org/models.html - variety of models from Kaldi - librispeech, aspire, chinese models
https://github.com/daanzu/kaldi-active-grammar/blob/master/docs/models.md - Big dictation models for English
https://github.com/uhh-lt/vosk-model-tuda-de - German models
https://github.com/german-asr/kaldi-german - Another German project
https://zamia-speech.org/asr/ - German and English model from Zamia
https://github.com/pguyot/zamia-speech/releases - French models for Zamia
https://github.com/opensource-spraakherkenning-nl/Kaldi_NL - Dutch model
https://montreal-forced-aligner.readthedocs.io/en/latest/pretrained_models.html (GMM models, not compatible but might be still useful)
https://github.com/goodatlas/zeroth - Korean Kaldi (just a recipe and data to train)
https://github.com/undertheseanlp/automatic_speech_recognition - Vietnamese Kaldi project
https://doc.linto.ai/#/services/linstt - LINTO project with French and English models
https://community.rhasspy.org/ - Rhasspy (some Kaldi models for Czech, probably even more)
https://github.com/feddybear/flipside_ph - Filipino model project by Federico Ang
https://github.com/alumae/kiirkirjutaja - Estonian Speech Recognition project with Vosk models
https://github.com/falabrasil/kaldi-br - Portuguese models from FalaBrasil project
https://github.com/egorsmkv/speech-recognition-uk - Ukrainian ASR project with Vosk models
https://github.com/Appen/UHV-OTS-Speech - repository from Appen for Scalable Data Annotation Pipeline for High-Quality Large Speech Datasets Development
https://github.com/vistec-AI/commonvoice-th - Thai models trained on CommonVoice
# liens
* [podcast libre à vous](https://cause-commune.fm/podcastfilter/libre-a-vous/)

View File

@ -1,5 +1,6 @@
#!/usr/bin/env python3
# TODO tqdm
# prend un fichier audio et imprime des sous titres au format srt
from vosk import Model, KaldiRecognizer, SetLogLevel
import sys
import os
@ -41,7 +42,7 @@ class SubPart:
"""[1:-1]
def gen_subparts(input_file, model_dir, verbose=False, partlen=4, progress=False):
def gen_subparts(input_file, model_dir, verbose=False, partlen=4, progress=True):
SetLogLevel(0 if verbose else -1)
model = Model(model_dir)
@ -134,5 +135,3 @@ def main():
if __name__ == "__main__":
main()
print ("script extract_srt done in : ")
print (time.time() - start_time), "seconds"

View File

@ -29,14 +29,20 @@ echo " "
mkdir -p models/fr
echo -e "${green}########### Procéder au téléchargement du modèle Français (1.6go) pour transcrire les textes ?${reset} (écrivez o pour oui et faites entrée pour valider) ${reset}"
read proceed
# les autres modèles sont ici https://alphacephei.com/vosk/models
if [[ $proceed == o* ]]; then
echo "C'est parti."
wget https://alphacephei.com/vosk/models/vosk-model-fr-0.6-linto-2.2.0.zip
echo -e "${green}########### téléchargement du modèle OK ${reset}"
unzip vosk-model-fr-0.6-linto-2.2.0.zip
mv vosk-model-fr-0.6-linto-2.2.0 models/fr
echo -e "${green}########### décompression du modèle OK ${reset}"
ls -l models/fr
if [ ! -f "vosk-model-fr-0.6-linto-2.2.0.zip" ]; then
wget https://alphacephei.com/vosk/models/vosk-model-fr-0.6-linto-2.2.0.zip
echo -e "${green}########### téléchargement du modèle OK ${reset}"
unzip vosk-model-fr-0.6-linto-2.2.0.zip
mv vosk-model-fr-0.6-linto-2.2.0 models/fr
echo -e "${green}########### décompression du modèle en Français OK ${reset}"
ls -l models/fr
else
echo "fichier zip vosk-model-fr-0.6-linto-2.2.0.zip déjà présent"
fi
else
echo -e "${green}########### vous n'avez pas souhaité télécharger le modèle ${reset}"
echo -e "${green}########### fin de l'installation sans télécharger de modèle de langue ${reset}"