ASRT es un sistema chino de reconocimiento de voz basado en el aprendizaje profundo. Si te gusta, haz clic en "Estrella" ~.
Léame Idioma | Versión china | Inglés |
Página de inicio del proyecto ASRT | Descarga de la versión de lanzamiento | Ver el documento Wiki de este proyecto Demostración de efectos prácticos |
Si tiene algún problema durante la ejecución o el uso del programa, puede plantearlo a tiempo y le responderé lo antes posible. El autor de este proyecto se comunica en el grupo QQ: 894112051. Para unirse al grupo WeChat, agregue AI Lemon WeChat ID: ailemon-me y anote "ASRT Speech Recognition"
Lea atentamente la documentación del proyecto, las preguntas frecuentes y los problemas antes de hacer preguntas para evitar preguntas repetidas.
Si hay alguna anomalía durante la ejecución del programa, envíe una captura de pantalla completa cuando haga preguntas e indique la arquitectura de CPU utilizada, el modelo de GPU, el sistema operativo, las versiones de Python, TensorFlow y CUDA, y si se ha modificado algún código o conjunto de datos. se han agregado o eliminado, etc.
Este proyecto utiliza tensorFlow.keras basado en una red neuronal convolucional profunda y una red neuronal de memoria a corto plazo, mecanismo de atención e implementación de CTC.
Tome la operación en el sistema Linux como ejemplo:
Primero, clone este proyecto en su computadora a través de Git y luego descargue los conjuntos de datos necesarios para la capacitación en este proyecto. Consulte el enlace de descarga al final del documento.
$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git
O puede usar el botón "Fork" para hacer una copia de este proyecto y luego clonarlo localmente usando su propia clave SSH.
Después de clonar el almacén a través de git, ingrese al directorio raíz del proyecto y cree un subdirectorio para almacenar datos, como /data/speech_data
(puede usar un enlace suave en su lugar) y luego extraiga directamente el conjunto de datos descargado en él;
Tenga en cuenta que en la versión actual, seis conjuntos de datos, incluidos Thchs30, ST-CMDS, Primewords, aishell-1, aidatatang200 y MagicData, se agregan de forma predeterminada en el archivo de configuración. Elimínelos usted mismo si no los necesita. Si desea utilizar otros conjuntos de datos, debe agregar la configuración de datos usted mismo y organizar los datos de antemano utilizando el formato estándar admitido por ASRT.
$ cd ASRT_SpeechRecognition
$ mkdir /data/speech_data
$ tar zxf <数据集压缩文件名> -C /data/speech_data/
Descargue el archivo de etiqueta pinyin del conjunto de datos predeterminado:
$ python download_default_datalist.py
Los modelos actualmente disponibles son 24, 25, 251 y 251 mil millones.
Antes de ejecutar este proyecto, instale las bibliotecas necesarias que dependen de la versión Python3.
Para iniciar la capacitación para este proyecto, ejecute:
$ python3 train_speech_model.py
Para comenzar a probar este proyecto, ejecute:
$ python3 evaluate_speech_model.py
Antes de realizar la prueba, asegúrese de que exista la ruta del archivo del modelo completada en el código.
Predecir texto de reconocimiento de voz para un único archivo de audio:
$ python3 predict_speech_file.py
Para iniciar el servidor API del protocolo HTTP ASRT, ejecute:
$ python3 asrserver_http.py
Pruebe localmente si la llamada al servicio API del protocolo HTTP es exitosa:
$ python3 client_http.py
Para iniciar el servidor API del protocolo ASRT GRPC, ejecute:
$ python3 asrserver_grpc.py
Pruebe localmente si la llamada al servicio API del protocolo GRPC es exitosa:
$ python3 client_grpc.py
Tenga en cuenta que después de abrir el servidor API, debe utilizar el software cliente correspondiente a este proyecto ASRT para el reconocimiento de voz. Para obtener más información, consulte el documento Wiki para descargar el SDK y la demostración del cliente de reconocimiento de voz ASRT.
Si desea entrenar y utilizar un modelo que no sea de 251 mil millones, realice modificaciones en la ubicación correspondiente from speech_model.xxx import xxx
en el código.
Utilice Docker para implementar ASRT directamente:
$ 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
Sólo la CPU ejecuta el reconocimiento de inferencias sin entrenamiento.
DCNN+CTC
Entre ellos, la duración máxima del audio de entrada es de 16 segundos y la salida es la secuencia Pinyin china correspondiente.
El modelo entrenado se incluye en el paquete comprimido del programa del servidor de la versión de lanzamiento. La versión de lanzamiento del programa del servidor terminado se puede descargar aquí: Página de descarga de ASRT.
La página de Lanzamientos en este repositorio de Github también incluye información de introducción para cada versión diferente. El paquete zip de cada versión también contiene el paquete del programa del servidor de lanzamiento del modelo entrenado.
Modelo de Markov oculto de máxima entropía basado en gráfico de probabilidad
La entrada es una secuencia pinyin china y la salida es el texto de caracteres chinos correspondiente.
Actualmente, el mejor modelo puede alcanzar básicamente un 85% de precisión en Pinyin chino en el conjunto de prueba.
Si no sabe cómo instalar el entorno, ejecute el siguiente comando directamente (siempre que tenga una GPU y se hayan instalado Python3.9, CUDA 11.2 y cudnn 8.1):
$ pip install -r requirements.txt
Depende de los requisitos de configuración del entorno y del rendimiento.
Para obtener el contenido completo, consulte: Varios conjuntos de datos de voz chinos gratuitos y de código abierto más recientes
Conjunto de datos | duración | tamaño | Descarga nacional | Descargar en el extranjero |
---|---|---|---|---|
THCHS30 | 40h | 6,01G | datos_thchs30.tgz | datos_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 | datos_aishell.tgz | datos_aishell.tgz |
Palabras principales | 100h | 8,44G | primewords_md_2018_set1.tar.gz | primewords_md_2018_set1.tar.gz |
Datos mágicos | 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 |
Nota: método de descompresión del conjunto de datos AISHELL-1
$ tar xzf data_aishell.tgz
$ cd data_aishell/wav
$ for tar in *.tar.gz; do tar xvf $tar; done
¡Gracias especiales! Gracias a los predecesores por el conjunto de datos de discurso público.
Si el enlace del conjunto de datos proporcionado no se puede abrir y descargar, haga clic en el enlace OpenSLR
ASRT proporciona capacidades de acceso al SDK para diferentes plataformas y lenguajes de programación para que los clientes llamen y desarrollen funciones de reconocimiento de voz a través de RPC. Para otras plataformas, se puede acceder directamente a las funciones de reconocimiento de voz llamando a la API abierta RESTful general. Consulte la documentación del proyecto ASRT para conocer los pasos de acceso específicos.
Plataforma de cliente | Enlace al repositorio de proyectos |
---|---|
Demostración y SDK del cliente de Windows | ASRT_SDK_WinClient |
SDK y demostración del cliente Python3 multiplataforma | ASRT_SDK_Python3 |
SDK y demostración del cliente Golang multiplataforma | asrt-sdk-go |
SDK y demostración del cliente Java | ASRT_SDK_Java |
Consulte este artículo para conocer los principios de ASRT:
Consulte el tutorial de implementación y capacitación de ASRT:
Para preguntas frecuentes sobre los principios de los modelos de lenguaje estadístico, consulte:
Si tiene preguntas sobre CTC, consulte:
Para obtener más contenido, visite el blog del autor: AI Lemon Blog
O utilice el motor de búsqueda del sitio AI Lemon para buscar información relacionada
GPL v3.0 © nl8590687 Autor: AI Lemon
DOI: 10.5281/zenodo.5808434
Página de colaborador
@nl8590687 (propietario del repositorio)