SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Muaz Khan

Echo is a distortion of voice that occurs either
when you receive your own voice; or something
unusual sound!
Echo is one of the biggest issues in current WebRTC
implementations!
Echo occurs if input output audio devices are placed
close together!

In old days; usage of the “headsets” was the only
“suggested” solution to overcome the echo!
Sometimes,
44.1 kHz and non-441.1 kHz simple rate mismatches
causes echo!
The "ambient noise reduction" which can be enabled
on the built-in mic on Mac appears to cause a very
small amount of echo.
Ensure both capture and render devices are set to
either 44.1 or 48 kHz. You can do this through the
"Audio MIDI Setup" application
Disable "ambient noise reduction“ on Mac.
Make sure there is distance between input and output
audio devices.
(Old guys suggested that) always prefer headphones
over built-in speakers!
Suggest users to install third party software(s) to mimic
echo.
E.g. Toshiba Echo Cancellation Utility
etc.

Acoustic Echo Cancellation (AEC) is a preferred solution!
High volume can produce sound noise on some audio
devices. The value may not be significant if audio
device volume is controlled externally.

HTMLAudioElement.volume = 0.9;
HTMLAudioElement.play();
Acoustic Echo is what happens when sound from your
speakers enters your microphone.
You may not hear it, but the people you are talking to will find it extremely irritating
Don’t use “autoplay:true” for local streams.
Manually set “muted:false” and “volume:0”:
HTMLVideoElement.volume = 0;
HTMLVideoElement.muted = 0;
The GainNode is a simple element that lets us control
the volume of the audio that’s coming into it.
var context = new webkitAudioContext(),
var sineWave = context.createOscillator();
var gainNode = context.createGainNode();
sineWave.connect(gainNode);
gainNode.connect(context.destination);
sineWave.noteOn(0);
gainNode.gain.value = 0.9;

Try this demo locally to control volume using GainNode.
No concrete solution!
Browser vendors landed some patches; however, still
echo issues occur on Firefox, Chrome and Opera!
Patches (getUserMedia constraints API):
googEchoCancellation
googAutoGainControl
googNoiseSuppression
googHighpassFilter

googNoiseReduction
googLeakyBucket

Ref: mediaconstraintsinterface.h
Acoustic Echo Cancellation (AEC) solves echo/noise
issues by analyzing the sound being played out from
your speakers and removes it from the sound captured
by your microphone.

Current AEC implementation in chromium uses less
CPU and improves voice quality.
Echo Controller works with 8k/16k sampling rate
however there are special processes in chromium to
make Echo Controller work for iSAC codec i.e. 32k
sampling audio; and opus codec i.e. 48k.
AEC may not work for mobile platforms with complex
implementations; only AECM could work which has
performance issues.
AECM provides poor quality; causes very loud background noise.
However, unfortunately, it seems that 40% of android devices are
unable to handle AEC.
AECM is unable to handle double talk.
AEC may fail to handle distorted input due to linear
algorithms.
AECM is limited to 8k/16k sampling rate; so skip opus
usage on android devices until AEC gets improved in
chromium!
Should mobile users compromise?
Hmm, unfortunately!
It is said that echo occurs when sound from the
speakers is picked up by the audio input devices i.e.
microphones. You need to place both devices away
from each other.
 People usually suggest to mute participants' audio
while they're idle. Remember, voice-activitydetection is "already" enabled by default on chrome.
RTP packets are streamed accordingly. So, there are
less chances of echo in such scenario.
 You either need to install echo cancellation software
according to your platform and devices; or try to use
microphone/headphone.







WebRTC Eco Cancellation
WebRTC improvement optimized aecacoustic echo
cancellation
mediaconstraintsinterface.h
https://github.com/muaz-khan/WebRTCExperiment/issues/95#issuecomment-24562690
https://code.google.com/p/webrtc/issues/detail?id=
2580
Muaz Khan
www.WebRTC-Experiment.com

muazkh@gmail.com

Weitere ähnliche Inhalte

Was ist angesagt?

Process of Game Design
Process of Game DesignProcess of Game Design
Process of Game DesignVincent Clyde
 
Game Development with Unity
Game Development with UnityGame Development with Unity
Game Development with Unitydavidluzgouveia
 
