Whenever it comes to automation, the first thing I consider is checking Tasker – which is the automation app for Android. And allright, it supports this.
A little background in case you've never heard of this app (which I doubt): Tasker uses "profiles", which consist of two parts: Conditions, and Tasks. So you define tasks to be processed whenever a certain condition matches. Your action can be found in the Tasker UserGuide and is named "Take Photo". Your condition should be a voice command. While Tasker has support for that built-in, you'd get much more flexibility using the AutoVoice addon, which also offers a "continuous" mode (aka "Always Listen") if you wish. So some example profiles (pseudo-code, just the raw idea – you will need to finetune them):
Trigger VoiceDetection
- Condition: e.g. "shake device two times left to right"
- Action: Start AutoVoice in listening mode
This profile you need to setup only once, and then use it with many defined voice commands, like taking a photo:
Taking a photo
- Condition: AutoVoice detected your "take a photo" command
- Task: "Take Photo"
What you need
- Tasker (obviously)
- the AutoVoice addon (optional, but highly recommended)
- an Android device connected to the Internet (Google's voice detection aka "speak to text" is used)

Tasker profiles view, AutoVoice in action (source: Google Play; click images for larger variants)
Further resources
I recommend you taking a look in my Collection of Tasker Resources where you can also find several tutorials which help you get started with Tasker in general, and also specifically AutoVoice.