Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

2.6K
Views
Cómo convertir blob a archivo wav

Creé un objeto blob de tipo .wav usando la grabadora de medios. Estoy tratando de enviar los datos como. Soy nuevo en blob, así que mi pregunta podría ser estúpida.

Aquí está el código:

 function makeLink(){ let blob = new Blob(chunks, {type: media.type }) , Url = URL.createObjectURL(blob) , li = document.createElement('li') , mt = document.createElement(media.tag) , hf = document.createElement('a'); mt.controls = true; mt.src = Url; hf.href = Url; hf.download = `${counter++}${media.ext}`; hf.innerHTML = `donwload ${hf.download}`; //processing data jQuery(document).ready(function(){ let x='test' $.ajax({ type:'GET', url:'/answer/voice', data:{ audio: window.btoa(blob) }, success:function(result) { $("#chatbox").append('<p class ="userText"><audio style="background-color:white;" controls> <source src="' + Url+ '" type="audio/wav"></audio></p>'); $("#chatbox").append('<p class ="botText"><span>' + result.emotion+ '</span></p>'); $("#textInput").val("") }, error:function(result){ alert('sorry an error occured'); } })

}); }

y la parte del matraz:

 @app.route('/answer/voice', methods=['GET']) def answer_voice(): blob=request.args.get("audio") print(blob) blob =base64.b64decode(blob) print(" decoded : ") print(blob) result=get_audio_sentiments(blob) return jsonify({'emotion':result })

La función de obtención de opinión de audio es una función que acepta el tipo de archivo wav, por lo que necesito convertir ese blob en un archivo wav real. Intenté decodificarlo nuevamente enviando los datos antes de ponerlos en blob enviándolos usando formdata pero no tengo experiencia allí.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

function makeLink(){ let blob = new Blob(chunks, {type: media.type }) , Url = URL.createObjectURL(blob) , li = document.createElement('li') , mt = document.createElement(media.tag) , hf = document.createElement('a'); mt.controls = true; mt.src = Url; hf.href = Url; hf.download = `${counter++}${media.ext}`; hf.innerHTML = `donwload ${hf.download}`; let formData = new FormData(); formData.append(audio, blob, 'audio.wav'); let x='test' $.ajax({ type:'GET', url:'/answer/voice', data: formData, contentType: false, processData: false, success:function(result) { $("#chatbox").append('<p class ="userText"><audio style="background-color:white;" controls> <source src="' + Url+ '" type="audio/wav"></audio></p>'); $("#chatbox").append('<p class ="botText"><span>' + result.emotion+ '</span></p>'); $("#textInput").val("") }, error:function(result){ alert('sorry an error occured'); } }); }
 @app.route('/answer/voice', methods=['POST']) def answer_voice(): blob=request.files["audio"] print(blob) with open(blob, 'r') as f: result=get_audio_sentiments(f.read()) return jsonify({'emotion':result })
over 4 years ago · Santiago Trujillo Report

0

La respuesta de @Musa es correcta. También descubrí esta solución:

 var xhr=new XMLHttpRequest(); var fd=new FormData(); fd.append("audio_data",blob, "output.wav"); xhr.open("POST","/answer/voice",true); xhr.send(fd); //processing data // jQuery(document).ready(function(){ xhr.onreadystatechange = function() { if (xhr.readyState === 4) { resultats = this.responseText var results=JSON.parse(resultats); console.log(typeof results); $("#chatbox").append('<p class ="userText"><audio style="background-color:white;" controls> <source src="' + Url+ '" type="audio/wav"></audio></p>'); let userHtml = '<p class="userText"><span>' +results.question + '</span></p>'; $("#chatbox").append(userHtml); $("#chatbox").append('<p class ="botText"><span>' +results.answerered+ ' '+ results.emotion+ '</span></p>'); $("#textInput").val("") } }

XMLHttpRequest y resolvió mi problema

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!