【发布时间】:2020-06-30 16:54:58
【问题描述】:
总体思路:我创建了一个 Node JS 程序,它与多个 API 交互以重新创建一个家庭助理(如 Alexia 或 Siri)。它主要与 IBM Watson 交互。我的第一个目标是设置 Dialogflow,这样我就可以让真正的 AI 处理问题,但由于 Dialogflow v2 的更新,我必须使用 Google Cloud,这对我来说太麻烦了,所以我只得到了一个手工制作的脚本从可配置列表中读取可能的响应。
我的实际目标是从用户那里获得一个音频流,并将其发送到我的主程序中。我已经建立了一个快递服务器。当您在“/”上获取时,它会返回一个 HTML 页面。页面如下:
<!DOCTYPE html>
<html lang='fr'>
<head>
<script>
let state = false
function button() {
navigator.mediaDevices.getUserMedia({audio: true})
.then(function(mediaStream) {
// And here I got my stream. So now what do I do?
})
.catch(function(err) {
console.log(err)
});
}
</script>
<title>Audio recorder</title>
</head>
<body>
<button onclick='button()'>Lancer l'audio</button>
</body>
</html>
当用户点击带有mediaDevices.getUserMedia()的按钮时,它会录制用户的音频
我正在寻找一种启动录制的方法,然后按下停止按钮,当按下停止按钮时,它会自动将流发送到节点程序。如果输出是流则更好,因为它是 IBM Watson 的输入类型(否则我将不得不存储文件,然后读取它,然后删除它)。
感谢您的关注。
趣事:我的图片的 imgur ID 以“NUL”开头,在法语中是“NOOB”的意思,哈哈
【问题讨论】:
-
您可能会发现这个项目很有帮助,这与您想要做的非常相似:github.com/fbsamples/Canvas-Streaming-Example 而不是画布流,只需将其替换为您的音频媒体流。
标签: javascript node.js audio-streaming getusermedia