There's one caveat which I noticed with the API on Android, which is that the voice does not work unless the lang property is also set. You can set the lang property to the value of voice.lang and it'll work, but keeping it undefined makes voice not work at all.