-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dominant Speaker Event #603
Conversation
Implementation of Dominant Speaker Identification for Multipoint Videoconferencing by Ilana Volfin and Israel Cohen. This implementation uses the RTP Audio Level extension from RFC-6464 for the input signal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Amazing, thanks. First review round done.
It would be great to include corresponding changes on Rust side as well 🙏 |
Co-authored-by: Iñaki Baz Castillo <ibc@aliax.net>
Co-authored-by: Iñaki Baz Castillo <ibc@aliax.net>
07d6a07
to
b6c90ce
Compare
I took a look at the Rust implementation. I am slightly confused. In the implementation for audio_level_observer.rs it appears the RtpObserver is also implemented in that file. In any case I thought perhaps I could "hack" it if the code was not much. Basically by following the core audio_level_observer.rs implementation. Well I thought wrong. I have only ever played with Rust, so I don't think I can help here. |
It is not implementation of |
305efbc
to
ceb78dc
Compare
Merge remote-tracking branch 'ggb/steve-v3-dominant-speaker' into v3-dominant-speaker
@nazar-pc Please take a look at the rust implementation. Thanks! |
Co-authored-by: José Luis Millán <jmillan@aliax.net>
Rust version looks good, thank you! |
CI is failing due to this:
It must be |
3957d48
to
3823558
Compare
Co-authored-by: Iñaki Baz Castillo <ibc@aliax.net>
Co-authored-by: Iñaki Baz Castillo <ibc@aliax.net>
Thanks, looking great. Waiting for CI to complete. BTW could you please contribute to the |
Thanks a lot for this, guys. I'll wait for the documentation PR before merging. Just let me know if you have any problem or question writing it. There is "gulp live" task in mediasoup-website project to run the web locally. |
Released in mediasoup v3.8.0 :) Thanks a lot! |
Thank you for the great review process! |
@SteveMcFarlin nice contribution 😄 |
Hi, |
Somehow the website is not up to date in the web server, but yes, he wrote docs. I'll check and republish later today. |
Hello guys, Mediasoup code: Related part of the article (Dominant Speaker Identification for Multipoint Videoconferencing by Ilana Volfin and Israel Cohen) In the article and Jitsi code, the dominant speaker is included in the dividing part. I don't know the other parts of the code well, I wonder if a change is needed here? Link for the open discussion : https://mediasoup.discourse.group/t/question-regarding-active-speaker-observer-implementation/3227 |
Hi @SteveMcFarlin, Could you please advise me what is the reason I'm not getting any events from ActiveSpeakerObserver instance? I've initialized the top-level code like const observer = await router.createActiveSpeakerObserver({interval: 500})
observer.on('dominantspeaker', (payload) => {
console.log('event payload', payload)
}) For debugging I've added logs after lines 19 and 20 in https://github.com/versatica/mediasoup/blob/v3/node/lib/ActiveSpeakerObserver.js and I see that handleWorkerNotifications is called, but this.channel.on never fires its callback. Both audio and video is sent and received correctly between the participating peers, so audio data definitely flows the way it should. UPD: discussion moved to https://mediasoup.discourse.group/t/activespeakerobserver-does-not-emit-events/3621 |
Please let use the forum for questions. |
Implementation of Dominant Speaker Identification for Multipoint Videoconferencing by Ilana Volfin and Israel Cohen. This implementation uses the RTP Audio Level extension from RFC-6464 for the input signal. This has been ported from DominantSpeakerIdentification.java in Jitsi