You want to play sounds.... by streaming it over a server?
Or you just want to 'trigger' sounds already 'loaded' to your sound board of choice via a 'web interface'..
The later is much bigger/different animal IMHO..
Also... how many leds and what kind of leds are we talking about here?..
The Arduino and Audio triggered playback (not streaming) could be done for under $5.00 using an Arduino Pro-Mini, and a DFPlayer .mp3/.wav player board..
Another $2.00-$3.00 USD and you have wifi with an ESP8266 module..
The Arduino can do 'several things at once'... (but not really).. LOL..
So you'll need to REALLY think about how you want the project 'flow/experience' to behave.
Another 'gotcha' here is your internet/web enabled 'interface'.....
If the Arduino is constantly checking some 'web page' for an update or change in 'commands'.... when does it take time to 'perform' these actions? After a web update comes through? (what happens when another web update comes through as the Falcon is beeping and blinking?)
Then you need to think about the 'protocol' you will create in order to send data to the Arduino.. and a parser to interpret this data, that actually MEANS SOMETHING to the code..
ie: you get a '1' value from some web interface.. what do you do?
- Answer: write some code that parses this incoming '1' via serial comm... and then do whatever you think a '1' should do (blink the back lights... play a specific sound clip..etc)
However... it sounds as if this will be much more in depth? (multiple blinking patterns with multiple triggers sound effects..etc) Might want to keep things small here to get something functional up and running before scaling it up.
There are MANY (many) ways to approach this.. what I listed above is just one way you might tackle it.
IMHO.. have something that CONSTANTLY polls a webpage/feed for a 'change/command' is not a very good approach.
Using an MQTT server (like a Raspberry Pi configured as such)... is more like the 'brain' that will PUSH updates out to subscribed Arduino/devices.. so they do not have to do the same thing over and over and over and over..(especially when there is no change).. its much more efficient to just keep 'doing what you do' until there is a change.
Or you can use a number of on-line (free or not) MQTT services.. Blynk I think is one.. there are several others out there too.. (so you can save yourself some time without having to set-up a Raspberry Pi and configure it)..
You dont keep calling your friends house to see if hes there.. over and over and over...etc..etc (rinse and repeat)..
You leave a message... and wait until he gets home and calls YOU!..
Your 'web interface' will also need several 'layers'.. If the web page itself is NOT being hosted (served) by the ESP module itself.. there is no real direct connection. You'll need to either update an on-line MQTT type of service.. or save itt o a database.. where the ESP will call/load this page and get the details/updates/changes from a database or something..
IMHO.. you might be best served if you try this all LOCALLY first.. without the inclusion of the 'internet'..
You can create a web page with some buttons/links.. have to hosted on the ESP module itself.. when you grab your phone and search for new wifi networks.. you would then see 'falcon-wifi' (or whatever).. you can connect to that wifi network.. and now whenever you open a browser up in your phone/device, it will ONLY serve up that web interface (page) that you just created... (this is call configuring the ESP module as a captive portal)...
With the webpage being hosted in/on the ESP module itself.. and the ESP module connected to the Arduino itself.. you have a direct connection from interface > esp module > Arduino > blinkies and beeping triggers!
So there is a lot to plan out still.. I would suggest you start mapping out your features, and details.