From 62eeefc72b711becef097207c6215997e14304fb Mon Sep 17 00:00:00 2001 From: Federico Terraneo Date: Tue, 26 May 2020 19:22:03 +0200 Subject: [PATCH 1/2] src/mumble/AudioInput: Fix echo cancellation, added options to dump input audio data and echo canceller queue state --- src/mumble/AudioInput.cpp | 219 +++++++++++++++++++++++++------------- src/mumble/AudioInput.h | 115 +++++++++++++++++--- src/mumble/Global.cpp | 2 + src/mumble/Global.h | 2 + src/mumble/main.cpp | 13 +++ src/mumble/mumble_en.ts | 9 ++ 6 files changed, 273 insertions(+), 87 deletions(-) diff --git a/src/mumble/AudioInput.cpp b/src/mumble/AudioInput.cpp index 203b821b2e9..0e8a347adaa 100644 --- a/src/mumble/AudioInput.cpp +++ b/src/mumble/AudioInput.cpp @@ -27,6 +27,96 @@ extern "C" { } #endif +void Resynchronizer::addMic(short *mic) +{ + bool drop = false; + { + std::unique_lock l(m); + micQueue.push_back(mic); + switch (state) { + case S0: state = S1a; break; + case S1a: state = S2; break; + case S1b: state = S2; break; + case S2: state = S3; break; + case S3: state = S4a; break; + case S4a: state = S5; break; + case S4b: drop = true; break; + case S5: drop = true; break; + } + if (drop) { + delete[] micQueue.front(); + micQueue.pop_front(); + } + } + if (bDebugPrintQueue) { + if (drop) qWarning("Resynchronizer::addMic(): dropped microphone chunk due to overflow"); + printQueue('+'); + } +} + +AudioChunk Resynchronizer::addSpeaker(short *speaker) +{ + AudioChunk result; + bool drop = false; + { + std::unique_lock l(m); + switch (state) { + case S0: drop = true; break; + case S1a: drop = true; break; + case S1b: state = S0; break; + case S2: state = S1b; break; + case S3: state = S2; break; + case S4a: state = S3; break; + case S4b: state = S3; break; + case S5: state = S4b; break; + } + if (drop == false) { + result = AudioChunk(micQueue.front(), speaker); + micQueue.pop_front(); + } + } + if (drop) delete[] speaker; + if (bDebugPrintQueue) { + if (drop) qWarning("Resynchronizer::addSpeaker(): dropped speaker chunk due to underflow"); + printQueue('-'); + } + return result; +} + +void Resynchronizer::reset() +{ + if (bDebugPrintQueue) qWarning("Resetting echo queue"); + std::unique_lock l(m); + state = S0; + while (!micQueue.empty()) { + delete[] micQueue.front(); + micQueue.pop_front(); + } +} + +Resynchronizer::~Resynchronizer() +{ + reset(); +} + +void Resynchronizer::printQueue(char who) +{ + unsigned int mic; + { + std::unique_lock l(m); + mic = static_cast(micQueue.size()); + } + std::string line; + line.reserve(32); + line += who; + line += " Echo queue ["; + for(unsigned int i = 0; i < 5; i++) line += i < mic ? '#' : ' '; + line += "]\r"; + // This relies on \r to retrace always on the same line, can't use qWarining + printf("%s",line.c_str()); + fflush(stdout); +} + // Remember that we cannot use static member classes that are not pointers, as the constructor // for AudioInputRegistrar() might be called before they are initialized, as the constructor // is called from global initialization. @@ -76,6 +166,15 @@ bool AudioInputRegistrar::canExclusive() const { } AudioInput::AudioInput() : opusBuffer(g.s.iFramesPerPacket * (SAMPLE_RATE / 100)) { + + bDebugDumpInput = g.bDebugDumpInput; + resync.bDebugPrintQueue = g.bDebugPrintQueue; + if (bDebugDumpInput) { + outMic.open("raw_microphone_dump", std::ios::binary); + outSpeaker.open("speaker_dump", std::ios::binary); + outProcessed.open("processed_microphone_dump", std::ios::binary); + } + adjustBandwidth(g.iMaxBandwidth, iAudioQuality, iAudioFrames, bAllowLowDelay); g.iAudioBandwidth = getNetworkBandwidth(iAudioQuality, iAudioFrames); @@ -88,9 +187,6 @@ AudioInput::AudioInput() : opusBuffer(g.s.iFramesPerPacket * (SAMPLE_RATE / 100) cCodec = NULL; ceEncoder = NULL; - iSampleRate = SAMPLE_RATE; - iFrameSize = SAMPLE_RATE / 100; - #ifdef USE_OPUS oCodec = g.oCodec; if (oCodec) { @@ -128,13 +224,6 @@ AudioInput::AudioInput() : opusBuffer(g.s.iFramesPerPacket * (SAMPLE_RATE / 100) sppPreprocess = NULL; sesEcho = NULL; srsMic = srsEcho = NULL; - iJitterSeq = 0; - iMinBuffered = 1000; - - psMic = new short[iFrameSize]; - psClean = new short[iFrameSize]; - - psSpeaker = NULL; iEchoChannels = iMicChannels = 0; iEchoFilled = iMicFilled = 0; @@ -145,7 +234,7 @@ AudioInput::AudioInput() : opusBuffer(g.s.iFramesPerPacket * (SAMPLE_RATE / 100) bResetEncoder = true; - pfMicInput = pfEchoInput = pfOutput = NULL; + pfMicInput = pfEchoInput = NULL; iBitrate = 0; dPeakSignal = dPeakSpeaker = dPeakMic = dPeakCleanMic = 0.0; @@ -180,9 +269,6 @@ AudioInput::~AudioInput() { cCodec->celt_encoder_destroy(ceEncoder); } - foreach(short *buf, qlEchoFrames) - delete [] buf; - if (sppPreprocess) speex_preprocess_state_destroy(sppPreprocess); if (sesEcho) @@ -193,13 +279,8 @@ AudioInput::~AudioInput() { if (srsEcho) speex_resampler_destroy(srsEcho); - delete [] psMic; - delete [] psClean; - delete [] psSpeaker; - delete [] pfMicInput; delete [] pfEchoInput; - delete [] pfOutput; } bool AudioInput::isTransmitting() const { @@ -385,7 +466,6 @@ void AudioInput::initializeMixer() { speex_resampler_destroy(srsEcho); delete [] pfMicInput; delete [] pfEchoInput; - delete [] pfOutput; if (iMicFreq != iSampleRate) srsMic = speex_resampler_init(1, iMicFreq, iSampleRate, 3, &err); @@ -393,7 +473,6 @@ void AudioInput::initializeMixer() { iMicLength = (iFrameSize * iMicFreq) / iSampleRate; pfMicInput = new float[iMicLength]; - pfOutput = new float[iFrameSize * qMax(1U,iEchoChannels)]; if (iEchoChannels > 0) { bEchoMulti = g.s.bEchoMulti; @@ -451,6 +530,7 @@ void AudioInput::addMic(const void *data, unsigned int nsamp) { iMicFilled = 0; // If needed resample frame + float *pfOutput = srsMic ? (float*)alloca(iFrameSize*sizeof(float)) : nullptr; float *ptr = srsMic ? pfOutput : pfMicInput; if (srsMic) { @@ -459,43 +539,21 @@ void AudioInput::addMic(const void *data, unsigned int nsamp) { speex_resampler_process_float(srsMic, 0, pfMicInput, &inlen, pfOutput, &outlen); } + // If echo cancellation is enabled the pointer ends up in the resynchronizer queue + // and may need to outlive this function's frame + short *psMic = iEchoChannels > 0 ? new short[iFrameSize] : (short*)alloca(iFrameSize*sizeof(short)); + // Convert float to 16bit PCM const float mul = 32768.f; for (int j = 0; j < iFrameSize; ++j) psMic[j] = static_cast(qBound(-32768.f, (ptr[j] * mul), 32767.f)); - // If we have echo chancellation enabled... + // If we have echo cancellation enabled... if (iEchoChannels > 0) { - short *echo = NULL; - - { - QMutexLocker l(&qmEcho); - - if (qlEchoFrames.isEmpty()) { - iJitterSeq = 0; - iMinBuffered = 1000; - } else { - // Compensate for drift between the microphone and the echo source - iMinBuffered = qMin(iMinBuffered, qlEchoFrames.count()); - - if ((iJitterSeq > 100) && (iMinBuffered > 1)) { - iJitterSeq = 0; - iMinBuffered = 1000; - delete [] qlEchoFrames.takeFirst(); - } - echo = qlEchoFrames.takeFirst(); - } - } - - if (echo) { - // We have echo data for the current frame, remember that - delete [] psSpeaker; - psSpeaker = echo; - } + resync.addMic(psMic); + } else { + encodeAudioFrame(AudioChunk(psMic)); } - - // Encode and send frame - encodeAudioFrame(); } } } @@ -510,12 +568,12 @@ void AudioInput::addEcho(const void *data, unsigned int nsamp) { if (eEchoFormat == SampleFloat) { for (unsigned int i=0;i(data)[i]; + pfEchoInput[i + iEchoFilled * iEchoChannels] = reinterpret_cast(data)[i]; } else { // 16bit PCM -> float for (unsigned int i=0;i(reinterpret_cast(data)[i]) * (1.0f / 32768.f); + pfEchoInput[i + iEchoFilled * iEchoChannels] = static_cast(reinterpret_cast(data)[i]) * (1.0f / 32768.f); } } else { // Mix echo channels (converts 16bit PCM -> float if needed) @@ -539,6 +597,7 @@ void AudioInput::addEcho(const void *data, unsigned int nsamp) { iEchoFilled = 0; // Resample if necessary + float *pfOutput = srsEcho ? (float*)alloca(iEchoFrameSize*sizeof(float)) : nullptr; float *ptr = srsEcho ? pfOutput : pfEchoInput; if (srsEcho) { @@ -551,14 +610,16 @@ void AudioInput::addEcho(const void *data, unsigned int nsamp) { // float -> 16bit PCM const float mul = 32768.f; - for (unsigned int j=0;j(ptr[j] * mul); - - // Push frame into the echo chancellers jitter buffer - QMutexLocker l(&qmEcho); + for (int j = 0; j < iEchoFrameSize; ++j) { + outbuff[j] = static_cast(qBound(-32768.f, (ptr[j] * mul), 32767.f)); + } - iJitterSeq = qMin(iJitterSeq + 1,10000U); - qlEchoFrames.append(outbuff); + auto chunk = resync.addSpeaker(outbuff); + if (!chunk.empty()) { + encodeAudioFrame(chunk); + delete[] chunk.mic; + delete[] chunk.speaker; + } } } } @@ -638,6 +699,7 @@ void AudioInput::resetAudioProcessor() { speex_preprocess_state_destroy(sppPreprocess); if (sesEcho) speex_echo_state_destroy(sesEcho); + resync.reset(); sppPreprocess = speex_preprocess_state_init(iFrameSize, iSampleRate); @@ -661,7 +723,8 @@ void AudioInput::resetAudioProcessor() { speex_preprocess_ctl(sppPreprocess, SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, &iArg); if (iEchoChannels > 0) { - sesEcho = speex_echo_state_init_mc(iFrameSize, iFrameSize * 10, 1, bEchoMulti ? iEchoChannels : 1); + int filterSize = iFrameSize * (10 + resync.getNominalLag()); + sesEcho = speex_echo_state_init_mc(iFrameSize, filterSize, 1, bEchoMulti ? iEchoChannels : 1); iArg = iSampleRate; speex_echo_ctl(sesEcho, SPEEX_ECHO_SET_SAMPLING_RATE, &iArg); speex_preprocess_ctl(sppPreprocess, SPEEX_PREPROCESS_SET_ECHO_STATE, sesEcho); @@ -793,7 +856,7 @@ int AudioInput::encodeCELTFrame(short *psSource, EncodingOutputBuffer& buffer) { return len; } -void AudioInput::encodeAudioFrame() { +void AudioInput::encodeAudioFrame(AudioChunk chunk) { int iArg; int i; float sum; @@ -816,16 +879,17 @@ void AudioInput::encodeAudioFrame() { sum=1.0f; max = 1; for (i=0;i(psMic[i] * psMic[i]); - max = std::max(static_cast(abs(psMic[i])), max); + sum += static_cast(chunk.mic[i] * chunk.mic[i]); + max = std::max(static_cast(abs(chunk.mic[i])), max); } dPeakMic = qMax(20.0f*log10f(sqrtf(sum / static_cast(iFrameSize)) / 32768.0f), -96.0f); dMaxMic = max; - if (psSpeaker && (iEchoChannels > 0)) { + if (chunk.speaker && (iEchoChannels > 0)) { sum=1.0f; - for (i=0;i(psSpeaker[i] * psSpeaker[i]); + for (i = 0; i < iEchoFrameSize; ++i) { + sum += static_cast(chunk.speaker[i] * chunk.speaker[i]); + } dPeakSpeaker = qMax(20.0f*log10f(sqrtf(sum / static_cast(iFrameSize)) / 32768.0f), -96.0f); } else { dPeakSpeaker = 0.0; @@ -839,13 +903,13 @@ void AudioInput::encodeAudioFrame() { if (g.s.bDenoise && denoiseState && (iFrameSize == 480)) { float denoiseFrames[480]; for (int i = 0; i < 480; i++) { - denoiseFrames[i] = psMic[i]; + denoiseFrames[i] = chunk.mic[i]; } rnnoise_process_frame(denoiseState, denoiseFrames, denoiseFrames); for (int i = 0; i < 480; i++) { - psMic[i] = denoiseFrames[i]; + chunk.mic[i] = denoiseFrames[i]; } } #endif @@ -855,13 +919,14 @@ void AudioInput::encodeAudioFrame() { iArg = g.s.iNoiseSuppress - iArg; speex_preprocess_ctl(sppPreprocess, SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, &iArg); - if (sesEcho && psSpeaker) { - speex_echo_cancellation(sesEcho, psMic, psSpeaker, psClean); + short psClean[iFrameSize]; + if (sesEcho && chunk.speaker) { + speex_echo_cancellation(sesEcho, chunk.mic, chunk.speaker, psClean); speex_preprocess_run(sppPreprocess, psClean); psSource = psClean; } else { - speex_preprocess_run(sppPreprocess, psMic); - psSource = psMic; + speex_preprocess_run(sppPreprocess, chunk.mic); + psSource = chunk.mic; } sum=1.0f; @@ -869,6 +934,14 @@ void AudioInput::encodeAudioFrame() { sum += static_cast(psSource[i] * psSource[i]); float micLevel = sqrtf(sum / static_cast(iFrameSize)); dPeakSignal = qMax(20.0f*log10f(micLevel / 32768.0f), -96.0f); + + if (bDebugDumpInput) { + outMic.write(reinterpret_cast(chunk.mic), iFrameSize * sizeof(short)); + if (chunk.speaker) { + outSpeaker.write(reinterpret_cast(chunk.speaker), iEchoFrameSize * sizeof(short)); + } + outProcessed.write(reinterpret_cast(psSource), iFrameSize * sizeof(short)); + } spx_int32_t prob = 0; speex_preprocess_ctl(sppPreprocess, SPEEX_PREPROCESS_GET_PROB, &prob); diff --git a/src/mumble/AudioInput.h b/src/mumble/AudioInput.h index b9704ecc527..5dde1bdf60a 100644 --- a/src/mumble/AudioInput.h +++ b/src/mumble/AudioInput.h @@ -15,6 +15,9 @@ #include #include #include +#include +#include +#include #include "Audio.h" #include "Settings.h" @@ -29,6 +32,95 @@ struct OpusEncoder; struct DenoiseState; typedef boost::shared_ptr AudioInputPtr; +/** + * A chunk of audio data to process + * This struct wraps pointers to two dynamically allocated arrays, containing + * PCM samples of microphone and speaker readback data (for echo cancellation). + * Does not handle pointer ownership, so you'll have to deallocate them yourself. + */ +struct AudioChunk +{ + AudioChunk() : mic(nullptr), speaker(nullptr) {} + explicit AudioChunk(short *mic) : mic(mic), speaker(nullptr) {} + AudioChunk(short *mic, short *speaker) : mic(mic), speaker(speaker) {} + bool empty() const { return mic == nullptr; } + + short *mic; ///< Pointer to microphone samples + short *speaker; ///< Pointer to speaker samples, nullptr if echo cancellation is disabled +}; + +/* + * According to https://www.speex.org/docs/manual/speex-manual/node7.html + * "It is important that, at any time, any echo that is present in the input + * has already been sent to the echo canceller as echo_frame." + * Thus, we artificially introduce a small lag in the microphone by means of + * a queue, so as to be sure the speaker data always precedes the microphone. + * + * There are conflicting requirements for the queue: + * - it has to be small enough not to cause a noticeable lag in the voice + * - it has to be large enough not to force us to drop packets frequently + * when the addMic() and addEcho() callbacks are called in a jittery way + * - its fill level must be controlled so it does not operate towards zero + * elements size, as this would not provide the lag required for the + * echo canceller to work properly. + * + * The current implementation uses a 5 elements queue, with a control + * statemachine that introduces packet drops to control the fill level + * to at least 2 (plus or minus one) and less than 4 elements. + * With a 10ms chunk, this queue should introduce a ~20ms lag to the voice. + */ +class Resynchronizer +{ +public: + /** + * Add a microphone sample to the resynchronizer queue + * The resynchronizer may decide to drop the sample, and in that case + * the pointer will be deallocated not lo leak memory + * + * \param mic pointer to a dynamically allocated array with PCM data + */ + void addMic(short *mic); + + /** + * Add a speaker sample to the resynchronizer + * The resynchronizer may decide to drop the sample, and in that case + * the pointer will be deallocated not lo leak memory + * + * \param mic pointer to a dynamically allocated array with PCM data + * \return If microphone data is available, the resynchronizer will return a + * valid audio chunk to encode, otherwise an empty chunk will be returned + */ + AudioChunk addSpeaker(short *speaker); + + /** + * Reinitialize the resynchronizer, emptying the queue in the process. + */ + void reset(); + + /** + * \return the nominal lag that the resynchronizer tries to enforce on the + * microphone data, in order to make sure the speaker data is always passed + * first to the echo canceller + */ + int getNominalLag() const { return 2; } + + ~Resynchronizer(); + + bool bDebugPrintQueue = false; ///< Enables printing queue fill level stats + +private: + /** + * Print queue level stats for debugging purposes + * \param mic used to distinguish between addMic() and addSpeaker() + */ + void printQueue(char who); + + //TODO: there was a mutex (qmEcho), but can the callbacks be called concurrently? + mutable std::mutex m; + std::list micQueue; ///< Queue of microphone samples + enum { S0, S1a, S1b, S2, S3, S4a, S4b, S5 } state = S0; ///< Queue fill control statemachine +}; + class AudioInputRegistrar { private: Q_DISABLE_COPY(AudioInputRegistrar) @@ -62,13 +154,12 @@ class AudioInput : public QThread { typedef enum { SampleShort, SampleFloat } SampleFormat; typedef void (*inMixerFunc)(float * RESTRICT, const void * RESTRICT, unsigned int, unsigned int, quint64); private: + + bool bDebugDumpInput; ///< When true, dump pcm data to debug the echo canceller + std::ofstream outMic, outSpeaker, outProcessed; ///< Files to dump raw pcm data + SpeexResamplerState *srsMic, *srsEcho; - QMutex qmEcho; - QList qlEchoFrames; - unsigned int iJitterSeq; - int iMinBuffered; - unsigned int iMicFilled, iEchoFilled; inMixerFunc imfMic, imfEcho; inMixerFunc chooseMixer(const unsigned int nchan, SampleFormat sf, quint64 mask); @@ -87,16 +178,16 @@ class AudioInput : public QThread { MessageHandler::UDPMessageType umtType; SampleFormat eMicFormat, eEchoFormat; - unsigned int iSampleRate; unsigned int iMicChannels, iEchoChannels; unsigned int iMicFreq, iEchoFreq; unsigned int iMicLength, iEchoLength; unsigned int iMicSampleSize, iEchoSampleSize; - unsigned int iEchoMCLength, iEchoFrameSize; + int iEchoMCLength, iEchoFrameSize; quint64 uiMicChannelMask, uiEchoChannelMask; bool bEchoMulti; - int iFrameSize; + static const unsigned int iSampleRate = SAMPLE_RATE; + static const int iFrameSize = SAMPLE_RATE / 100; QMutex qmSpeex; SpeexPreprocessState *sppPreprocess; @@ -116,17 +207,13 @@ class AudioInput : public QThread { /// Number of 10ms audio "frames" per packet (!= frames in packet) int iAudioFrames; - short *psMic; - short *psSpeaker; - short *psClean; - float *pfMicInput; float *pfEchoInput; - float *pfOutput; + Resynchronizer resync; std::vector opusBuffer; - void encodeAudioFrame(); + void encodeAudioFrame(AudioChunk chunk); void addMic(const void *data, unsigned int nsamp); void addEcho(const void *data, unsigned int nsamp); diff --git a/src/mumble/Global.cpp b/src/mumble/Global.cpp index 21504d8278b..b3c0d57162f 100644 --- a/src/mumble/Global.cpp +++ b/src/mumble/Global.cpp @@ -116,6 +116,8 @@ Global::Global() { bHappyEaster = false; bQuit = false; + bDebugDumpInput = false; + bDebugPrintQueue = false; QStringList qsl; qsl << QCoreApplication::instance()->applicationDirPath(); diff --git a/src/mumble/Global.h b/src/mumble/Global.h index e7ab0a70cd0..5c4dd292d25 100644 --- a/src/mumble/Global.h +++ b/src/mumble/Global.h @@ -102,6 +102,8 @@ struct Global Q_DECL_FINAL { unsigned int uiMaxUsers; bool bQuit; QString windowTitlePostfix; + bool bDebugDumpInput; + bool bDebugPrintQueue; bool bHappyEaster; static const char ccHappyEaster[]; diff --git a/src/mumble/main.cpp b/src/mumble/main.cpp index 87d706e5f80..66dab0d6956 100644 --- a/src/mumble/main.cpp +++ b/src/mumble/main.cpp @@ -174,6 +174,15 @@ int main(int argc, char **argv) { " Show licenses for third-party software used by Mumble.\n" " --window-title-ext \n" " Sets a custom window title extension.\n" + " --dump-input-streams\n" + " Dump PCM streams at various parts of the input chain\n" + " (useful for debugging purposes)\n" + " - raw microphone input\n" + " - speaker readback for echo cancelling\n" + " - processed microphone input\n" + " --print-echocancel-queue\n" + " Print on stdout the echo cancellation queue state\n" + " (useful for debugging purposes)\n" "\n" ); QString rpcHelpBanner = MainWindow::tr( @@ -258,6 +267,10 @@ int main(int argc, char **argv) { #endif return 1; } + } else if (args.at(i) == QLatin1String("--dump-input-streams")) { + g.bDebugDumpInput = true; + } else if (args.at(i) == QLatin1String("--print-echocancel-queue")) { + g.bDebugPrintQueue = true; } else { if (!bRpcMode) { QUrl u = QUrl::fromEncoded(args.at(i).toUtf8()); diff --git a/src/mumble/mumble_en.ts b/src/mumble/mumble_en.ts index 8a9d081d35f..96c5e89c678 100644 --- a/src/mumble/mumble_en.ts +++ b/src/mumble/mumble_en.ts @@ -5661,6 +5661,15 @@ Valid options are: Show licenses for third-party software used by Mumble. --window-title-ext <arg> Sets a custom window title extension. + --dump-input-streams + Dump PCM streams at various parts of the input chain + (useful for debugging purposes) + - raw microphone input + - speaker readback for echo cancelling + - processed microphone input + --print-echocancel-queue + Print on stdout the echo cancellation queue state + (useful for debugging purposes) From 664437c34dd84cd216c935c2b885cb8ebfb39293 Mon Sep 17 00:00:00 2001 From: Federico Terraneo Date: Tue, 26 May 2020 19:24:13 +0200 Subject: [PATCH 2/2] src/mumble/AudioInput: Documentation --- docs/AudioInputDebug.md | 110 ++++++++++++++++++++++++++++++ docs/AudioInputDebugFiles/bug.png | Bin 0 -> 58650 bytes docs/AudioInputDebugFiles/fix.png | Bin 0 -> 53081 bytes docs/AudioInputDebugFiles/fsm.png | Bin 0 -> 25020 bytes 4 files changed, 110 insertions(+) create mode 100644 docs/AudioInputDebug.md create mode 100644 docs/AudioInputDebugFiles/bug.png create mode 100644 docs/AudioInputDebugFiles/fix.png create mode 100644 docs/AudioInputDebugFiles/fsm.png diff --git a/docs/AudioInputDebug.md b/docs/AudioInputDebug.md new file mode 100644 index 00000000000..d94d6635791 --- /dev/null +++ b/docs/AudioInputDebug.md @@ -0,0 +1,110 @@ +# Debugging AudioInput + +Mumble does quite a bit of signal processing on the raw microphone input, so if something breaks it may not be immediately apparent _where_ it breaks. + +For this reason, the `--dump-input-streams` option was added, to help tap into various parts of the DSP chain, and find where the issue is. Consider it a bit like the digital equivalent of probing with an oscilloscope the signal path of an analog audio gear. + +As the option was introduced to debug the echo canceller, the default tap points are at the input and output of that algorithm, but if you are going to debug some C++ code, you should not have problems moving a `write()` to an `ofstream` here and there should you need to, right? + +## How to use `--dump-input-streams` + +You'll need to run Mumble from the command line, and the directory from where you run it will be where the dumped files will be written. + +``` +$ ./mumble --dump-input-streams +``` + +Then log into a server as usual, and start using Mumble. It's usually good enough to just run it for 10/20 seconds and then quit. Unless your bug happens only after some time or occurs at random, there's no need to accumulate gigabytes of dumped audio. It's also best to make reproducible tests, like playing the same video or speaking the same phrase, so as to compare results. + +After closing Mumble, there should be 3 new files in the directory you launched it from: + +* `raw_microphone_dump` +* `speaker_dump` +* `processed_microphone_dump` + +Please note that if you run Mumble again, those files will be overwritten. Also, those files are overwritten whenever the `AudioInput` class is reinstantiated, such as when going though the audio wizard. If you find it difficult to get the data you want, such as because closing the audio wizard clears your files, terminate Mumble with Ctrl-C at any moment and the files won't be erased. + +### Opening the files + +These files contain the raw PCM streams that have been sampled. No header, no file format; nothing. Just data. +This makes the dumping code as simple as possible, and you also don't have to change the header every time you tap a point with a different sample rate or encoding, as there's no header. + +To open the raw files, you can use Audacity. Select `File > Import > Raw Data`. + +Since there's no metadata, Audacity will ask you what's in those files: + +* Encoding is `Signed 16 bit PCM` in the default tap point (i.e. you haven't modified `write()`). Mumble's signal path is partly 16 bit and partly float, so remember to select `32 bit float` if you move the tap points to some float part of the Mumble audio path. +* Byte order is `Little-endian` if you're on an x86 CPU, which you most likely are. +* Channels is always `1` for the microphone signal path, but may be more for the speaker readback if you use multichannel echo cancellation. +* Sample rate is `48000` for the default tap point, as Mumble's audio chain resamples everything to 48KHz regardless of what your audio card is configured to. Change accordingly when tapping before the resampler. + +In Audacity you can open multiple tracks and mute them individually, so it's usually a good idea to open all three tracks to compare. + +## Debugging the echo canceller + +The audio dumps have an additional property that is fundamental for debugging the echo canceller: the're synchronous. If you open them all in Audacity, you'll be able not only to see what gets passed to the echo canceller, but the relative time between the signals. + +This is fundamental for an echo canceller, which can break simply because the microphone data arrives before the speaker one (how can the echo canceller predict an echo from the future?), or if the speaker data is so ahead that exceeds its limited filter length. + +### The `--print-echocancel-queue` option + +Now that I've mentioned the requirement for the echo canceller to have well aligned inputs, maybe it's best to introduce the `--print-echocancel-queue` option. When running Mumble with this option, the current state of the queue in the Resynchronizer class is used to align the microphone and speaker readback streams is printed on the command line. Moreover, if packets are dropped (which is necessary to keep the signals aligned if the OS/pulseaudio/audio card is playing tricks to us), those will be printed as well. + +### The Resynchronizer class + +Documentation on the Resynchronizer class is put as a comment in the `AudioInput.h` file, but it doesn't hurt to repeat it here, also because the statemachine design doesn't fit in a C++ comment as it's an image. + +According to https://www.speex.org/docs/manual/speex-manual/node7.html +"It is important that, at any time, any echo that is present in the input +has already been sent to the echo canceller as echo_frame." +Thus, we artificially introduce a small lag in the microphone by means of +a queue, so as to be sure the speaker data always precedes the microphone. + +There are conflicting requirements for the queue: + +* it has to be small enough not to cause a noticeable lag in the voice +* it has to be large enough not to force us to drop packets frequently + when the addMic() and addEcho() callbacks are called in a jittery way +* its fill level must be controlled so it does not operate towards zero + elements size, as this would not provide the lag required for the + echo canceller to work properly. + +The current implementation uses a 5 elements queue, with a control +statemachine that introduces packet drops to control the fill level +to at least 2 (plus or minus one) and less than 4 elements. +With a 10ms chunk, this queue should introduce a ~20ms lag to the voice. + +![](AudioInputDebugFiles/fsm.png) + +Here _m_ means a microphone chunk was received, _s_ a speaker chunk was received, and the number in the state is the queue fill level. The design tries to keep the limit cycle of the queue add/remove pattern between 1 and 4 elements, preventing the queue to operate in a limit cycle between 0 and 1 elements (queue too empty, the speaker data may risk arriving after the microphone) and in a limit cycle between 4 and 5 elements (too full, we're wasting some precious filter length to cancel real echo just because some delay accumulated). + +### A reproducible test for verifying the correct operation of the echo canceller + +To avoid regressions being introduced in the echo cancellation feature, it is beneficial to have a controlled test that can be easily reproduced to test whether the echo canceller works. + +You will need: + +* Low quality headphones that cause echo. The in-ear type that's used with smartphones and has a combined microphone/headphones jack works best. If you don't have them or your PC lacks a combined microphone/headphones jack, do the test with your speakers, but keep the volume relatively quiet. Some echo is unavoidable at high volume levels, especially if it makes the microphone clip. +* A quiet Mumble server to connect to. Just join an empty room with no other users. + +Here's the step by step guide: + +1. Make sure Mumble echo cancellation is enabled. You may also need to repeat this test twice with mixed and multichannel echo cancellation. +1. Run Mumble with the `--dump-input-streams` option +2. Join the quiet server +3. Play the first 15 or so seconds of a YouTube video that contains both a relatively periodic note and voice, such as this one: https://www.youtube.com/watch?v=im9z8NT96Iw +4. Say a phrase, such as "Testing 1 2 3" +5. Close Mumble +6. Open the three dumped streams in Audacity. Don't forget to select the correct number of channels for the `speaker_dump` when testing multichannel echo cancellation +7. Play the raw microphone stream, you should hear the echo of the YouTube video clearly above the noise, and it should be less loud than you saying "Testing 1 2 3". If you hear no echo, increase you headphones volume, switch to worse headphones or use your speakers and repeat. If the echo is as loud as or louder than you speaking, reduce your audio volume and repeat. +8. Now listen to the processed microphone stream: the echo should be almost gone, both the note and the voice coming from YouTube, while your voice should remain. It is acceptable that after a silence gap, the first part of the echo can reappear, but it should quickly be cancelled. If not, there's a bug in Mumble. +9. Play the speaker dump. It should sound as well as the YouTube video itself. If not, there's a bug in Mumble. +10. As a final check, take a transition from silence to noise as a reference and zoom in in Audacity: the speaker dump should precede the microphone dump by 20ms or so (0 to 50ms is acceptable). If not, there's a bug in Mumble. + +Example of an echo canceller bug: the speaker data lags compared to the microphone one. As a result, only the note is cancelled, but voice is not. + +![](AudioInputDebugFiles/bug.png) + +Exampe of the a working echo canceller. + +![](AudioInputDebugFiles/fix.png) diff --git a/docs/AudioInputDebugFiles/bug.png b/docs/AudioInputDebugFiles/bug.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b0eafb529f3449d75243d5db763d805c2aaaa6 GIT binary patch literal 58650 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 oF9xaf>xNVKlg_m2SfqUE8jRmpl70w3$3WU