javascript - 通过WebSocket JS发送录制的音频以将Watson语音转换为文本

标签 javascript audio websocket speech-to-text mediarecorder

我正在尝试获取麦克风输入,并通过Websocket将其发送给Watson Speech to Text,但是很难完成,有人可以帮我吗?

var wsURI = "URL here";
var ws = new WebSocket(wsURI);
ws.onopen = function(evt) { onOpen(evt) };
ws.onmessage = function(evt) { onMessage(evt) };
ws.onclose = function(evt) { onClose(evt) };
ws.onerror = function(evt) { onError(evt) };


function enableMic(){
document.getElementById("startButton").addEventListener("click", function() {

navigator.mediaDevices.getUserMedia({ audio: true })
  .then(stream => {
    const mediaRecorder = new MediaRecorder(stream);
    mediaRecorder.start();

    const audioChunks = [];
    mediaRecorder.addEventListener("dataavailable", event => {
      audioChunks.push(event.data);  
    });
document.getElementById("stopButton").addEventListener("click", function() {
mediaRecorder.stop();

});
 mediaRecorder.addEventListener("stop", () => {
   const audioBlob = new Blob(audioChunks, { type: 'audio/wav' });
      const audioUrl = URL.createObjectURL(audioBlob);
      const audio = new Audio(audioUrl);
      var reader = new FileReader();
      ws.send(reader.result);
      reader.readAsArrayBuffer(audioBlob);

      audio.play();
      console.log(audioBlob);
      console.log(reader.result);

但是我无法将audioBlob作为AudioBuffer发送,所以我想通过websocket发送它。在最后一个console.log中,结果为null

注意:Websockets的另一个功能不在这里,因为我认为这不会影响理解。

我感谢一些帮助!

谢谢!

最佳答案

我认为您是在读者读取值之前发送它的?

var reader = new FileReader();
ws.send(reader.result); // ?
reader.readAsArrayBuffer(audioBlob);

关于javascript - 通过WebSocket JS发送录制的音频以将Watson语音转换为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51562521/

相关文章:

ios - AUGraph 和流式音频(http 和 ets)

sockets - Google Chrome打包的应用-FTP机制

javascript - Mongoose 上的这种保存方法如何在不说明哪个数据库的情况下工作?

javascript - .on() .off() 或 .one() 逻辑停止重复点击列表项

javascript - 玩家状态在Beatport与iframe上实现了javascript? soundcloud支持?

java - 无法使用 STREAM_VOICE_CALL 通过 Android Java 中的 MediaPlayer 播放音频

c++ - Qt和Node JS通过WebSockets进行网络通信

javascript - NodeJS 和 Web 套接字 : Check if socket origin is the same as the web socket server

javascript - 为什么在 Google Chrome Android 中解锁 GPS 访问权限后 getCurrentPosition() 失败

javascript - 希望使用 Javascript 实现带有链接的网页自动化