前端录音如何检测没有声音后三秒自动中断,有声音的话继续录音

2023-11-20 09:21:27 +08:00
 moment082

前端录音的功能,我现在实现了开始录音和结束的功能。现在的需求是录音的过程中出现了静音或者没有声音输入,三秒之后会自动结束,如果在这三秒之内有输入,则重新计算时间,但是不结束录音,这种怎么做,请教一下。

2019 次点击
所在节点    程序员
11 条回复
AoEiuV020JP
2023-11-20 09:28:05 +08:00
所谓“没有声音”,实际只能是判断接收到的音量小于特定值,
先想办法看看怎么获取实时的音量,然后调个合适的阈值,小于多少就停止,大于多少就开始,
Belmode
2023-11-20 09:28:30 +08:00
GPT 告诉我,可以通过音量阈值实现。
paceewang1
2023-11-20 09:40:28 +08:00
这个功能叫 VAD(Voice Activity Detection),各大云应该都有 api ,前端要离线使用的话不是很清楚,OP 可以用关键字搜索一下
asrpub
2023-11-20 09:44:06 +08:00
可以试试这个开源项目 https://github.com/snakers4/silero-vad ,是用模型来判断是否人声的,根据音量阈值这种方式在噪声环境下是不可用的
kealm
2023-11-20 09:59:22 +08:00
WebRTC 项目中有 VAD 模块,可以单独拿来用。
kk333dd
2023-11-20 11:37:17 +08:00
harkjs 你看看能不能满足你需求,我之前项目有类似场景
moment082
2023-11-20 18:07:56 +08:00
@AoEiuV020JP 用到那个 meidia 的解决了,没有用到其他第三方库,谢谢
moment082
2023-11-20 18:08:35 +08:00
@asrpub 用到那个 media 的解决了,没有用到其他第三方库
moment082
2023-11-20 18:09:01 +08:00
@AoEiuV020JP navigator.mediaDevices.getUserMedia 这个解决了,他能查看音量值
moment082
2023-11-20 18:09:13 +08:00
@kk333dd navigator.mediaDevices.getUserMedia 这个解决了,他能查看音量值
moment082
2023-11-20 18:09:38 +08:00
@kealm 是挺想用的,但是赶,来不及了,我也还没有学过 webrtc

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/993335

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX