2023-12-14 15:51:14 +00:00
|
|
|
# wchess
|
2023-12-14 13:58:26 +00:00
|
|
|
|
2023-12-14 15:51:14 +00:00
|
|
|
Voice-controlled chess using Whisper
|
2023-12-14 13:58:26 +00:00
|
|
|
|
|
|
|
Online demo: https://whisper.ggerganov.com/wchess/
|
2023-12-14 15:51:14 +00:00
|
|
|
|
|
|
|
https://github.com/ggerganov/whisper.cpp/assets/1991296/c2b2f03c-9684-49f3-8106-357d2d4e67fa
|
|
|
|
|
|
|
|
## Command-line tool
|
|
|
|
|
|
|
|
```bash
|
|
|
|
mkdir build && cd build
|
|
|
|
cmake -DWHISPER_SDL2=1 ..
|
|
|
|
make -j
|
|
|
|
|
|
|
|
./bin/wchess -m ../models/ggml-base.en.bin
|
|
|
|
|
|
|
|
Move: start
|
|
|
|
|
|
|
|
a b c d e f g h
|
|
|
|
r n b q k b n r 8
|
|
|
|
p p p p p p p p 7
|
|
|
|
. * . * . * . * 6
|
|
|
|
* . * . * . * . 5
|
|
|
|
. * . * . * . * 4
|
|
|
|
* . * . * . * . 3
|
|
|
|
P P P P P P P P 2
|
|
|
|
R N B Q K B N R 1
|
|
|
|
|
|
|
|
White's turn
|
|
|
|
[(l)isten/(p)ause/(q)uit]:
|
|
|
|
```
|
|
|
|
|
|
|
|
## TODO
|
|
|
|
|
|
|
|
- Fix bugs in the chess moves logic
|
2023-12-14 20:00:47 +00:00
|
|
|
- Improve web-browser audio capture - sometimes it does not record the voice properly
|
|
|
|
- Add support for more languages by making the generated grammar string multilingual
|
|
|
|
- Explore ways to improve the dynamic grammar to be narrower
|
2023-12-14 15:51:14 +00:00
|
|
|
|
|
|
|
PRs welcome!
|
2023-12-14 20:00:47 +00:00
|
|
|
|
|
|
|
## Thanks
|
|
|
|
|
|
|
|
- [chessboardjs](https://chessboardjs.com) for the neat chessboard JS library used in this demo
|