ASRT é um sistema de reconhecimento de fala chinês baseado em aprendizado profundo. Se você gostar, clique em "Estrela" ~.
LeiaMe Idioma | Versão chinesa |
Página inicial do projeto ASRT | Download da versão de lançamento | Ver o documento Wiki deste projeto | Experiência de efeito prático Recompensar o autor
Se você tiver algum problema durante a execução ou uso do programa, poderá abordá-lo a tempo e responderei o mais rápido possível. O autor deste projeto se comunica no grupo QQ: 894112051. Para ingressar no grupo WeChat, adicione o AI Lemon WeChat ID: ailemon-me e anote "ASRT Speech Recognition"
Por favor, leia a documentação do projeto, as perguntas frequentes e os problemas com atenção antes de fazer perguntas para evitar perguntas repetidas.
Se houver alguma anormalidade durante a execução do programa, envie uma captura de tela completa ao fazer perguntas e indique a arquitetura de CPU utilizada, modelo de GPU, sistema operacional, versões Python, TensorFlow e CUDA, e se algum código ou conjunto de dados foi modificado foram adicionados ou excluídos, etc.
Este projeto usa tensorFlow.keras baseado em rede neural convolucional profunda e rede neural de memória de longo prazo, mecanismo de atenção e implementação de CTC.
Tomemos como exemplo a operação no sistema Linux:
Primeiro, clone este projeto em seu computador através do Git e, em seguida, baixe os conjuntos de dados necessários para o treinamento neste projeto. Veja o link de download no final do documento.
$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git
Ou você pode usar o botão "Fork" para fazer uma cópia deste projeto e depois cloná-lo localmente usando sua própria chave SSH.
Depois de clonar o warehouse por meio do git, entre no diretório raiz do projeto e crie um subdiretório para armazenar dados, como /data/speech_data
(você pode usar um link virtual) e, em seguida, extraia diretamente o conjunto de dados baixado nele;
Observe que na versão atual, seis conjuntos de dados, incluindo Thchs30, ST-CMDS, Primewords, aishell-1, adatatang200 e MagicData são adicionados por padrão no arquivo de configuração. Se quiser usar outros conjuntos de dados, você mesmo precisará adicionar a configuração dos dados e organizar os dados antecipadamente usando o formato padrão suportado pelo ASRT.
$ cd ASRT_SpeechRecognition
$ mkdir /data/speech_data
$ tar zxf <数据集压缩文件名> -C /data/speech_data/
Baixe o arquivo de rótulo pinyin do conjunto de dados padrão:
$ python download_default_datalist.py
Os modelos atualmente disponíveis são 24, 25, 251 e 251 bilhões
Antes de executar este projeto, instale as bibliotecas necessárias dependentes da versão Python3
Para iniciar o treinamento para este projeto, execute:
$ python3 train_speech_model.py
Para começar a testar este projeto, execute:
$ python3 evaluate_speech_model.py
Antes de testar, certifique-se de que existe o caminho do arquivo de modelo preenchido no código.
Prever texto de reconhecimento de fala para um único arquivo de áudio:
$ python3 predict_speech_file.py
Para iniciar o servidor API do protocolo ASRT HTTP, execute:
$ python3 asrserver_http.py
Teste localmente se a chamada do serviço de API do protocolo HTTP foi bem-sucedida:
$ python3 client_http.py
Para iniciar o servidor API do protocolo ASRT GRPC, execute:
$ python3 asrserver_grpc.py
Teste localmente se a chamada do serviço API do protocolo GRPC foi bem-sucedida:
$ python3 client_grpc.py
Observe que após abrir o servidor API, você precisa usar o software cliente correspondente a este projeto ASRT para reconhecimento de fala. Para obter detalhes, consulte o documento Wiki para baixar o SDK e a demonstração do cliente de reconhecimento de fala ASRT.
Se você deseja treinar e usar um modelo diferente de 251bn, faça modificações no local correspondente de from speech_model.xxx import xxx
no código.
Use o docker para implantar o ASRT diretamente:
$ 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
Somente a CPU executa o reconhecimento de inferência sem treinamento.
DCNN+CTC
Entre eles, a duração máxima do áudio de entrada é de 16 segundos e a saída é a sequência Pinyin chinesa correspondente.
O modelo treinado está incluído no pacote compactado do programa do servidor da versão de lançamento. O programa do servidor finalizado da versão de lançamento pode ser baixado aqui: página de download do ASRT.
A página Releases neste repositório Github também inclui informações de introdução para cada versão diferente. O pacote zip em cada versão também contém o pacote do programa do servidor de lançamento do modelo treinado.
Modelo de Markov oculto de entropia máxima baseado em gráfico de probabilidade
A entrada é uma sequência pinyin chinesa e a saída é o texto em caracteres chineses correspondente.
Atualmente, o melhor modelo pode basicamente atingir 85% de precisão do Pinyin chinês no conjunto de teste.
Se você não sabe como instalar o ambiente, execute o seguinte comando diretamente (desde que você tenha uma GPU e Python3.9, CUDA 11.2 e cudnn 8.1 estejam instalados):
$ pip install -r requirements.txt
Depende dos requisitos de configuração de ambiente e desempenho
Para obter o conteúdo completo, consulte: Vários conjuntos de dados de fala chinesa gratuitos e de código aberto mais recentes
Conjunto de dados | duração | tamanho | Download doméstico | Baixe no exterior |
---|---|---|---|---|
THCHS30 | 40h | 6,01G | dados_thchs30.tgz | dados_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 |
Palavras-chave | 100h | 8,44G | primewords_md_2018_set1.tar.gz | primewords_md_2018_set1.tar.gz |
Dados 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 descompressão do conjunto de dados AISHELL-1
$ tar xzf data_aishell.tgz
$ cd data_aishell/wav
$ for tar in *.tar.gz; do tar xvf $tar; done
Agradecimentos especiais! Agradecimentos aos antecessores pelo conjunto de dados de fala pública
Se o link do conjunto de dados fornecido não puder ser aberto e baixado, clique no link OpenSLR
ASRT fornece recursos de acesso SDK para diferentes plataformas e linguagens de programação para que os clientes possam chamar e desenvolver funções de reconhecimento de fala por meio de RPC. Para outras plataformas, as funções de reconhecimento de fala podem ser acessadas diretamente chamando a API RESTful Open geral. Consulte a documentação do projeto ASRT para etapas de acesso específicas.
Plataforma do cliente | Link do repositório do projeto |
---|---|
SDK e demonstração do cliente Windows | ASRT_SDK_WinClient |
SDK e demonstração do cliente Python3 de plataforma cruzada | ASRT_SDK_Python3 |
SDK e demonstração do cliente Golang multiplataforma | asrt-sdk-go |
SDK do cliente Java e demonstração | ASRT_SDK_Java |
Por favor, verifique este artigo para conhecer os princípios do ASRT:
Consulte o tutorial de treinamento e implantação do ASRT:
Para perguntas frequentes sobre os princípios dos modelos de linguagem estatística, consulte:
Para dúvidas sobre o CTC, consulte:
Para mais conteúdo, visite o blog do autor: AI Lemon Blog
Ou use o mecanismo de busca do site AI Lemon para pesquisar informações relacionadas
GPL v3.0 © nl8590687 Autor: AI Lemon
DOI: 10.5281/zenodo.5808434
Página do colaborador
@nl8590687 (proprietário do repositório)