Tensorflowasr
Le modèle de reconnaissance vocale de bout en bout basé sur la version conformère de TensorFlow 2, et le RTF du CPU (taux en temps réel) est d'environ 0,1
La branche actuelle est la version V2, qui est une structure CTC + traduire
Bienvenue à des bogues d'utilisation et de rétroaction
Veuillez consulter la version V1 de l'ancienne version
Résultats de la formation Aishell-1:
Résultats hors ligne
| Nom | Quantité de paramètre | Chinois | Nombre de rondes de formation | en ligne / hors ligne | Tester les données | Méthode de décodage |
|---|---|---|---|---|---|---|
| Wenet (conformer) | 9,5 m | 6,48% | 100 | Hors ligne hors ligne | Test Aishell1 | CTC_GREEEDY |
| Wenet (transformateur) | 9.7m | 8,68% | 100 | Hors ligne hors ligne | Test Aishell1 | CTC_GREEEDY |
| Wenet (paraformer) | 9.0m | 6,99% | 100 | Hors ligne hors ligne | Test Aishell1 | ParaFormer_Greeedy |
| Funasr (paraformère) | 9,5 m | 6,37% | 100 | Hors ligne hors ligne | Test Aishell1 | ParaFormer_Greeedy |
| Funasr (conformer) | 9,5 m | 6,64% | 100 | Hors ligne hors ligne | Test Aishell1 | CTC_GREEEDY |
| Funasr (e_branchFormer) | 10,1 m | 6,65% | 100 | Hors ligne hors ligne | Test Aishell1 | CTC_GREEEDY |
| repo (conformerctc) | 10,1 m | 6,8% | 100 | Hors ligne hors ligne | Test Aishell1 | CTC_GREEEDY |
Résultats en streaming
| Nom | Quantité de paramètre | Chinois | Nombre de rondes de formation | en ligne / hors ligne | Tester les données | Méthode de décodage |
|---|---|---|---|---|---|---|
| WENET (U2 ++ CONFORMER) | 10,6 m | 8,18% | 100 | En ligne | Test Aishell1 | CTC_GREEEDY |
| WENET (transformateur U2 ++) | 10,3 m | 9,88% | 100 | En ligne | Test Aishell1 | CTC_GREEEDY |
| repo (streamingConformerctc) | 10,1 m | 7,2% | 100 | En ligne | Test Aishell1 | CTC_GREEEDY |
| repo (ChunkConformer) | 10,7 m | 8,9% | 100 | En ligne | Test Aishell1 | CTC_GREEEDY |
TTS: https://github.com/z-yq/tensorflowtts
Nlu: -
Bot: -
Sans données, vous pouvez atteindre un certain niveau d'effet ASR.
TTS pour ASR: Les données de formation sont Aishell1 et Aishell3, et le type de données est plus approprié pour ASR.
Conseils:
Il y a 500 sons au total
Seulement soutenu en chinois
Si le texte à synthétiser a des marques de ponctuation, veuillez les retirer manuellement
Si vous voulez ajouter des pauses, ajoutez SIL au milieu du texte
Étape 1: Préparez une liste de texte à synthétiser, si le texte nommé, EGS:
这是第一句话
这是第二句话
这是一句sil有停顿的话
...
Étape2: Téléchargez le modèle
Lien: https://pan.baidu.com/s/1den1pmj4olkrkw8ceqruna Code d'extraction: C0TP
Les deux doivent être téléchargés et placés dans le répertoire./augmentations/tts_for_asr/models
Étape3: puis exécutez le script dans le répertoire racine:
python . / augmentations / tts_for_asr / tts_augment . py - f text . list - o save_dir - - voice_num 10 - - vc_num 3dans:
-F est la liste préparée par l'étape1
-O Le chemin du corpus utilisé pour sauver le synthétique, le chemin absolu recommandé.
--voice_num combien de tons sont utilisés pour synthétiser chaque phrase
--vc_num combien de fois peut être amélioré avec la conversion de tonalité par phrase
Une fois la course terminée, le répertoire WAVS et l'énoncé.txt seront générés sous -O
Se référant à la bibliothèque Librosa, la couche d'extraction de fonctionnalités du spectre de la parole est implémentée à l'aide de TF2.
Ou vous pouvez utiliser la feuille avec une plus petite quantité de paramètre.
utiliser:
mel_layer_type: Melspectrogram #Spectrogram/leaf
trainable_kernel: True #support train model,not recommend
Le projet CPP basé sur ONNX a été mis à jour.
Voir cppinference onnx pour plus de détails
Schéma d'inférence Python basé sur ONNX, voir l'inférence Python pour plus de détails
Prend maintenant en charge la structure du conformère en streaming.
Il existe actuellement deux façons de mettre en œuvre:
Block Conformer + Global CTC
Chunk Conformer + Picker CTC
Tous les résultats ont été testés sur l'ensemble de données AISHELL TEST .
RTF (taux en temps réel) est testé sur les tâches de décodage monocore CPU .
SUIS:
| Nom du modèle | Mel Layer (utilisation / train) | lien | code | Données de formation | Phonème CER (%) | Taille des params | Rtf |
|---|---|---|---|---|---|---|---|
| Conformerctc (s) | Vrai / faux | pan.baidu.com/s/1k6miy1ynglrt0cb-xsqqag | 8S53 | Aishell-1 (50 époques) | 6.4 | 10m | 0,056 |
| StreamingConformèrectc | Vrai / faux | pan.baidu.com/s/1rc0x7loiexaac0gnhurkhw | zwh9 | Aishell-1 (50 époques) | 7.2 | 15m | 0,08 |
| ChunkConformer | Vrai / faux | pan.baidu.com/s/1o_x677wuywnld-8snbydxg | ujmg | Aishell-1 (50 époques) | 11.4 | 15m | 0.1 |
VAD:
| Nom du modèle | lien | code | Données de formation | Taille des params | Rtf |
|---|---|---|---|---|---|
| 8k_online_vad | pan.baidu.com/s/1ag9vwtxiqw4c2agf-6Nigg | OFC9 | OpenSLR Open Source Data | 80K | 0.0001 |
Punc:
| Nom du modèle | lien | code | Données de formation | accrocheur | Taille des params | Rtf |
|---|---|---|---|---|---|---|
| Puncmodel | pan.baidu.com/s/1gtvrkyie2cabfiqbn9bhaw | 515T | Données open source PNL | 95% | 600k | 0.0001 |
utiliser:
Convertir le modèle en fichier onnx dans test_asr.py et mettez-le en pythoninference
Bienvenue à rejoindre, discuter et partager des problèmes. Si vous avez plus de 200 personnes dans le groupe, veuillez ajouter la note "Tensorflowasr".

