Voice Chess cover image

Voice Chess

Published: 28 December 2025

Voice Chess is my biggest and most ambitious project to date, it is a computer game, which allows players to command chess pieces with verbal orders and play against both chess engine and fellow human player. And now it is high time to mark this project as completed and get one final release (at least for the foreseeable future).

The new release

This post comes with the newest release of Voice Chess, version 1.3.0, which brings some major changes as I was finalizing all work done in the project.

Probably the most exciting feature, which was missing in previous versions of Voice Chess is the ability to play against the chess engine inside the application. As a matter of fact, Voice Chess is compatible with any UCI-complaint chess engine - like Stockfish!

But fear not, the option to play against other humans stays just as it was - it only needs to be selected with correct command line parameter (I know, preposterous!). In this mode game allows for both players to input moves with the same microphone, ideal for hot seat gaming or training on your own.

Second new feature are visual indicators of the previous move. Now, the target square of the previous move, as well as, the source square are highlighted. This should make it a little bit easier to follow games against chess engine (you want miss what move the computer made) and not get confused while training, as you no longer need to remember which side was the last to move!

The journey

This project, Voice Chess has started many years ago. In fact, when it was first published 14th of December, 2023 it was not its first iteration. The whole idea of a chess you can play with voice commands acompanied me from the second half of high school.

And yes, I know that it looks like it would be inspired by the chess in the Harry Potter and the Philosophers Stone by J. K. Rowling, but the truth is, that Harry and friends were only an after though to this idea. At first it was mostly focused on allowing people to try and learn playing chess blind.

The idea was to have an application, which you could use to practise playing in your mind, without the chess board, eighter blindfolded or without the chessboard displayed on screen. It could also be used by blind people to play in a cheaper way than with the use of specially made board.

Those ideals, however, did not survive to the end, as many crucial features for those intended purposes were not implemented. Maybe in a future, they will be added again, but that is uncertain, as I would like to move to other projects.

As I said, the first iteration of Voice Chess was created in my second year of high school. This version, however, cannot be truly named “Voice Chess”, as due to some technical troubles, it did not use voice input at all.

At the time, I mostly made games with Unity game engine and with C# scripting. As such I tried to use the Pocketsphinx library for voice recognition, but linking C code with C#, especially inside a Unity project was beyond abilities my abilities.

This was a reason, that project, which emerged was a 3D game, with modeled 3D pieces and board, which were moved with the mouse. What sets this project apart from all version, that came after it is a fact, that this is the only instance where you could play online.

Well, not that it had any actuall server, but it had a server program, which enabled you to play games over the local network. At the time it was quite a big achivement for me.

When I have learned C++ in second half of my second year in high school, new version of Voice Chess was created: this time in C++. The second change was discovery of new voice recognition library: Vosk, which was a new library created on the same university, which previously created Pocketsphinx.

This version, however, tried to use kaldi, that is a speech recognition framework, on which the Vosk library was based. As is no surprise to anyone, this failed spectacularly. I don’t even remember if a single, somewhat functional version has been made, or if all that was accomplished were some learning on my part.

At the time I’m writing this post, my most popular game on itch.io is Voice Tic-Tac-Toe, which was created as an experiment. This was an exercise, which purpose was to pave the road for future development of new iteration of Voice Chess.

This also happened in my 3rd year of high school, when I had much more time on my hands, than in previous years due to the Corona virus pandemic. I have spent most of this time learning computer graphics from scratch, starting with OpenGL. At this point, I cannot not mention Cherno’s YouTube channel, which was my main source of knowledge on OpenGL and programming in C++ in general.

And that was how last-but-one iteration of Voice chess was born. It was made with the use of OpenGL, it employed the PortAudio library for sound input and Vosk for speech recognition. It had become a mess quite fast, just as I started my studies at the University of Warsaw. Not long after the final iteration was started.

On the day of 14th of March, 2023, precislely nine months before first public release, I have started a new project. This one has been carefully planed beforehand, with structure and inner workings written down for once before most of the code was written.

This is also the one project I am proud of in therms of code documentation. The reason it survived in an open state for so long is, in fact, that it is documented. Classes, methods and functions have descriptions of how they work, constants have explanations and most codes are described, with reasoning behind their function and why they were written this way.

For the next two years I have worked on and off on this project. It changed with the amount of free time I had and with new project ideas, that struc my mind. But until August 2024 I always returned to Voice Chess to add something new, to fix a couple of bugs and change it, make it better.

The last version, released on August 22, 2024 was never ment to be the last. Behind the scenes there were big features in the work, nearly finished. Those features are now the final release of version 1.3.0. They have waited for an implementation of a graphical menu system in an almost completed state.

Now, as the 2025 ends, in this time of summaries I finally decided to release all that was done and waiting in the Voice Chess project and officialy move it to the “finished” status.

The conclusion

The Voice Chess is, as of the day I’m writing this post, my biggest and most ambitious project. I have learned a lot working on it. It was my main motivation for learning OpenGL and low-level computer graphics. It was the reason I got a little bit of experience working with low-level audio code (well, at least as low-level as PortAudio library…).

Certainly, there are some missing features, some goals I did not manage to reach. Those are, in no particular order:

  • graphical menu - a place were users may change the various settings provided by the application with graphical interface without the need to use command line
  • speech responses - probably the biggest missing feature and the one that makes it unusable in most scenarios, that I had in my mind, when starting work on this project - the ability of the application to speak engine moves out loud, so you can play blindfolded
  • replayability - the current version allows for a single game, to play again you need to restart the application. In ideal world, after the game has ended players should be provided with some popup menu allowing them to quit the game or start a new one.

Despite those missing features, I feel like this is the right moment to say: “enough”. That is why I declare the Voice Chess project as finished. Of course, it is possible, that at some point in the future time will be right to pick it up once again and create a new version, add one of this missing goals, but it is not in the plans.

Now I want to focus on my studies and on some new big projects, that you’ll hopefully learn about soon.