Developing an effective LTV model at the soft launch and keeping it valid fur...
Developing an effective LTV model at the soft launch and keeping it valid fur...Developing an effective LTV model at the soft launch and keeping it valid fur...
Developing an effective LTV model at the soft launch and keeping it valid fur...GameCamp
 
Twitch Presentation
Twitch PresentationTwitch Presentation
Twitch PresentationKevin Ni
 
Wireshark network analysing software
Wireshark network analysing softwareWireshark network analysing software
Wireshark network analysing softwaredharmesh nakum
 
Introduction To The Beagleboard
Introduction To The BeagleboardIntroduction To The Beagleboard
Introduction To The BeagleboardNeHal VeRma
 
Level design for games
Level design for gamesLevel design for games
Level design for gamesJayyes
 
Streaming Media Protocols
Streaming Media ProtocolsStreaming Media Protocols
Streaming Media Protocolssanjoysanyal
 
Network Design on cisco packet tracer 6.0
Network Design on cisco packet tracer 6.0Network Design on cisco packet tracer 6.0
Network Design on cisco packet tracer 6.0Saurav Pandey
 

Was ist angesagt? (20)

Game design - Retention
Game design - RetentionGame design - Retention
Game design - Retention
 
Process of Game Design
Process of Game DesignProcess of Game Design
Process of Game Design
 
Unity 3D, A game engine
Unity 3D, A game engineUnity 3D, A game engine
Unity 3D, A game engine
 
Game Development with Unity
Game Development with UnityGame Development with Unity
Game Development with Unity
 
Developing an effective LTV model at the soft launch and keeping it valid fur...
Developing an effective LTV model at the soft launch and keeping it valid fur...Developing an effective LTV model at the soft launch and keeping it valid fur...
Developing an effective LTV model at the soft launch and keeping it valid fur...
 
Depression detection
Depression detectionDepression detection
Depression detection
 
Twitch Presentation
Twitch PresentationTwitch Presentation
Twitch Presentation
 
Unity
UnityUnity
Unity
 
Wireshark network analysing software
Wireshark network analysing softwareWireshark network analysing software
Wireshark network analysing software
 
Real-Time Streaming Protocol
Real-Time Streaming Protocol Real-Time Streaming Protocol
Real-Time Streaming Protocol
 
UX Principles in Serious Game
UX Principles in Serious GameUX Principles in Serious Game
UX Principles in Serious Game
 
Wireshark
Wireshark Wireshark
Wireshark
 
Introduction To The Beagleboard
Introduction To The BeagleboardIntroduction To The Beagleboard
Introduction To The Beagleboard
 
Level design for games
Level design for gamesLevel design for games
Level design for games
 
Ip addressing
Ip addressingIp addressing
Ip addressing
 
Unity - Game Engine
Unity - Game EngineUnity - Game Engine
Unity - Game Engine
 
Sample rate
Sample rateSample rate
Sample rate
 
Noise
NoiseNoise
Noise
 
Streaming Media Protocols
Streaming Media ProtocolsStreaming Media Protocols
Streaming Media Protocols
 
Network Design on cisco packet tracer 6.0
Network Design on cisco packet tracer 6.0Network Design on cisco packet tracer 6.0
Network Design on cisco packet tracer 6.0
 

Ähnlich wie Echo in WebRTC; Why?

Building your digital podcast workstation
Building your digital podcast workstationBuilding your digital podcast workstation
Building your digital podcast workstationYogi's Podcast Network
 
[COSCUP 2013] Audio Competing
[COSCUP 2013] Audio Competing[COSCUP 2013] Audio Competing
[COSCUP 2013] Audio CompetingAlive Kuo
 
Presentation rme babyface - eng
Presentation rme babyface - engPresentation rme babyface - eng
Presentation rme babyface - engLOISEAU
 
Videoconference introduction
Videoconference introductionVideoconference introduction
Videoconference introductionK.U.Leuven AVNet
 
Audio noise reduction techniques
Audio  noise  reduction  techniquesAudio  noise  reduction  techniques
Audio noise reduction techniquesMeenakshi Singhvi
 
Interactive Voice Con
Interactive Voice ConInteractive Voice Con
Interactive Voice ConDru Wynings
 
