gpt4 book ai didi

javascript - 将流从浏览器发送到 Node JS 服务器

转载 作者:行者123 更新时间:2023-12-02 14:46:07 26 4
gpt4 key购买 nike

总体思路:我创建了一个 Node JS 程序,它与多个 API 交互以重新创建家庭助理(例如 Alexia 或 Siri)。它主要与 IBM Watson 交互。我的第一个目标是设置 Dialogflow,这样我就可以有一个真正的 AI 来处理问题,但由于 Dialogflow v2 的更新,我必须使用 Google Cloud,这对我来说太麻烦了,所以我只使用了一个手工制作的脚本从可配置列表中读取可能的响应。

我的实际目标是从用户那里获取音频流并将其发送到我的主程序中。我已经设置了一个 express 服务器。当您 GET '/' 时,它会返回一个 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() 单击按钮时,它会记录用户的音频

我的配置如下: The config

我正在寻找一种启动录制,然后按下停止按钮的方法,当按下停止按钮时,它会自动将流发送到 Node 程序。最好输出是流,因为它是 IBM Watson 的输入类型(否则我将必须存储该文件,然后读取它,然后删除它)。

感谢您的关注。

有趣的事实:我的图像的 imgur ID 以“NUL”开头,在法语中意思是“NOOB”哈哈

最佳答案

大多数浏览器(但不是全部)(我指的是您,Mobile Safari)都支持使用 getUserMedia() 捕获和流式传输音频(以及您不关心的视频) code> 和 MediaRecorder API。使用这些 API,您可以通过 WebSockets、socket.io 或一系列 POST 请求将捕获的音频以小块的形式传输到您的 Nodejs 服务器。然后,nodejs 服务器可以将它们发送到您的识别服务。这里的挑战:音频被压缩并封装在 webm 中。如果您的服务接受该格式的音频,则此策略将适合您。

或者您可以尝试使用 node-oggnode-vorbis接受并解码。 (我没有这样做过。)

可能还有其他方法。也许有认识的人会回答。

关于javascript - 将流从浏览器发送到 Node JS 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60759155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com