Как я могу отправить данные: аудио / OGG;code = opus; base64 для речи в текст? - PullRequest
0 голосов
/ 24 апреля 2019

Извините за мой английский, я бразилец. Я много искал, и единственное, что я нашел, это как отправить аудиофайл в Speech to Text.Я нашел идею, что я должен делать, но я не знаю в синтаксисе в nodejs, javascript.Звук похож на эти данные: audio / ogg;code = opus; base64, T2dnUwACAAAAAAAAAAC8IgAAAAAAAEyQvCMBE0 ... script.js

mediaRecorder.onstop=() =>{
      const blob = new Blob(partesAudio,{type:'audio/ogg; code=opus'})
      const reader = new window.FileReader()
      reader.readAsDataURL(blob)


      reader.onloadend= async () =>{
        //
      /*const audio = document.createElement('audio')
      audio.src = reader.result
      audio.controls = true
      $('body').append(audio)*/
      //
      console.log(reader.result)
      var resultado= await  fetch('http://localhost:3000/fala/',{
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({
              fala:reader.result //'frase8.wav'
            }),
          });...

app.js

    app.post('/fala/', async(req, res) => {
     let falado=FALA(req.body.fala).then(frase=>{return frase}).catch(()=>{
    console.log("erro")
    });
     falado.then(function(result){
        res.json(result);
      })

speechtotext.js

var SpeechToTextV1 = require('watson-developer-cloud/speech-to-text/v1');
var fs = require('fs');
var speechToText = new SpeechToTextV1({
  iam_apikey: '**********************',
  url: 'https://stream.watsonplatform.net/speech-to-text/api'
});



var fala= async function(nomeAudio){
return new Promise(async function(resolve,reject){
  var params = {
    audio: nomeAudio,//fs.createReadStream('audio.ogg')
    content_type: 'audio/ogg',
    model: 'pt-BR_BroadbandModel',

  };


speechToText.recognize(params, function (error, transcript) {
console.log('chegou');
  if (error || transcript.results.length === 0)
      resolve(error);
  else
      resolve( transcript.results[0].alternatives[0].transcript);
});

})
}

module.exports=fala;
...