Я рекомендую вам следующий рабочий процесс:
Запишите аудио пользователя -> отправьте его в свое веб-приложение -> расшифровку с помощью Google-Speech-To-Text -> отправьте ответ клиенту
Для рендеринга вашей страницы я рекомендовал ExpressJs, минимальную и гибкую Node.js структуру веб-приложений, которая предоставляет надежный набор функций для веб-приложений и мобильных приложений.
После настройки веб-приложения вы можете попробовать с помощью Recorder. Js записать пользователя mi c, а затем отправить его в свое веб-приложение.
Клиент:
var filename = new Date().toISOString();
//filename to send to server without extension
//upload link
var upload = document.createElement('a');
upload.href = “/transcriptaudio”;
upload.innerHTML = "Upload";
upload.addEventListener("click", function(event) {
var xhr = new XMLHttpRequest();
xhr.onload = function(e) {
if (this.readyState === 4) {
console.log("Server returned: ", e.target.responseText);
}
};
var fd = new FormData();
fd.append("audio_data", blob, filename);
xhr.open("POST", "upload.php", true);
xhr.send(fd);
})
li.appendChild(document.createTextNode(" ")) //add a space in between
li.appendChild(upload) //add the upload link to li
Сервер:
app.post(‘/transcriptaudio’, function (req, res) {
audio = req.body.audio_data;
// create a recognize stream
const recognizeStream = client
.streamingRecognize(audio)
.on('error', console.error)
.on('data', data =>
//console.log('test');
process.stdout.write(
data.results[0] && data.results[0].alternatives[0]
? Transcription: ${data.results[0].alternatives[0].transcript}\n
: '\n\nReached transcription time limit, press Ctrl+C\n'
)
res.send(data.results[0].alternatives[0].transcript);
);
});