前端录音的功能,我现在实现了开始录音和结束的功能。现在的需求是录音的过程中出现了静音或者没有声音输入,三秒之后会自动结束,如果在这三秒之内有输入,则重新计算时间,但是不结束录音,这种怎么做,请教一下。
1
AoEiuV020JP 2023-11-20 09:28:05 +08:00
所谓“没有声音”,实际只能是判断接收到的音量小于特定值,
先想办法看看怎么获取实时的音量,然后调个合适的阈值,小于多少就停止,大于多少就开始, |
2
Belmode 2023-11-20 09:28:30 +08:00
GPT 告诉我,可以通过音量阈值实现。
|
3
paceewang1 2023-11-20 09:40:28 +08:00 2
这个功能叫 VAD(Voice Activity Detection),各大云应该都有 api ,前端要离线使用的话不是很清楚,OP 可以用关键字搜索一下
|
4
asrpub 2023-11-20 09:44:06 +08:00 via Android 1
可以试试这个开源项目 https://github.com/snakers4/silero-vad ,是用模型来判断是否人声的,根据音量阈值这种方式在噪声环境下是不可用的
|
5
kealm 2023-11-20 09:59:22 +08:00
WebRTC 项目中有 VAD 模块,可以单独拿来用。
|
6
kk333dd 2023-11-20 11:37:17 +08:00
harkjs 你看看能不能满足你需求,我之前项目有类似场景
|
7
moment082 OP @AoEiuV020JP 用到那个 meidia 的解决了,没有用到其他第三方库,谢谢
|
9
moment082 OP @AoEiuV020JP navigator.mediaDevices.getUserMedia 这个解决了,他能查看音量值
|