refactor and add interrupt button
make getVoices async, like in https://www.w3.org/Bugs/Public/show_bug.cgi?id=22003