SpeechKit API на JS?
Смог.  Записывается голос с микрофона с помощью WebAudioRecorder, есть в github Запись преобразуем в blob blob преобразуем в base64 с помощью FileReader base64 передаем с помощью POST к php в php создаем файл из base64 с помощью file_put_contents($audioFileName, base64_decode($file)); Открываем файл созданный только что и передаем к Speechkit Возвращаем ответ
вариант 1 (взят с qaru)
Это возможно только при использовании XHR FormData API (ранее известный как часть XHR2 или XHR Level 2, в настоящее время известный как "Расширенные функции XHR" ).
Учитывая этот HTML,<input type="file" id="myFileField" name="myFile" />
вы можете загрузить его, как показано ниже:var formData = new FormData();
formData.append("myFile", document.getElementById("myFileField").files[0]);

var xhr = new XMLHttpRequest();
xhr.open("POST", "myServletUrl");
xhr.send(formData);
XHR позаботится о правильных заголовках и запросит кодирование тела, и файл в этом примере будет доступен на стороне сервера как form-data с именем myFile.
Вам нужно иметь в виду, что API FormData не поддерживается в старых браузерах. В caniuse.com вы можете увидеть, что он в настоящее время реализован в Chrome 7+, Firefox 3.5+, Safari 5+, IE 10+ и Opera 12+.вариант 2 (взят с qaru)
(более подробное описание fetch API)// Это базовый пример с комментариями. Функция upload - это то, что вы ищете:

// Select your input type file and store it in a variable
const input = document.getElementById('fileinput');

// This will upload the file after having read it
const upload = (file) => {
  fetch('http://www.example.net', { // Your POST endpoint
    method: 'POST',
    headers: {
      // Content-Type may need to be completely **omitted**
      // or you may need something
      "Content-Type": "You will perhaps need to define a content-type here"
    },
    body: file // This is your file object
  }).then(
    response => response.json() // if the response is a JSON object
  ).then(
    success => console.log(success) // Handle the success response object
  ).catch(
    error => console.log(error) // Handle the error response object
  );
};

// Event handler executed when a file is selected
const onSelectFile = () => upload(input.files[0]);

// Add a listener on your input
// It will be triggered when a file will be selected
input.addEventListener('change', onSelectFile, false);
ЗЫ: не забудьте указать правильные параметры аудиофайла