V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
gps949
V2EX  ›  奇思妙想

多方音频会议中的回声消除

  •  
  •   gps949 · 2022-10-21 09:10:19 +08:00 · 3219 次点击
    这是一个创建于 524 天前的主题,其中的信息可能已经有所发展或是发生改变。
    算是一个想法,也算是个疑问,也可以算是个给腾讯会议的工单。

    [现存问题]
    开视频会议(如腾讯会议),部分参会者在一个会议室分别使用自己的笔记本入会的情况。
    如果有多人开麦,将会出现重复出现回声且声调提高(类似俩 Tom 猫对话那种)。
    有时只有人开麦,但多人开扬声器时也可能有类似效果产生。

    [疑问]
    先问是不是:腾讯会议当前是没有处理这种情形的机制吗?
    再问为什么:很好奇为什么腾讯会议没解决这个问题呢?是只腾讯没解决,还是其他的多方音频会议也会存在类似情形。

    [可能的解决思路]
    1 、对于多人开麦,可以在中转服务器或者参会方,对于接收到的各方音频进行波形比照。类似主动降噪的原理,将高度相似的两方音频进行暂时屏蔽一方(但依然保持接收、分析,只是不输出到外放),直到后续分析两方音频重合度下降到阈值以下恢复。
    2 、对于单人开麦,但多人开扬声器产生的回音。依然是采用类似主动降噪的原理,每一方对于麦克风输入减去(自己 or 他人,因为高度类似)扬声器输出(当做噪声处理)。
    第 1 条附言  ·  2022-10-21 13:03:49 +08:00
    感谢诸多大神的回复!

    不过部分回复中可能误解了我说的“回声”,它不是大家生活中理解的每句话结尾带的那种有空间感的逐渐减弱到无的回荡的声音,而是类似 tom 猫那种,声调越来越高,最后是尖啸声持续回荡并不会慢慢消除(除非参与方闭麦)。
    有人说目前做了消除,并且现在是明显但并不影响。。。这点很难认同,一旦出现这种尖啸回声,除非停下来并且闭麦,不可能还有人继续讲得下去听得下去
    26 条回复    2022-10-27 17:26:05 +08:00
    danbai
        1
    danbai  
       2022-10-21 09:21:30 +08:00
    我更推荐戴耳机
    bytesfold
        2
    bytesfold  
       2022-10-21 09:30:23 +08:00
    你都想到了,做 ZOOM 的和腾讯会议能想不到吗
    hccsoul
        3
    hccsoul  
       2022-10-21 09:40:28 +08:00
    每个人的手机电脑笔记本的配置不一样,声音效果也不一样
    foxhunt
        4
    foxhunt  
       2022-10-21 09:45:26 +08:00
    大概 15 年前,搞 IM 视频会议时,从上海找了个人
    花 5 万弄了个 C 写的插件,用来消除会议回音
    jZEdn7k4
        5
    jZEdn7k4  
       2022-10-21 09:47:19 +08:00
    zoom 也有,亲测
    7zlid
        6
    7zlid  
       2022-10-21 09:48:27 +08:00 via Android
    现在还有吗?我实测早就没有了啊
    whywaoxaks
        7
    whywaoxaks  
       2022-10-21 09:49:39 +08:00
    理论上,是个不难的信号处理问题,难度等于或低于 ee 本科生毕设水平。
    ungrown
        8
    ungrown  
       2022-10-21 10:02:39 +08:00   ❤️ 3
    @whywaoxaks #7 其实回声消除基本上这类软件都已经做了,还能听到回声那是处理后残留的。就好比主动降噪耳机只会压低噪音并不能完全消除噪音。
    至于为什么留下了这么明显的回声,却不见继续改良。有没有一种可能,这种程度的明显,相比于啥回声消除都不做的原始信号而言,已经不明显,已经足够让用户能容忍了呢。有没有可能,更进一步的消除,经济效益低、技术不成熟呢。有没有可能,所谓的痛点其实并不算很痛呢。
    superliy
        9
    superliy  
       2022-10-21 10:35:38 +08:00
    @whywaoxaks 这么简单? Chrome webrtc 也有回声消除,但也不是一点回声都没有的,只能是减少回声
    fyex
        10
    fyex  
       2022-10-21 10:44:59 +08:00
    第一种有的 而且声音很大
    yangyaofei
        11
    yangyaofei  
       2022-10-21 10:54:54 +08:00   ❤️ 3
    回声抑制可不是什么特别简单的事情.

    当年大学玩了点音乐, 稍微知道点相关的知识, 在一般的乐队进行演出的时候, 每个人是要听到自己和别人的音乐的声音的. 而这个一般是用一个小音箱(大牛逼都用无线耳返什么的可能就没有这个问题, 但是按个要求挺高的)对着演奏者们, 还有主要的大音箱方向相反对着听的观众, 这两个就必然会产生回声, 而且因为基本无延迟, 直接变成啸叫.

    在解决这个问题的时候, 一般是这么解决的, 台上的拾音器和麦克一般使用指向性的,就是只有一个方向的声音能够没拾取, 然后在调音台还要对各种东西进行调音, 纯硬件的抑制啸叫的东西也会被用很多(可以说是调音台的功能或者单独的一个模块).

    只是有了上述的硬件, 只能说是胡闹性质的演出足够了, 稍微要求高一点, 都要根据现场的声场和音箱位置, 找会调音的人进行调音, 才能在大部分情况下方式啸叫.


    ---------

    回到上面的问题, 多人会议的问题是既有无法预测的网络延迟, 也有每个人所在场地的声场回声情况不同, 设备的拾音指向性和设备的功放的不同. 这么多因素放在一起, 不可能简单的一个反向声波之类的就解决问题的, 只能是找一个妥协后的调教(比如抑制什么, 反向什么之类的)适配大部分场景


    这些什么算法看起来简单, 原理也简单, 但是真这么简单? 工程和理论可是两个学科
    hekunhotmail
        12
    hekunhotmail  
       2022-10-21 10:57:24 +08:00
    你这样处理很容易出现无声问题, 影响更大
    lllllliu
        13
    lllllliu  
       2022-10-21 11:08:42 +08:00
    三 A 算法解君愁
    lbingl
        14
    lbingl  
       2022-10-21 13:40:34 +08:00 via Android
    据我观察一般是 Mac 导致这个问题,因为麦克风拾音效果太好
    maggch97
        15
    maggch97  
       2022-10-21 14:22:47 +08:00 via Android
    因为这些软件的客户一般都有会议室,不会出现一堆人用多个笔记本外放的情况。不在会议室,为了信息安全也应该用耳机
    filannn
        16
    filannn  
       2022-10-21 14:44:05 +08:00
    这个视频会议软件都会做的,只是消除效果的问题,我之前就在一家不知名做视频会议的公司,我们都会做
    xcodeghost
        17
    xcodeghost  
       2022-10-21 14:58:55 +08:00
    我们公司买了一款高档的八爪鱼的麦克风,使用腾讯会议效果好的很,一点点回音都没有。
    lifekevin
        18
    lifekevin  
       2022-10-21 14:59:25 +08:00
    并不是技术上面实现不了,而是研发成本与功能收益的问题;
    针对这种会议场景,使用会议室麦克风反而能更简单的解决问题,并且实现技术会更简单(单个或者并联的麦克风,发声和收音都是同一个整体,只需要进行简单的收音控制就行),而且还可以卖设备赚取利润
    Xusually
        20
    Xusually  
       2022-10-21 15:39:39 +08:00 via iPhone
    AEC 可不是什么简单事情
    而且 op 要求的比普通 AEC 更难,多人开扬声器的原音延迟不等,做 AEC 更难。
    VictorCheng
        21
    VictorCheng  
       2022-10-21 19:35:15 +08:00
    关于回音放大的问题,可以所有人都只在自己说话的时候开麦,所有人都戴耳机听。

    但还有一个问题是,如果我旁边人在说话,我会同时听到耳机里 ta 的声音,和 ta 自己的声音,并且有个延迟。这个也挺烦的。。如果我能单方面静音某个人可以解决。如果能处理这个问题就太好了。
    IvanLi127
        22
    IvanLi127  
       2022-10-22 01:32:06 +08:00 via Android
    这个软件层面做改进,主要还是得看硬件和环境。真要更倚靠软件,我不要脸地胡思乱想,上 AI 提取各方所说的内容,重新模拟音色合成回纯净的声音。
    sahrechiiz
        23
    sahrechiiz  
       2022-10-24 17:27:49 +08:00
    https://krisp.ai/
    开黑试过,对方是耳机,我是音箱,仅我这边使用软件,可以去掉我这边麦对音箱收音产生的重复说话。
    不过因为限时试用,只用过一两次。更复杂的环境,比如双方都开音箱之类的,没测试过。
    discord 好像就是用的这家的技术。
    github 上看到些方案,但感觉部署复杂,没试过。
    现在用的 nvdia 的 rtx voice ,对重复说话这块感觉效果不好。
    xsen
        24
    xsen  
       2022-10-26 18:14:25 +08:00
    @shawndev #19 没有成熟的实现,只是针对不同场景适用而已。要适应各种场景的回音消除,比所有人预想中都要复杂
    所以一般简单的做法也是,
    1. 每一参与方不说话静音
    2. 每一参与方选择符合要求的麦克风(如带回音消除的)
    3. 尽量不要多方同时说话
    等等。。。。
    shawndev
        25
    shawndev  
       2022-10-26 19:23:12 +08:00
    @xsen 客观上没有完全解决,但基本每个问题都有了普遍共识的最优解。
    xsen
        26
    xsen  
       2022-10-27 17:26:05 +08:00
    @shawndev #25 不同场景的回音消算法,真没有普遍共识的最优解
    都是通过综合各种方式来解决的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2770 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:24 · PVG 08:24 · LAX 17:24 · JFK 20:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.