• 请不要在回答技术问题时复制粘贴 AI 生成的内容
moment082
V2EX  ›  程序员

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

  •  
  •   moment082 · Nov 20, 2023 · 3519 views
    This topic created in 1081 days ago, the information mentioned may be changed or developed.

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

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