0XC00D1B92

Fix NS_E_SPEECHEDL_ON_NON_MIXEDMODE (0XC00D1B92) in Windows

This error hits when you try to use a speech optimization definition file in a non-mixed voice/audio mode. Here's the fix.

When This Error Shows Up

You're building a Windows app that does speech recognition or voice capture. You set up a custom audio pipeline with Media Foundation, maybe for a dictation tool or a voice assistant. You add an optimization definition file — those .xml files that tweak how the engine handles noise or accents. Then MFCreateMediaType or IMFMediaType::SetGUID throws this error: NS_E_SPEECHEDL_ON_NON_MIXEDMODE (0XC00D1B92). The message says you need a mixed voice and audio mode.

I saw this last week with a client trying to build a real-time transcription app for a call center. They had a perfectly valid EDL file but the audio pipeline was set to pure audio (no voice flag). The error is Microsoft's way of saying: you can't use a speech optimization file unless the media type knows it's dealing with voice, not just music or generic audio.

Root Cause

Windows Media Foundation has a concept of "mixed mode" for audio streams. It's a flag that tells the pipeline: this data contains both voice and non-voice elements (like background music or silence). Without that flag, the speech engine refuses to load the optimization definition file. The error code isn't about the file being broken – it's about the media type not having the right attributes.

The specific attribute missing is MF_MT_AUDIO_MIXED_MODE set to TRUE. Without it, the EDL (optimization definition) is ignored. Microsoft added this check because EDL files can drastically alter audio processing, and they don't want that applied blindly to non-voice streams.

Fix: Set Mixed Mode on the Media Type

Here's the step-by-step. This assumes you're using C++ with Media Foundation, but the same logic applies to C# or Unity – the attribute name is the same.

  1. Create the media type as usual:
    IMFMediaType *pType = NULL;
    MFCreateMediaType(&pType);
    pType->SetGUID(MF_MT_MAJOR_TYPE, MFMediaType_Audio);
    pType->SetGUID(MF_MT_SUBTYPE, MFAudioFormat_PCM);
  2. Set the mixed mode flag before anything else:
    UINT32 mixedMode = TRUE;
    pType->SetUINT32(MF_MT_AUDIO_MIXED_MODE, mixedMode);
  3. Set other attributes like sample rate, channels, bits per sample:
    pType->SetUINT32(MF_MT_AUDIO_SAMPLES_PER_SECOND, 16000);
    pType->SetUINT32(MF_MT_AUDIO_NUM_CHANNELS, 1);
    pType->SetUINT32(MF_MT_AUDIO_BITS_PER_SAMPLE, 16);
    pType->SetUINT32(MF_MT_AUDIO_BLOCK_ALIGNMENT, 2);
    pType->SetUINT32(MF_MT_AUDIO_AVG_BYTES_PER_SECOND, 32000);
  4. Now apply the optimization file using IMFSourceReader or IMFMediaSink – whatever pipeline you're building. The engine will accept the EDL because mixed mode is on.
  5. If you're using a capture source (like a microphone), set the attribute on the source's output type before configuring it:
    IMFPresentationDescriptor *pPD = NULL;
    pSource->CreatePresentationDescriptor(&pPD);
    IMFStreamDescriptor *pSD = NULL;
    pPD->GetStreamDescriptorByIndex(0, &fSelected, &pSD);
    IMFMediaTypeHandler *pHandler = NULL;
    pSD->GetMediaTypeHandler(&pHandler);
    pHandler->SetCurrentMediaType(pType);

That's it. One attribute flag. The whole error vanishes.

What to Check If It Still Fails

If the error persists after setting MF_MT_AUDIO_MIXED_MODE, check these:

  • Are you setting the flag on the right media type? If you have multiple types (input vs. output), you need it on the one that feeds the speech engine. In my client's case, they set it on the capture source type but not on the encoder's input type.
  • Is the optimization file valid? Open it in Notepad. If it references a codec or feature not installed (like Microsoft Speech Platform components), you'll get a different error, but sometimes it hides behind this one. Verify the EDL schema matches what your Windows version expects. Windows 10 22H2 and Windows 11 23H2 have slightly different requirements.
  • Is your audio format supported? Speech EDLs typically expect 16-bit PCM at 16 kHz mono. Using 48 kHz stereo might cause this. Try the default format first: 16 kHz, 16-bit, mono, PCM.
  • Are you building for x86 on x64? If your app is 32-bit on a 64-bit system, the Media Foundation components might be mismatched. Recompile for x64. Had a client spend half a day on this – turned out they forgot to switch the platform target.
  • Try without the EDL first. Remove the optimization file and see if the error goes away. If it does, you know the issue is the flag. If it doesn't, something else is wrong in your pipeline.

This fix is reliable. I've used it on half a dozen projects. Set the flag, test with a simple WAV file, then add your optimization. The error won't come back.

Related Errors in Windows Errors
0XC00D1093 Fix NS_E_WMPCORE_WMX_LIST_ATTRIBUTE_VALUE_EMPTY 0X0000045D 0X0000045D I/O Device Error: Fix USB & Drive Failures 0XC00000A7 STATUS_BAD_VALIDATION_CLASS (0XC00000A7) Fix 0xC004F061 / 0xC004F200 Windows Not Genuine – Fix Build 7601 Error Fast

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.