Sound recording glossary
Sound recording glossarySound recording glossary
Sound recording glossarydavidhall1415
 
Sound recording glossary
Sound recording glossarySound recording glossary
Sound recording glossarydavidhall1415
 
Sound recording glossary improved
Sound recording glossary improvedSound recording glossary improved
Sound recording glossary improveddavidhall1415
 
Sound recording glossary improved version11111111111
Sound recording glossary improved version11111111111 Sound recording glossary improved version11111111111
Sound recording glossary improved version11111111111 Kieran Owens
 
Digital vs analogue recording processes
Digital vs analogue recording processesDigital vs analogue recording processes
Digital vs analogue recording processesm_xch
 
Hands-Free NVH Analysis
Hands-Free NVH AnalysisHands-Free NVH Analysis
Hands-Free NVH Analysissiavoshani
 
How To Record Music
How To Record MusicHow To Record Music
How To Record Musicjoeywallace9
 
Producing Quality How-To Videos for Social Media Publication
Producing Quality How-To Videos for Social Media PublicationProducing Quality How-To Videos for Social Media Publication
Producing Quality How-To Videos for Social Media PublicationBonni Graham Gonzalez
 
Ig2 task 1 work sheet (glossary) steph hawkins
Ig2 task 1 work sheet (glossary) steph hawkinsIg2 task 1 work sheet (glossary) steph hawkins
Ig2 task 1 work sheet (glossary) steph hawkinsstephlizahawkins123
 
Ben ce sound recording glossary
Ben ce sound recording glossaryBen ce sound recording glossary
Ben ce sound recording glossaryBenCom1
 

Ähnlich wie Echo in WebRTC; Why? (20)

Building your digital podcast workstation
Building your digital podcast workstationBuilding your digital podcast workstation
Building your digital podcast workstation
 
[COSCUP 2013] Audio Competing
[COSCUP 2013] Audio Competing[COSCUP 2013] Audio Competing
[COSCUP 2013] Audio Competing
 
Presentation rme babyface - eng
Presentation rme babyface - engPresentation rme babyface - eng
Presentation rme babyface - eng
 
Videoconference introduction
Videoconference introductionVideoconference introduction
Videoconference introduction
 
Audio noise reduction techniques
Audio  noise  reduction  techniquesAudio  noise  reduction  techniques
Audio noise reduction techniques
 
Chap67
Chap67Chap67
Chap67
 
Interactive Voice Con
Interactive Voice ConInteractive Voice Con
Interactive Voice Con
 
Sound recording glossary
Sound recording glossarySound recording glossary
Sound recording glossary
 
Sound recording glossary
Sound recording glossarySound recording glossary
Sound recording glossary
 
Sound recording glossary improved
Sound recording glossary improvedSound recording glossary improved
Sound recording glossary improved
 
10 Great Reasons to use a Mixer
10 Great Reasons to use a Mixer10 Great Reasons to use a Mixer
10 Great Reasons to use a Mixer
 
Sound recording glossary improved version11111111111
Sound recording glossary improved version11111111111 Sound recording glossary improved version11111111111
Sound recording glossary improved version11111111111
 
Digital vs analogue recording processes
Digital vs analogue recording processesDigital vs analogue recording processes
Digital vs analogue recording processes
 
Hands-Free NVH Analysis
Hands-Free NVH AnalysisHands-Free NVH Analysis
Hands-Free NVH Analysis
 
How To Record Music
How To Record MusicHow To Record Music
How To Record Music
 
Producing Quality How-To Videos for Social Media Publication
Producing Quality How-To Videos for Social Media PublicationProducing Quality How-To Videos for Social Media Publication
Producing Quality How-To Videos for Social Media Publication
 
Ig2 task 1 work sheet (glossary) steph hawkins
Ig2 task 1 work sheet (glossary) steph hawkinsIg2 task 1 work sheet (glossary) steph hawkins
Ig2 task 1 work sheet (glossary) steph hawkins
 
The secerts to great sounding samples.txt
The secerts to great sounding samples.txtThe secerts to great sounding samples.txt
The secerts to great sounding samples.txt
 
