What are you doing for away games? Can it still detect Habs goals? You mentioned you had to train the algorithm not to detect the opponents' goal horn. Couldn't you just scrape the schedule to detect if you're playing at home or away and use a different model for each?
It's really about the comentator's yell, not the goal horn. So as far as he's excited for Habs goals and not too excited for the other team's goals, it works fine.
Pretty cool my man but how do you deal with false positives?
I don't know about hockey but in soccer (football), commentators are as much excited about near-goal scenarios like the ball hitting one of the posts or the goalie making a superb save as goals themselves.
I can't imagine employing such a system for football games. What do you think?
For false positives during a live broadcast, I have the big USB button ready to cancel the light show and goal song. I did not mention in the blog post is that it stops the goal song by playing the Fail Trombone sound (https://www.youtube.com/watch?v=iMpXAknykeg) when you use the USB button to cancel light show
Really not sure how it would work for other sports. The only reason it worked so well is probably because they GOOOAAAAAALLLLLLLL yell is long and distinctive versus everything else. It's not about intensity as much as a pattern in the frequency spectrum. I think it's worth a try with soccer and football.
This is really awesome. I've managed to do something similar, but for the Washington Capitals. When the game starts the lights change to the color of the home team, and when they score the flash. I'm using a little web scraper to pull from nhl.com to get the data, however, sometimes it's quite out of sync with the actual game (streaming or live tv). Usually about 30 seconds to a minute delay.
The best part is when I forget that they are playing and the lights start flashing randomly. Always scares guests :)
I've been using MLB.com's api and Windows' text-to-speech to build a robo-announcer for baseball games. It builds a little narrative from the ridiculous amount of data they share. Sure, I could just listen to the streaming audio, but it's been an excuse to learn some Racket.
I kid about building a robo-color-commentator that tells old stories and bad jokes.
I'd love to get your code for that if you're willing to share. I have my hue lights set up and synced with the ESPN app in IFTTT but that triggers for every game event not just goals. Would love to get it set up with something that will work a bit better.
The model is really specific to the station and commentator. I've trained it on games from a local Montreal station. I tried the other local station with the same model and the it detected no goals at all. So to make it work on any other station, we'd need to rebuild a dataset from scratch.
I know this post isn't really about the hockey part and more about the ML part, but I think it would be more practical to analyze and maybe use the Budweiser Redlight API if possible (I haven't looked into it yet or have one) to get almost instant goal reporting for your team of choice.
I have seen it in action and it's like ~2 seconds off from a live feed.
I feel like human-integrated solutions are starting to become more and more of a thing, for example, Magic, this Budweiser Redlight, Rabbit (I think that's what it's called? For IT-related tasks), and so on. I'm surprised these services didn't exist sooner.
I am impressed that it's able to work for both when the Habs are at home and on the road. The only similar thing would be the commentator's reaction. The ambient sound is reversed (cheers and horns when the Sens score). I would think you would have to train the algorithm separately for both cases, and tell it whether the current game is at home or not.
Anyway, this is very good work, the light setup is very clean. I hope that the (your?) system will get a lot of "true positives" during tonight's game :).
You might also have good luck by analyzing the chat data from hockeystreams - just look for when a few dozen people write something along the lines of "GOOOOOOOOAAAAAAAALLLLLLLLLL", and take it from there.
Granted, not as much fun as setting up the whole system you did, but another option.
This is great. I use a simple IFTTT recipe to blink my hue's at the start of the Yankees games but the ESPN api hook is always off by 10 minutes or more.
This is awesome. Well done.
Wondering if there was any real time speech to text that could be trained. Seems like these commentators all have their canned lines when the team scores. "He scores", "Goal", etc. etc. Seems like you might be able to fairly accurately capture that and add the sentence as an attribute?
Well done. My Oilers need something like this for every time we win the Draft Lottery! McDavid!!!!!!
This is a cool idea, but the light show going off erroneously in my own home for the opposing team would be disheartening to any die hard fan. Any chance of this happening, let alone once every 4 games, would be unacceptable. And the pain of knowing I rigged it up myself would make it that much worse. I applaud OP for the wherewithal it must've taken to see this project through to the end.
lol well it does go off erroneously sometimes... statistically speaking once every 4 games. BUT... I do have the big USB button ready to cancel the light show and goal song. Something I did not mention in the blog post is that it stops the goal song by playing the Fail Trombone sound (https://www.youtube.com/watch?v=iMpXAknykeg) when you use the USB button to cancel light show. Yes really disheartening, but the one time it happened it made the whole thing pretty funny actually :)
I was playing with the Belleds lights (friend's recent Kickstarter; similar to Hue but somewhat cheaper), wrote a Python API for it, which worked great, but then I hit a mental block in coming up with something actually cool to do with RGB lights.
Not a bad idea. However it would probably be hard to make the difference between goals for and against your team without analyzing a lot of what's said prior to a goal.
Mac Mini is hooked up to speakers and TV and it plays the goal song. I set the volume of the media player so that it's just right with the game broadcast so everything sounds good together.
Hope everyone enjoys the game tonight! :D