Dernières mises à jour
pip install tensorflow-gpu 可以参考https://www.bilibili.com/read/cv14876435if you need use the default phonemeFor LAS structure,pip install tensorflow-addonspip install rir-generatorpip install onnxruntime or pip install onnxruntime-gpu Préparez Train_list et Test_List.
Format ASR_TRAIN_LIST , où ' t' est Appot, il est recommandé d'écrire dans un fichier texte en utilisant le programme, le Path + ' T' + Text
wav_path = "xxx/xx/xx/xxx.wav"
wav_label = "这是个例子"
with open ( 'train.list' , 'w' , encoding = 'utf-8' ) as f :
f . write ( wav_path + ' t ' + wav_label + ' n ' ) :Par exemple, le train.List obtenu:
/opt/data/test.wav 这个是一个例子
......
Ce qui suit est le format de préparation des données de formation (non requis) pour la récupération de la VAD et de la ponctuation:
Format VAD_TRAIN_LIST :
wav_path1
wav_path2
……
Par exemple:
/opt/data/test.wav
La logique de traitement interne de la formation VAD repose sur l'énergie en tant qu'échantillons de formation, alors assurez-vous que le corpus de formation que vous préparez est enregistré dans des conditions calmes.
format punc_train_list :
text1
text2
……
Dans le même format que LM, le texte de chaque ligne contient la ponctuation.
Par exemple:
这是:一个例子哦。 √(正确格式)
这是:“一个例子哦”。 ×(错误格式)
这是:一个例子哦“。 ×(错误格式)
Téléchargez le modèle pré-formé de Bert pour la formation assistée des modèles de récupération de ponctuation.
https://pan.baidu.com/s/1_HDAhfGZfNhXS-cYoLQucA extraction code: 4hsa
Modifiez le fichier de configuration am_data.yml (./asr/configs) pour définir certaines options de formation et modifiez name dans le modèle YAML (tel que: ./asr/configs/conformer.yml) pour sélectionner la structure du modèle.
Puis exécutez la commande:
python train_asr.py --data_config ./asr/configs/am_data.yml --model_config ./asr/configs/ConformerS.yml Lorsque vous souhaitez stt , vous pouvez vous référer à la démo écrite ./test_asr.py .
python . / test_asr . py Vous pouvez également utiliser Tester pour tester les données en grande quantité pour vérifier les performances de votre modèle:
mettre en œuvre:
python eval_am.py --data_config ./asr/configs/am_data.yml --model_config ./asr/configs/ConformerS.ymlCe script affichera plusieurs indicateurs de Ser / Cer / Del / Ins / Sub
6. Pour former le modèle de récupération VAD ou de ponctuation, veuillez vous référer aux étapes ci-dessus.
Si vous souhaitez utiliser votre propre phonème, vous avez besoin de la méthode de conversion correspondante dans am_dataloader.py .
def init_text_to_vocab ( self ): #keep the name
def text_to_vocab_func ( txt ):
return your_convert_function
self . text_to_vocab = text_to_vocab_func #here self.text_to_vocab is a function,not a call N'oubliez pas de commencer par <S> et </S> , par exemple:
<S>
</S>
de
shì
……
Reportez-vous aux excellents projets suivants:
https://github.com/usimarit/tiramisuasr
https://github.com/noahchalifour/warp-transducer
https://github.com/paddlepaddle/deepspech
https://github.com/baidu-research/warp-ctc
Nous permettons et merci d'utiliser ce projet pour la recherche universitaire, la production de produits commerciaux, etc., mais il est interdit d'échanger ce projet en tant que marchandise.
Dans l'ensemble, presque les modèles sont autorisés sous l'Apache 2.0 pour tous les pays du monde.
Autorisez et merci d'utiliser ce projet pour la recherche académique, la production de produits commerciaux, la permission d'une utilisation commerciale et non commerciale sans restriction.
Cependant, il est interdit d'échanger ce projet en tant que marchandise.