Échecs de la voix 3D
Un jeu d'échecs 3D motivé par la voix multi-lingue pour apprendre et enseigner la voix AI en utilisant Coqui STT en utilisant des modèles de langage de vocabulaire limité.
Veuillez noter: ce dépôt n'est pas prêt à la production. Il se trouve quelque part entre les versions alpha et bêta au 1er avril 2022.
Capacités actuelles:
- Serveur d'utilisateur unique pour la parole pour texte STT Inference (NodeJS) (c'est-à-dire qu'il fonctionne sur un seul nœud gratuit de noyau - mais nous prenons en charge un pool de serveurs)
- Frontend 3D (voix uniquement l'interface multilingue avec certains boutons et zones de sortie)
- Langues actuellement prises en charge: DE (allemand), en (anglais), tr (turc)
- Vous jouez contre vous :)

Nous avons ouvert un site de test qui est pris en charge par un pool de serveurs pour nos tests.
Résumé du contenu
- Création acoustique-modèle: Exemple de modèle de cahier (TODO)
- Langue-model-création: tous les fichiers pour créer votre modèle de langue spécifique au domaine
- vocale-batte-réaction: frontend - react & trois.js implémentation
- Voix-Chess-Server: Server - Implémentation simple de connexion simple de connexion unique
Comment installer
FAIRE
Comment contribuer
- Création de nouveaux modèles acoustiques et linguistiques dans votre langue
- Meilleur libellé lié aux échecs pour les langues existantes si nécessaire
- Traduire les fichiers de ressources (messages.json)
- Essai; idées, commentaires dans les problèmes; Commits & PR
Comment puis-je ajouter ma langue?
- Obtenez des informations sur la terminologie des échecs dans votre langue (si vous ne le savez pas déjà - Wikipedia et YouTube aident).
- Examinez les phrases / programmes existantes dans les générateurs de phrases d'échecs.
- Copiez un générateur de phrases approprié, renommez-le sur votre code de langue et traduisez / adaptez.
- Trouvez un modèle acoustique Coqui STT compatible (fichier .tflite) ou entraînez-en un des ensembles de données vocales communs de Mozilla.
- Traduire les fichiers de ressources (messages.json)
- Testez vos résultats sur votre serveur / client fourchu localement et améliorez vos modèles si nécessaire.
- Faire une demande de traction (PR) pour ajouter votre modèle acoustique (.tflite), le modèle de langue (.scorer) à Vocal-Chess-Server / Voice Dir, ajoutez le fichier de langage JSON généré et les fichiers Messages.
Si vous ne pouvez pas en faire certains, veuillez ouvrir un problème afin que nous puissions vous aider.
Autres informations
Modèles acoustiques et linguistiques actuels
Des informations détaillées peuvent être trouvées ici.
Projets open source utilisés
- Voix: Coqui STT, COQUI Exemple, Kenlm, Mozilla Common Voice DataSets.
- 3D UI: Three.js & React-Three-Fibre (avec Drei et Zustand)
- Échecs: échec.js pour les données et contrôles d'échecs (pas d'IA ou GUI).
Le code lié au client et au serveur est adapté à partir de l'exemple coqui web_microphone_websocket.
Informations historiques
La première version du projet est créée lors du hackathon "Hack the Planet" de Coqui.ai au Mozilla Festival 2022, entre le 8 et le 15 mars.
L'idée principale était de mettre en œuvre une application comptabilisée en une semaine. Un groupe de personnes a voté pour la mise en œuvre d'un jeu contrôlé par la voix (tic-tac-toe), mais l'idée est devenue un échec 3D motivé par la voix. Une équipe a été formée et la mise en œuvre d'une application d'échecs est devenue l'objectif. Les membres de l'équipe étaient Bö, JF, KM, MK.
C'était une application en deux parties au début:
- La partie du serveur est une application Node.js qui fait le STT réel
- Le client est une application react.js qui enregistre les phrases et communique au serveur pour la transcription via socket.io, le valider, afficher sur le navigateur avec trois.js et avec l'aide de Chess.js.
En raison du délai limité et des contraintes de temps individuelles, le groupe a également gardé les attentes limitées.
- La pièce d'interface utilisateur est maintenue minimale, mais fonctionne. Par exemple, il n'y a pas de jeu manuel, de fonctionnalités d'interface utilisateur améliorées, etc.
- Un échantillon de langues a été sélectionné, mais il peut être étendu avec d'autres langues.
- Il existe de nombreux formats dominants pour les échecs. Pour simplifier l'ensemble du flux de travail, l'utilisateur est obligé d'utiliser un seul format dans cette version:
"Move <piece> from <fromCell> to <targetCell>".
Ici, "pièce" est le nom de pièce d'échecs, comme King, Bishop, etc., "Cell" est la coordonnée du planche Col-Row (colonnes: AZ, lignes: 1-8).
- Après plusieurs essais avec l'anglais et le turc, nous avons découvert que la reconnaissance des personnages alphabétiques uniques n'est pas assez robuste (presque impossible), nous avons donc utilisé l'alphabet de l'OTAN: Alpha, Bravo, ... Hotel. À l'exception de la dénomination de l'OTAN, d'autres libellés se sont traduits en langues respectives.
- Inclure le soutien aux langues suivantes: - allemand, anglais, français, hindi, russe, turc
À la fin de la durée du projet, un logiciel semi-travaillant a été présenté pour l'anglais et le turc.
Vous pouvez regarder la vidéo initiale de présentation du projet ici.
Et, comme promis à la fin de la présentation, nous continuons à développer et à la rendre ouverte ici.