The secerts to great sounding samples.txt
The secerts to great sounding samples.txtThe secerts to great sounding samples.txt
The secerts to great sounding samples.txt
 
Ben ce sound recording glossary
Ben ce sound recording glossaryBen ce sound recording glossary
Ben ce sound recording glossary
 

Kürzlich hochgeladen

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Kürzlich hochgeladen (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

Echo in WebRTC; Why?

  • 1. Muaz Khan Echo is a distortion of voice that occurs either when you receive your own voice; or something unusual sound! Echo is one of the biggest issues in current WebRTC implementations!
  • 2. Echo occurs if input output audio devices are placed close together! In old days; usage of the “headsets” was the only “suggested” solution to overcome the echo!
  • 3. Sometimes, 44.1 kHz and non-441.1 kHz simple rate mismatches causes echo!
  • 4. The "ambient noise reduction" which can be enabled on the built-in mic on Mac appears to cause a very small amount of echo.
  • 5. Ensure both capture and render devices are set to either 44.1 or 48 kHz. You can do this through the "Audio MIDI Setup" application
  • 6. Disable "ambient noise reduction“ on Mac.
  • 7. Make sure there is distance between input and output audio devices. (Old guys suggested that) always prefer headphones over built-in speakers!
  • 8. Suggest users to install third party software(s) to mimic echo. E.g. Toshiba Echo Cancellation Utility etc. Acoustic Echo Cancellation (AEC) is a preferred solution!
  • 9. High volume can produce sound noise on some audio devices. The value may not be significant if audio device volume is controlled externally. HTMLAudioElement.volume = 0.9; HTMLAudioElement.play(); Acoustic Echo is what happens when sound from your speakers enters your microphone. You may not hear it, but the people you are talking to will find it extremely irritating
  • 10. Don’t use “autoplay:true” for local streams. Manually set “muted:false” and “volume:0”: HTMLVideoElement.volume = 0; HTMLVideoElement.muted = 0;
  • 11. The GainNode is a simple element that lets us control the volume of the audio that’s coming into it. var context = new webkitAudioContext(), var sineWave = context.createOscillator(); var gainNode = context.createGainNode(); sineWave.connect(gainNode); gainNode.connect(context.destination); sineWave.noteOn(0); gainNode.gain.value = 0.9; Try this demo locally to control volume using GainNode.
  • 12. No concrete solution! Browser vendors landed some patches; however, still echo issues occur on Firefox, Chrome and Opera!
  • 13. Patches (getUserMedia constraints API): googEchoCancellation googAutoGainControl googNoiseSuppression googHighpassFilter googNoiseReduction googLeakyBucket Ref: mediaconstraintsinterface.h
  • 14. Acoustic Echo Cancellation (AEC) solves echo/noise issues by analyzing the sound being played out from your speakers and removes it from the sound captured by your microphone. Current AEC implementation in chromium uses less CPU and improves voice quality.
  • 15. Echo Controller works with 8k/16k sampling rate however there are special processes in chromium to make Echo Controller work for iSAC codec i.e. 32k sampling audio; and opus codec i.e. 48k. AEC may not work for mobile platforms with complex implementations; only AECM could work which has performance issues. AECM provides poor quality; causes very loud background noise. However, unfortunately, it seems that 40% of android devices are unable to handle AEC.
  • 16. AECM is unable to handle double talk. AEC may fail to handle distorted input due to linear algorithms. AECM is limited to 8k/16k sampling rate; so skip opus usage on android devices until AEC gets improved in chromium! Should mobile users compromise? Hmm, unfortunately!
  • 17. It is said that echo occurs when sound from the speakers is picked up by the audio input devices i.e. microphones. You need to place both devices away from each other.  People usually suggest to mute participants' audio while they're idle. Remember, voice-activitydetection is "already" enabled by default on chrome. RTP packets are streamed accordingly. So, there are less chances of echo in such scenario.  You either need to install echo cancellation software according to your platform and devices; or try to use microphone/headphone. 
  • 18.      WebRTC Eco Cancellation WebRTC improvement optimized aecacoustic echo cancellation mediaconstraintsinterface.h https://github.com/muaz-khan/WebRTCExperiment/issues/95#issuecomment-24562690 https://code.google.com/p/webrtc/issues/detail?id= 2580