Arabische Spracherkennung, Klassifizierung und Text-zu-Sprache unter Verwendung vieler erweiterter Modelle wie Wave2VEC und Fastspeech2. Dieses Repository ermöglicht Training und Vorhersage mithilfe von vorbereiteten Modellen.
from klaam import SpeechClassification
model = SpeechClassification ()
model . classify ( wav_file ) from klaam import SpeechRecognition
model = SpeechRecognition ()
model . transcribe ( wav_file ) from klaam import TextToSpeech
prepare_tts_model_path = "../cfgs/FastSpeech2/config/Arabic/preprocess.yaml"
model_config_path = "../cfgs/FastSpeech2/config/Arabic/model.yaml"
train_config_path = "../cfgs/FastSpeech2/config/Arabic/train.yaml"
vocoder_config_path = "../cfgs/FastSpeech2/model_config/hifigan/config.json"
speaker_pre_trained_path = "../data/model_weights/hifigan/generator_universal.pth.tar"
model = TextToSpeech ( prepare_tts_model_path , model_config_path , train_config_path , vocoder_config_path , speaker_pre_trained_path )
model . synthesize ( sample_text ) Es gibt zwei bahnbare Modelle für die Erkennung, die moderne Standard -Arabisch (MSA) und den ägyptischen Dialekt (Ägy) traget. Sie können jeden von ihnen mit dem lang -Attribut festlegen.
from klaam import SpeechRecognition
model = SpeechRecognition ( lang = 'msa' )
model . transcribe ( 'file.wav' )| Datensatz | Beschreibung | Link |
|---|---|---|
| MGB-3 | Ägyptische arabische Spracherkennung in freier Wildbahn. Jeder Satz wurde von vier Annotatoren kommentiert. Mehr als 15 Stunden wurden von YouTube gesammelt. | Hier [Register erforderlich] |
| ADI-5 | Mehr als 50 Stunden aus Aljazeera TV gesammelt. 4 Regional Dialektal: Ägyptische (ägy), Levantine (LAV), Golf (GLF), Nordafrikaner (NOR) und modernes Standard -Arabisch (MSA). Dieser Datensatz ist Teil der MGB-3-Herausforderung. | Hier [Register erforderlich] |
| Gemeinsame Stimme | Multliniellingual Dataset Avilable auf dem Umarmungsface | Hier. |
| Arabische Sprachkorpus | Arabischer Datensatz mit Ausrichtung und Transkriptionen | Hier. |
Unser Projekt unterstützt derzeit vier Modelle, drei von ihnen sind auf Transformatoren übertragen.
| Sprache | Beschreibung | Quelle |
|---|---|---|
| ägyptisch | Spracherkennung | WAV2VEC2-Large-XLSR-53-Arabic-Egyptian |
| Standard -Arabisch | Spracherkennung | WAV2VEC2-Large-XLSR-53-Arabic |
| Ägy, Nor, Lav, GLF, MSA | Sprachklassifizierung | WAV2VEC2-Large-XLSR-Dialect-Klasse |
| Standard -Arabisch | Text-to-Speech | Fastspeech2 |
| Name | Beschreibung | Notizbuch |
|---|---|---|
| Demo | Klassifizierung, Wiedergutmachung und Text-zu-Sprache in einigen Codezeilen. | |
| Demo mit Mikrofon | Audio -Wiedergutmachung und Klassifizierung mit Aufzeichnung. |
Die Skripte sind eine Änderung von Jqueguiner/Wav2VEC2-Sprut.
Dieses Skript wird für die Klassifizierungsaufgabe in den 5 Klassen verwendet.
python run_classifier.py
--model_name_or_path= " facebook/wav2vec2-large-xlsr-53 "
--output_dir=/path/to/output
--cache_dir=/path/to/cache/
--freeze_feature_extractor
--num_train_epochs= " 50 "
--per_device_train_batch_size= " 32 "
--preprocessing_num_workers= " 1 "
--learning_rate= " 3e-5 "
--warmup_steps= " 20 "
--evaluation_strategy= " steps "
--save_steps= " 100 "
--eval_steps= " 100 "
--save_total_limit= " 1 "
--logging_steps= " 100 "
--do_eval
--do_train Dieses Skript ist für das Training im Datensatz zum Vorbau des Datensatzes für Egypions -Dialekte dient.
python run_mgb3.py
--model_name_or_path= " facebook/wav2vec2-large-xlsr-53 "
--output_dir=/path/to/output
--cache_dir=/path/to/cache/
--freeze_feature_extractor
--num_train_epochs= " 50 "
--per_device_train_batch_size= " 32 "
--preprocessing_num_workers= " 1 "
--learning_rate= " 3e-5 "
--warmup_steps= " 20 "
--evaluation_strategy= " steps "
--save_steps= " 100 "
--eval_steps= " 100 "
--save_total_limit= " 1 "
--logging_steps= " 100 "
--do_eval
--do_train Dieses Skript kann für arabisches gemeinsames Sprachtraining verwendet werden
python run_common_voice.py
--model_name_or_path= " facebook/wav2vec2-large-xlsr-53 "
--dataset_config_name= " ar "
--output_dir=/path/to/output/
--cache_dir=/path/to/cache
--overwrite_output_dir
--num_train_epochs= " 1 "
--per_device_train_batch_size= " 32 "
--per_device_eval_batch_size= " 32 "
--evaluation_strategy= " steps "
--learning_rate= " 3e-4 "
--warmup_steps= " 500 "
--fp16
--freeze_feature_extractor
--save_steps= " 10 "
--eval_steps= " 10 "
--save_total_limit= " 1 "
--logging_steps= " 10 "
--group_by_length
--feat_proj_dropout= " 0.0 "
--layerdrop= " 0.1 "
--gradient_checkpointing
--do_train --do_eval
--max_train_samples 100 --max_val_samples 100Wir verwenden die Pytorch -Implementierung von Fastspeech2 von MING024.
Das Verfahren ist wie folgt:
wget http://en.arabicspeechcorpus.com/arabic-speech-corpus.zip
unzip arabic-speech-corpus.zip
mkdir -p raw_data/Arabic/Arabic preprocessed_data/Arabic/TextGrid/Arabic
cp arabic-speech-corpus/textgrid/* preprocessed_data/Arabic/TextGrid/Arabic
import os
base_dir = '/content/arabic-speech-corpus'
lines = []
for lab_file in os . listdir ( f' { base_dir } /lab' ):
lines . append ( lab_file [: - 4 ] + '|' + open ( f' { base_dir } /lab/ { lab_file } ' , 'r' ). read ())
open ( f' { base_dir } /metadata.csv' , 'w' ). write (( ' n ' ). join ( lines ))git clone --depth 1 https://github.com/zaidalyafeai/FastSpeech2
cd FastSpeech2
pip install -r requirements.txt python3 prepare_align.py config/Arabic/preprocess.yaml
python3 preprocess.py config/Arabic/preprocess.yaml
unzip hifigan/generator_LJSpeech.pth.tar.zip -d hifigan
unzip hifigan/generator_universal.pth.tar.zip -d hifigan
python3 train.py -p config/Arabic/preprocess.yaml -m config/Arabic/model.yaml -t config/Arabic/train.yaml
Dieses Repository wurde vom ARBML -Team erstellt. Wenn Sie Vorschläge oder Beitrag haben, können Sie eine Pull -Anfrage stellen.