ASRT est un système de reconnaissance vocale chinois basé sur l'apprentissage profond. Si vous l'aimez, veuillez cliquer sur "Étoile" ~.
Langue Lisez-moi | Version chinoise | Anglais |
Page d'accueil du projet ASRT | Téléchargement de la version Release | Voir le document Wiki de ce projet | Expérience d'effet pratique Récompenser l'auteur |
Si vous rencontrez des problèmes lors de l'exécution ou de l'utilisation du programme, vous pouvez le signaler à temps et je vous répondrai dans les plus brefs délais. L'auteur de ce projet communique dans le groupe QQ : 894112051. Pour rejoindre le groupe WeChat, veuillez ajouter l'ID AI Lemon WeChat : ailemon-me , et noter « ASRT Speech Recognition »
Veuillez lire attentivement la documentation du projet, la FAQ et les problèmes avant de poser des questions afin d'éviter les questions répétées.
S'il y a des anomalies lors de l'exécution du programme, veuillez envoyer une capture d'écran complète lorsque vous posez des questions et indiquer l'architecture du processeur utilisée, le modèle de GPU, le système d'exploitation, les versions Python, TensorFlow et CUDA, et si du code ou des ensembles de données ont été modifiés. ont été ajoutés ou supprimés, etc.
Ce projet utilise tensorFlow.keras basé sur un réseau neuronal convolutif profond et un réseau neuronal à mémoire à long terme, un mécanisme d'attention et la mise en œuvre de CTC.
Prenons l'exemple de l'opération sous le système Linux :
Tout d'abord, clonez ce projet sur votre ordinateur via Git, puis téléchargez les ensembles de données requis pour la formation sur ce projet. Voir le lien de téléchargement à la fin du document.
$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git
Ou vous pouvez utiliser le bouton "Fork" pour faire une copie de ce projet, puis le cloner localement à l'aide de votre propre clé SSH.
Après avoir cloné l'entrepôt via git, entrez dans le répertoire racine du projet et créez un sous-répertoire pour stocker les données, tel que /data/speech_data
(vous pouvez utiliser un lien symbolique à la place), puis extrayez-y directement l'ensemble de données téléchargé.
Notez que dans la version actuelle, six ensembles de données dont Thchs30, ST-CMDS, Primewords, aishell-1, aidatatang200 et MagicData sont ajoutés par défaut dans le fichier de configuration. Veuillez les supprimer vous-même si vous n'en avez pas besoin. Si vous souhaitez utiliser d'autres ensembles de données, vous devez ajouter vous-même la configuration des données et organiser les données à l'avance en utilisant le format standard pris en charge par ASRT.
$ cd ASRT_SpeechRecognition
$ mkdir /data/speech_data
$ tar zxf <数据集压缩文件名> -C /data/speech_data/
Téléchargez le fichier d'étiquettes pinyin de l'ensemble de données par défaut :
$ python download_default_datalist.py
Les modèles actuellement disponibles sont 24, 25, 251 et 251 milliards
Avant d'exécuter ce projet, veuillez installer les bibliothèques nécessaires dépendantes de la version Python3
Pour commencer la formation pour ce projet, veuillez exécuter :
$ python3 train_speech_model.py
Pour commencer à tester ce projet, veuillez exécuter :
$ python3 evaluate_speech_model.py
Avant de tester, veuillez vous assurer que le chemin du fichier modèle renseigné dans le code existe.
Prédire le texte de reconnaissance vocale pour un seul fichier audio :
$ python3 predict_speech_file.py
Pour démarrer le serveur API du protocole HTTP ASRT, veuillez exécuter :
$ python3 asrserver_http.py
Testez localement si l'appel du service API du protocole HTTP réussit :
$ python3 client_http.py
Pour démarrer le serveur API du protocole ASRT GRPC, veuillez exécuter :
$ python3 asrserver_grpc.py
Testez localement si l'appel du service API du protocole GRPC réussit :
$ python3 client_grpc.py
Veuillez noter qu'après avoir ouvert le serveur API, vous devez utiliser le logiciel client correspondant à ce projet ASRT pour la reconnaissance vocale. Pour plus de détails, consultez le document Wiki pour télécharger le SDK et la démo du client de reconnaissance vocale ASRT.
Si vous souhaitez entraîner et utiliser un modèle autre que 251 milliards, veuillez apporter des modifications à l'emplacement correspondant de from speech_model.xxx import xxx
dans le code.
Utilisez Docker pour déployer ASRT directement :
$ docker pull ailemondocker/asrt_service:1.3.0
$ docker run --rm -it -p 20001:20001 -p 20002:20002 --name asrt-server -d ailemondocker/asrt_service:1.3.0
Seul le processeur exécute la reconnaissance d'inférence sans formation.
DCNN+CTC
Parmi eux, la durée maximale de l'audio d'entrée est de 16 secondes et la sortie est la séquence Pinyin chinoise correspondante.
Le modèle formé est inclus dans le package compressé du programme serveur de la version finale. La version finale du programme serveur peut être téléchargée ici : page de téléchargement ASRT.
La page Versions de ce référentiel Github comprend également des informations d'introduction pour chaque version différente. Le package zip sous chaque version contient également le package du programme de serveur de version du modèle formé.
Modèle de Markov caché à entropie maximale basé sur un graphique de probabilité
L'entrée est une séquence pinyin chinoise et la sortie est le texte en caractères chinois correspondant.
Actuellement, le meilleur modèle peut atteindre une précision de 85 % en pinyin chinois sur l’ensemble de test.
Si vous ne savez pas comment installer l'environnement, veuillez exécuter directement la commande suivante (à condition que vous disposiez d'un GPU et que Python3.9, CUDA 11.2 et cudnn 8.1 aient été installés) :
$ pip install -r requirements.txt
Dépend des exigences de configuration de l'environnement et des performances
Pour le contenu complet, veuillez consulter : Plusieurs derniers ensembles de données vocales chinoises gratuites et open source
Ensemble de données | durée | taille | Téléchargement national | Télécharger à l'étranger |
---|---|---|---|---|
THCHS30 | 40h | 6.01G | data_thchs30.tgz | data_thchs30.tgz |
ST-CMDS | 100h | 7,67G | ST-CMDS-20170001_1-OS.tar.gz | ST-CMDS-20170001_1-OS.tar.gz |
AIShell-1 | 178h | 14,51G | data_aishell.tgz | data_aishell.tgz |
Mots-clés | 100h | 8,44G | primewords_md_2018_set1.tar.gz | primewords_md_2018_set1.tar.gz |
Données magiques | 755h | 52G/1.0G/2.2G | train_set.tar.gz/dev_set.tar.gz/test_set.tar.gz | train_set.tar.gz/dev_set.tar.gz/test_set.tar.gz |
Remarque : méthode de décompression de l'ensemble de données AISHELL-1
$ tar xzf data_aishell.tgz
$ cd data_aishell/wav
$ for tar in *.tar.gz; do tar xvf $tar; done
Merci spécial! Merci aux prédécesseurs pour l'ensemble de données de parole publique
Si le lien de l'ensemble de données fourni ne peut pas être ouvert et téléchargé, veuillez cliquer sur le lien OpenSLR
ASRT fournit des capacités d'accès au SDK pour différentes plates-formes et langages de programmation permettant aux clients d'appeler et de développer des fonctions de reconnaissance vocale via RPC. Pour d'autres plates-formes, les fonctions de reconnaissance vocale sont accessibles directement en appelant l'API ouverte RESTful générale. Veuillez consulter la documentation du projet ASRT pour connaître les étapes d'accès spécifiques.
Plateforme client | Lien vers le référentiel du projet |
---|---|
SDK client Windows et démo | ASRT_SDK_WinClient |
SDK et démo client Python3 multiplateforme | ASRT_SDK_Python3 |
SDK et démo du client Golang multiplateforme | asrt-sdk-aller |
SDK client Java et démo | ASRT_SDK_Java |
Veuillez consulter cet article pour connaître les principes de l'ASRT :
Veuillez consulter le didacticiel de formation et de déploiement ASRT :
Pour les questions fréquemment posées sur les principes des modèles de langage statistique, veuillez consulter :
Pour toute question sur CTC, veuillez consulter :
Pour plus de contenu, veuillez visiter le blog de l’auteur : AI Lemon Blog
Ou utilisez le moteur de recherche du site AI Lemon pour rechercher des informations connexes
GPL v3.0 © nl8590687 Auteur : AI Lemon
DOI : 10.5281/zenodo.5808434
Page des contributeurs
@ nl8590687 (propriétaire du dépôt)