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 configuration pour transcrire des fichiers audio wav avec Vosk
## mode d'emploi ## Mode d'emploi
### installation ### installation
#### Prérequis #### Prérequis
@ -21,7 +21,7 @@ pour les installer avec aptitude
sudo apt install jq python3-pip git ffmpeg 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 ```bash
git clone https://forge.chapril.org/tykayn/transcription.git && cd transcription 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. * 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. * 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. - convertir un fichier mp3 vers WAV mono avec ffmpeg.
- nettoyer l'écho et normaliser le fichier audio. - 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. - 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 # liens
* [podcast libre à vous](https://cause-commune.fm/podcastfilter/libre-a-vous/) * [podcast libre à vous](https://cause-commune.fm/podcastfilter/libre-a-vous/)

View File

@ -1,5 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# TODO tqdm # prend un fichier audio et imprime des sous titres au format srt
from vosk import Model, KaldiRecognizer, SetLogLevel from vosk import Model, KaldiRecognizer, SetLogLevel
import sys import sys
import os import os
@ -41,7 +42,7 @@ class SubPart:
"""[1:-1] """[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) SetLogLevel(0 if verbose else -1)
model = Model(model_dir) model = Model(model_dir)
@ -134,5 +135,3 @@ def main():
if __name__ == "__main__": if __name__ == "__main__":
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 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}" 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 read proceed
# les autres modèles sont ici https://alphacephei.com/vosk/models
if [[ $proceed == o* ]]; then if [[ $proceed == o* ]]; then
echo "C'est parti." echo "C'est parti."
wget https://alphacephei.com/vosk/models/vosk-model-fr-0.6-linto-2.2.0.zip if [ ! -f "vosk-model-fr-0.6-linto-2.2.0.zip" ]; then
echo -e "${green}########### téléchargement du modèle OK ${reset}" wget https://alphacephei.com/vosk/models/vosk-model-fr-0.6-linto-2.2.0.zip
unzip vosk-model-fr-0.6-linto-2.2.0.zip echo -e "${green}########### téléchargement du modèle OK ${reset}"
mv vosk-model-fr-0.6-linto-2.2.0 models/fr unzip vosk-model-fr-0.6-linto-2.2.0.zip
echo -e "${green}########### décompression du modèle OK ${reset}" mv vosk-model-fr-0.6-linto-2.2.0 models/fr
ls -l 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 else
echo -e "${green}########### vous n'avez pas souhaité télécharger le modèle ${reset}" 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}" echo -e "${green}########### fin de l'installation sans télécharger de modèle de langue ${reset}"