3D xadrez de voz
Um jogo de xadrez 3D de voz multilíngue para aprender e ensinar a IA da Voice usando o Coqui STT usando modelos de linguagem de vocabulário limitados.
Observação: este repositório não está pronto para a produção. Está em algum lugar entre as versões alfa e beta em 1º de abril de 2022.
Recursos atuais:
- Servidor de usuário único para falar para enviar a Inferência STT (NodeJS) (ou seja, funciona em um único nó livre de núcleo - mas suportamos um pool de servidores)
- Frontend 3D (apenas interface multilíngue com alguns botões e áreas de saída)
- Atualmente suportado Idiomas: DE (alemão), en (inglês), Tr (turco)
- Você joga contra si mesmo :)

Abrimos um site de teste suportado por um pool de servidores para nossos testes.
Resumo do conteúdo
- Criação acústica-modelo: Exemplo de notebook (TODO)
- Criação de Modelo de Idioma: Todos os arquivos para criar seu modelo de idioma específico de domínio
- Voice-Chess-REACT: Frontend-React & Three.js Implementation
- Voice-Chess-Server: Servidor-Implementação simples de conexão única NodeJS
Como instalar
PENDÊNCIA
Como contribuir
- Criação de novos modelos acústicos e de linguagem em seu idioma
- Melhor redação relacionada a xadrez para os idiomas existentes, se necessário
- Traduzir Arquivos de Recursos (Mensagens.json)
- Teste; idéias, feedback em questões; COMITARS E PRS
Como posso adicionar meu idioma?
- Obtenha informações sobre a terminologia do xadrez em seu idioma (se você ainda não sabe - a Wikipedia e o YouTube ajudam).
- Examine frases/programação existentes em geradores de sentenças de xadrez.
- Copie um gerador de frases apropriado, renomeie -o para o seu código de idioma e traduza/adapte.
- Encontre um modelo acústico compatível com coqui sTT (arquivo .tflite) ou treine um dos conjuntos de dados de voz comuns da Mozilla.
- Traduzir Arquivos de Recursos (Mensagens.json)
- Teste seus resultados em seu servidor/cliente bifurcado localmente e melhore seus modelos, se necessário.
- Faça uma solicitação de tração (PR) para adicionar seu modelo acústico (.tflite), modelo de idioma (.scorer) ao dir de voz-chess-server/voz, adicione o arquivo de idioma JSON gerado e os arquivos traduzidos para o Voice-Chess-react/Locale.
Se você não puder fazer alguns deles, abra um problema para que possamos ajudar.
Outras informações
Modelos acústicos e de linguagem atuais
Informações detalhadas podem ser encontradas aqui.
Projetos de código aberto usados
- Voz: Coqui STT, Coqui Exemplo, Kenlm, Mozilla Common Voice DataSets.
- 3D UI: Three.js & React-Three Fiber (com Drei e Zustand)
- Xadrez: xadrez.js para dados e controles de xadrez (sem IA ou GUI).
O código relacionado à voz do cliente e do servidor está adaptado do exemplo coqui web_microphone_websocket.
Informação histórica
A primeira versão do projeto é criada durante o hackathon "Hack the Planet" da Coqui.ai, no festival de Mozilla 2022, entre 8 e 15 de março.
A idéia principal era implementar um aplicativo habilitado para o discurso em uma semana. Um grupo de pessoas votou na implementação de um jogo controlado por voz (TIC-TAC-TOE), mas a idéia se tornou um xadrez 3D de voz multilíngue. Uma equipe foi formada e a implementação de um aplicativo de xadrez se tornou o objetivo. Os membros da equipe eram Bö, JF, KM, MK.
Este foi um aplicativo de duas partes no início:
- A parte do servidor é um aplicativo Node.js que faz o STT real
- O cliente é um aplicativo react.js que registra frases e se comunica ao servidor para transcrição via soquete.io, validá -lo, mostrar no navegador com três.js e com a ajuda do chess.js.
Devido ao prazo limitado e às restrições de tempo individuais, o grupo manteve as expectativas também limitadas.
- A parte da interface do usuário é mantida mínima, mas funcionando. Por exemplo, não há jogo manual, recursos aprimorados da interface do usuário etc.
- Uma amostra de idiomas foi selecionada, mas pode ser expandida com outros idiomas.
- Existem muitos formatos de comando para o xadrez. Para simplificar todo o fluxo de trabalho, o usuário é forçado a usar um único formato nesta versão:
"Move <piece> from <fromCell> to <targetCell>".
Aqui "peça" é o nome da peça de xadrez, como rei, bispo etc., "célula" é a placa coordenada colon-filo (colunas: AZ, linhas: 1-8).
- Depois de vários testes com inglês e turco, descobrimos que o reconhecimento de caracteres alfabéticos únicos não é robusta o suficiente (quase impossível), por isso usamos o alfabeto da OTAN: alfa, Bravo, ... hotel. Exceto a nomeação da OTAN, outras palavras foram traduzidas para os respectivos idiomas.
- Inclua apoio aos seguintes idiomas: - Alemão, inglês, francês, hindi, russo, turco
No final da duração do projeto, um software semi-trabalhador foi apresentado para inglês e turco.
Você pode assistir ao vídeo de apresentação do projeto inicial aqui.
E, como prometido no final da apresentação, continuamos a desenvolver e torná-lo de código aberto aqui.