V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
moment082
V2EX  ›  程序员

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

  •  
  •   moment082 · 363 天前 · 2011 次点击
    这是一个创建于 363 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    11 条回复    2023-11-20 18:09:38 +08:00
    AoEiuV020JP
        1
    AoEiuV020JP  
       363 天前
    所谓“没有声音”,实际只能是判断接收到的音量小于特定值,
    先想办法看看怎么获取实时的音量,然后调个合适的阈值,小于多少就停止,大于多少就开始,
    Belmode
        2
    Belmode  
       363 天前
    GPT 告诉我,可以通过音量阈值实现。
    paceewang1
        3
    paceewang1  
       363 天前   ❤️ 2
    这个功能叫 VAD(Voice Activity Detection),各大云应该都有 api ,前端要离线使用的话不是很清楚,OP 可以用关键字搜索一下
    asrpub
        4
    asrpub  
       363 天前 via Android   ❤️ 1
    可以试试这个开源项目 https://github.com/snakers4/silero-vad ,是用模型来判断是否人声的,根据音量阈值这种方式在噪声环境下是不可用的
    kealm
        5
    kealm  
       363 天前
    WebRTC 项目中有 VAD 模块,可以单独拿来用。
    kk333dd
        6
    kk333dd  
       362 天前
    harkjs 你看看能不能满足你需求,我之前项目有类似场景
    moment082
        7
    moment082  
    OP
       362 天前
    @AoEiuV020JP 用到那个 meidia 的解决了,没有用到其他第三方库,谢谢
    moment082
        8
    moment082  
    OP
       362 天前
    @asrpub 用到那个 media 的解决了,没有用到其他第三方库
    moment082
        9
    moment082  
    OP
       362 天前
    @AoEiuV020JP navigator.mediaDevices.getUserMedia 这个解决了,他能查看音量值
    moment082
        10
    moment082  
    OP
       362 天前
    @kk333dd navigator.mediaDevices.getUserMedia 这个解决了,他能查看音量值
    moment082
        11
    moment082  
    OP
       362 天前
    @kealm 是挺想用的,但是赶,来不及了,我也还没有学过 webrtc
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2521 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 02:27 · PVG 10:27 · LAX 18:27 · JFK 21:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.