Inspiration
English television presenter and podcaster Richard Osman was discussing the use of AI in writing news articles and books. He suggested that a useful application would be AI commentary for a local cricket match that someone might walk past or stop to watch.
That made me think I could add voice commentary to my existing work on portable cricket scoreboards.
I wanted to build a simple scoreboard that could automatically collect live match information, display it clearly on televisions and scoreboards, and speak important match updates aloud.
But the strongest inspiration came from a social media post about our Blind and Low Vision team. Spoken live commentary could give players and supporters a simple way to follow the score, match situation and required run rate in real time.
What it does
Cricket Scoreboard & Voice Commentary turns live cricket match data into a large, easy-to-read pavilion and/or scoreboard display.
The scoreboard can show:
- the current score, wickets and overs
- both batters at the crease
- the striker
- the current bowler
- run rate
- innings and match status
- end-of-over summaries
- leading batting and bowling performances
It also produces spoken match updates after important events, allowing people around the pavilion to follow the game without constantly watching the screen.
The same system could later provide data to a permanent outdoor LED scoreboard.
How we built it
The project was built using Python, Flask, HTML, CSS and JavaScript.
It collects live score data from public PlayCricket endpoints or local scoring devices, processes the returned JSON and converts it into a simplified scoreboard display.
A Flask back end manages the match data and provides information to the scoreboard front end. The display refreshes automatically as the online score changes.
The voice system creates commentary from cricket events and reads those updates aloud using text-to-speech via a local Wi-Fi.
ChatGPT and Codex were used throughout development to:
- plan the project structure
- build the Flask API
- understand and process the cricket score data
- identify batters, bowlers and the striker
- create commentary templates
- add delayed spoken updates
- improve the scoreboard layout
- diagnose errors
- test different match situations
- prepare the project for deployment
The application does not currently call an AI model while it is running. Codex and GPT-5.6 were used as development tools to build, test and improve the program.
Challenges we faced
Live cricket data can change format depending on the state of the match.
The program needed to handle:
- matches that had not started
- live innings
- innings breaks
- completed matches
- abandoned matches
- missing batter or bowler information
- delayed online scoring
- changes of striker
- wickets and end-of-over events
Another challenge was keeping the spoken commentary useful without it becoming repetitive or interrupting too often.
The scoreboard also needed to remain readable from across a pavilion television and scoreboard, rather than looking like a normal website.
Accomplishments that we're proud of
The project combines live online scoring, a television scoreboard and spoken cricket updates in one system.
It was designed around a real community cricket-ground problem rather than as a demonstration only.
The display can be used on ordinary televisions, making it more affordable for clubs that cannot purchase a commercial electronic scoreboard system.
What we learned
Through this project I learned more about:
- Python and Flask
- APIs and JSON data
- live-data polling
- front-end scoreboard design
- text-to-speech
- testing cricket match states
- debugging with Codex
- deploying a working web application
I also learned how to turn an idea based on practical cricket administration experience into a working software project.
What's next
Future improvements could include:
- more varied commentary, It can work in different languages (Hindi) but not multiple atm
- milestone and wicket announcements
- team and competition selection
- automatic loading of local matches
- multiple television layouts
- player name pronunciation settings
- connection to a permanent LED scoreboard
Log in or sign up for Devpost to join the conversation.