다음을 통해 공유


오디오 신호 처리 모드

드라이버는 각 디바이스에 대해 지원되는 오디오 신호 처리 모드를 선언합니다.

사용 가능한 신호 처리 모드

오디오 범주(애플리케이션에서 선택됨)는 오디오 모드(드라이버에 의해 정의됨)에 매핑됩니다. Windows는 7개의 오디오 신호 처리 모드를 정의합니다. OEM 및 IHV는 구현하려는 모드를 결정할 수 있습니다. IHV/OEM은 새 모드를 활용하여 오디오 신호를 최적화하는 오디오 효과를 추가하여 최상의 사용자 환경을 제공하는 것이 좋습니다. 모드는 아래 표에 요약되어 있습니다.

모드 렌더링/캡처 설명
Raw 모두 원시 모드는 스트림에 적용된 신호 처리가 없도록 지정합니다. 애플리케이션은 완전히 손길이 닿지 않은 원시 스트림을 요청하고 자체 신호 처리를 수행할 수 있습니다.
기본값 모두 이 모드는 기본 오디오 처리를 정의합니다.
영화* 렌더링 동영상 오디오 재생
미디어* 모두 오디오 재생 음악(대부분의 미디어 스트림의 경우 기본값)
음성* 캡처 사용자 음성 캡처(예: 개인 도우미 입력)
통신* 모두 VOIP 렌더링 및 캡처(예: Teams, Skype, Lync)
알림* 렌더링 벨소리, 경보, 경고 등

* Windows 10의 새로운 기능

신호 처리 모드 드라이버 요구 사항

오디오 디바이스 드라이버는 적어도 원시 또는 기본 모드를 지원해야 합니다. 추가 모드 지원은 선택 사항입니다.

특정 시스템에서 모든 모드를 사용할 수 있는 것은 아닙니다. 드라이버는 지원하는 신호 처리 모드(즉, 드라이버의 일부로 설치된 API 유형)를 정의하고 그에 따라 OS에 알릴 수 있습니다. 드라이버에서 특정 모드를 지원하지 않는 경우 Windows는 다음으로 가장 일치하는 모드를 사용합니다.

다음 다이어그램에서는 여러 모드를 지원하는 시스템을 보여 줍니다.

여러 SFX 및 MFX 효과와 함께 여러 오디오 모드를 지원하는 시스템을 보여 주는 다이어그램

Windows 오디오 스트림 범주

오디오 스트림의 사용에 대해 시스템에 알리기 위해 애플리케이션에는 특정 오디오 스트림 범주를 사용하여 스트림에 태그를 지정하는 옵션이 있습니다. 애플리케이션은 오디오 스트림을 만든 직후 오디오 API를 사용하여 오디오 범주를 설정할 수 있습니다. Windows에는 9개의 오디오 스트림 범주가 있습니다.

범주 설명
Movie 동영상, 대화 상자가 있는 비디오(ForegroundOnlyMedia 대체)
미디어 미디어 재생의 기본 범주(BackgroundCapableMedia 대체)
게임 채팅 사용자 간의 게임 내 통신(Windows 10의 새 범주)
음성 음성 입력(예: 개인 도우미) 및 출력(예: 탐색 앱)(Windows 10의 새 범주)
연락 VOIP, 실시간 채팅
경고 알람, 벨소리, 알림
음향 효과 경고음, 딩 등
게임 미디어 게임 음악에서
게임 효과 공 튀는, 자동차 엔진 소리, 총알, 등.
기타 분류되지 않은 스트림

이전에 멘션 오디오 범주(애플리케이션에서 선택됨)는 오디오 모드(드라이버에 의해 정의됨)에 매핑됩니다. 애플리케이션은 10개의 오디오 범주 중 하나를 사용하여 각 스트림에 태그를 지정할 수 있습니다.

애플리케이션에는 오디오 범주와 신호 처리 모드 간의 매핑을 변경할 수 있는 옵션이 없습니다. 애플리케이션은 "오디오 처리 모드"의 개념을 인식하지 않습니다. 각 스트림에 어떤 모드가 사용되는지 알 수 없습니다.

WASAPI 코드 샘플

WASAPIAudio 샘플의 다음 WASAPI 코드는 다른 오디오 범주를 설정하는 방법을 보여줍니다.

// The ActivateAudioInterfaceAsync is a replacement for IMMDevice::Activate
IActivateAudioInterfaceAsyncOperation *asyncOp = nullptr;
HRESULT hr = S_OK;

String ^defaultRender = Windows::Media::Devices::MediaDevice::GetDefaultAudioRenderId( Windows::Media::Devices::AudioDeviceRole::Default );

hr = ActivateAudioInterfaceAsync( defaultRender->Data(), __uuidof( IAudioClient3 ), nullptr, this, &asyncOp );
if ( FAILED( hr ) ) { … }
…

// the app’s implementation of IActivateAudioInterfaceCompetionHandler is invoked asynchronously
HRESULT ActivateAudioInterfaceCompletionHandler::ActivateCompleted( IActivateAudioInterfaceAsyncOperation *activateOperation ) {
    HRESULT hr = S_OK;
    HRESULT hrActivateResult = S_OK;
    IUnknown *pUnknown = nullptr;
    IAudioClient3 *pAudioClient3 = nullptr;

    hr = activateOperation->GetActivateResult( &hrActivateResult, &pUnknown );
    if ( FAILED( hr ) )  { … }
    if ( FAILED( hrActivateResult ) ) { … }

    hr = pUnknown->QueryInterface( IID_PPV_ARGS( &pAudioClient3 ) );
    if ( FAILED( hr ) ) { … }

    // The IAudioClient3::SetClientProperties call needs to happen after activation completes,
    // but before the call to IAudioClient3::Initialize or IAudioClient3::InitializeSharedAudioStream.
    AudioClientProperties props = {};
    props.cbSize = sizeof(props);
    props.eCategory = AudioCategory_GameEffects;
    pAudioClient3->SetClientProperties( &props );
    if ( FAILED( hr ) ) { … }

    hr = pAudioClient3->InitializeSharedAudioStream( … );
    if ( FAILED( hr ) ) { … }

    …

신호 처리 모드 및 효과

OEM은 각 모드에 사용할 효과를 정의합니다. Windows는 17가지 유형의 오디오 효과 목록을 정의합니다.

API를 모드와 연결하는 방법에 대한 자세한 내용은 오디오 처리 개체 구현을 참조 하세요.

애플리케이션은 RAW 또는 비 RAW 처리를 위해 특정 스트림에 적용되는 효과를 요청할 수 있습니다. 애플리케이션은 효과 또는 원시 처리 상태가 변경될 때 알림을 요청할 수도 있습니다. 애플리케이션은 이 정보를 사용하여 통신과 같은 특정 스트리밍 범주를 사용할 수 있는지 또는 RAW 모드만 사용 중인지 확인할 수 있습니다. RAW 모드만 사용할 수 있는 경우 애플리케이션은 추가할 자체의 오디오 처리 양을 결정할 수 있습니다.

System.Devices.AudioDevice.RawProcessingSupported가 true이면 애플리케이션에는 특정 스트림에서 "RAW 사용" 플래그를 설정하는 옵션도 있습니다. System.Devices.AudioDevice.RawProcessingSupported가 false이면 애플리케이션에서 "RAW 사용" 플래그를 설정할 수 없습니다.

애플리케이션은 RAW/비 RAW를 제외하고 얼마나 많은 모드가 존재하는지 확인할 수 없습니다.

애플리케이션은 오디오 하드웨어 구성에 관계없이 최적의 오디오 효과 처리를 요청해야 합니다. 예를 들어 스트림을 Communications로 태그를 지정하면 Windows에서 배경 음악을 일시 중지하도록 알 수 있습니다.

정적 오디오 스트림 범주 에 대한 자세한 내용은 AudioCategory 열거형MediaElement.AudioCategory 속성을 참조하세요.

시스템 효과에 대한 CLSID

FX_DISCOVER_EFFECTS_APO_CLSID

이는 드라이버를 쿼리하여 활성 효과 목록을 가져오는 MsApoFxProxy.dll "프록시 효과"에 대한 CLSID입니다.

FX_DISCOVER_EFFECTS_APO_CLSID  = "{889C03C8-ABAD-4004-BF0A-BC7BB825E166}"

KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE

KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE 참조되는 특정 특성이 신호 처리 모드 특성임을 식별하는 커널 스트리밍의 식별자입니다.

여기에 표시된 #define 문은 KSMedia.h 헤더 파일에서 사용할 수 있습니다.

#define STATIC_KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE 0xe1f89eb5, 0x5f46, 0x419b, 0x96, 0x7b, 0xff, 0x67, 0x70, 0xb9, 0x84, 0x1
DEFINE_GUIDSTRUCT("E1F89EB5-5F46-419B-967B-FF6770B98401", KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE);
#define KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE DEFINE_GUIDNAMED(KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE)

KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE KSATTRIBUTE_LIST 포함하는 KSDATARANGE 구조체를 사용하는 모드 인식 드라이버사용됩니다. 이 목록에는 KSATTRIBUTE단일 요소가 있습니다. KSATTRIBUTE 구조체의 특성 멤버가 KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE 설정됩니다.

오디오 효과

Windows 10에서 사용할 수 있는 오디오 효과는 다음과 같습니다.

오디오 효과 설명
AEC(Acoustic Echo Cancellation) AEC(Acoustic Echo Cancellation)는 오디오 스트림에 이미 있는 후 에코를 제거하여 오디오 품질을 향상시킵니다.
NS(노이즈 억제) NS(단순 노이즈 억제)는 오디오 스트림에 있을 때 허밍 및 윙윙거리는 소리와 같은 노이즈를 억제합니다.
딥 노이즈 억제 딥 노이즈 억제는 고급 AI/기계 학습 기술을 사용하여 특히 음성 통화에서 노이즈를 억제합니다.
AGC(자동 게인 제어) AGC(자동 게인 제어) - 입력 신호의 진폭 변화에도 불구하고 출력에서 제어된 신호 진폭을 제공하도록 설계되었습니다. 평균 또는 최고 출력 신호 수준은 입력-출력 게인을 적절한 값으로 동적으로 조정하여 광범위한 입력 신호 수준에서도 안정적인 수준의 출력을 가능하게 하는 데 사용됩니다.
BF(빔 포밍) BF(빔 포밍)는 방향 신호 전송 또는 수신에 사용되는 신호 처리 기술입니다. 이는 특정 각도의 신호가 건설적인 간섭을 경험하는 동시에 다른 신호가 파괴적인 간섭을 경험하는 방식으로 단계적 배열의 요소를 결합하여 달성됩니다. 전방향 수신/전송에 비해 향상된 것을 수신/전송 게인(또는 손실)으로 알려져 있다.
일정한 톤 제거 일정한 톤 제거는 테이프 히스, 전기 팬 또는 잡음과 같은 일정한 배경 소음을 감쇠하는 데 사용됩니다.
이퀄라이저 이퀄라이저 효과는 선형 필터를 사용하여 오디오 시스템의 주파수 응답을 변경하는 데 사용됩니다. 이를 통해 고음 또는 베이스 설정과 유사하게 신호의 여러 부분을 높일 수 있습니다.
음량 이퀄라이저 음량 이퀄라이저 효과는 더 크고 조용한 소리가 평균 음량 수준에 가까워지도록 오디오 출력을 평준화하여 인식된 볼륨 차이를 줄입니다.
베이스 부스트 저음 기능이 제한된 스피커가 있는 노트북과 같은 시스템에서는 스피커가 지원하는 주파수 범위에서 저음 응답을 향상시켜 오디오의 인식 품질을 높일 수 있습니다. 베이스 부스트는 중간베이스 범위에서 이득을 증가시켜 매우 작은 스피커와 모바일 장치에서 소리를 향상시킵니다.
가상 서라운드 가상 서라운드는 간단한 디지털 방법을 사용하여 다중 채널 신호를 두 채널로 결합합니다. 이 작업은 대부분의 최신 오디오 수신기에서 사용할 수 있는 Pro 논리 디코더를 사용하여 변환된 신호를 원래 다중 채널 신호로 복원할 수 있는 방식으로 수행됩니다. 가상 서라운드는 2 채널 사운드 하드웨어와 서라운드 사운드 향상 메커니즘이 있는 수신기가 있는 시스템에 이상적입니다.
가상 헤드폰 가상화된 서라운드 사운드를 사용하면 헤드폰을 착용한 사용자가 소리를 좌우로 구분할 수 있습니다. 이것은 뇌가 소리를 지역화하고 사운드 필드에 통합하는 데 도움이 공간 신호를 전송하여 수행됩니다. 이것은 헤드폰을 초월하는 것처럼 소리를 느끼게하여 "머리 밖"청취 경험을 만듭니다. 이 효과는 HRTF(Head Related Transfer Functions)라는 고급 기술을 사용하여 수행됩니다. HRTF는 인간의 머리 모양을 기반으로 음향 신호를 생성합니다. 이러한 신호는 수신기가 소리의 방향과 소스를 찾는 데 도움이 될 뿐만 아니라 수신기를 둘러싼 음향 환경의 유형을 향상시킵니다.
스피커 채우기 대부분의 음악은 두 개의 채널로만 생성되므로 일반적인 오디오 또는 비디오 애호가의 다중 채널 오디오 장비에 최적화되지 않습니다. 따라서 음악이 왼쪽 앞과 오른쪽 라우드 스피커에서만 나오는 것은 이상적이지 않은 오디오 환경입니다. 스피커 채우기는 다중 채널 라우드 스피커 설정을 시뮬레이트합니다. 그렇지 않으면 방의 모든 라우드 스피커에서 두 개의 스피커에서만 들을 수 있는 음악을 허용하여 공간 감각을 향상시킬 수 있습니다.
방 수정 방 보정은 지연, 빈도 응답 및 게인 조정의 최적 조합을 자동으로 계산하여 소파의 중앙 쿠션과 같은 회의실의 특정 위치에 대한 청취 환경을 최적화합니다. 방 보정 기능은 비디오 화면의 이미지와 사운드를 더 잘 일치시키고 데스크톱 스피커가 표준이 아닌 위치에 배치되는 경우에도 유용합니다. 방 보정 처리는 사람의 귀가 소리를 처리하는 방식을 더 잘 설명하기 때문에 하이 엔드 수신기의 유사한 기능보다 개선되었습니다. 마이크의 도움으로 보정을 수행하며 스테레오 및 다중 채널 시스템과 함께 프로시저를 사용할 수 있습니다. 사용자는 사용자가 앉으려는 마이크를 배치한 다음 방 응답을 측정하는 마법사를 활성화합니다. 마법사는 각 라우드 스피커에서 특별히 디자인된 톤 세트를 차례로 재생하고 마이크 위치에서 각 라우드 스피커의 거리, 주파수 응답 및 전반적인 이득을 측정합니다.
베이스 관리 두 가지베이스 관리 모드가 있습니다: 앞으로베이스 관리 및 역방향베이스 관리. 전달베이스 관리는 오디오 데이터 스트림의 빈도가 낮은 콘텐츠를 필터링합니다. 전방베이스 관리 알고리즘은 깊은 저음 주파수를 처리할 수 있는 채널에 따라 필터링된 출력을 서브우퍼 또는 프런트-왼쪽 및 프런트-오른쪽 라우드 스피커 채널로 리디렉션합니다. 이 결정은 LRBig 플래그의 설정을 기반으로 합니다. LRBig 플래그를 설정하기 위해 사용자는 제어판 사운드 애플릿을 사용하여 베이스 관리 설정 대화 상자에 액세스합니다. 예를 들어 사용자는 검사 상자를 선택하여 앞-오른쪽 및 왼쪽 스피커가 전체 범위이며 이 작업은 LRBig 플래그를 설정합니다. 이 플래그를 지우려면 검사 상자를 선택합니다. 역방향베이스 관리는 서브우퍼 채널의 신호를 다른 출력 채널로 분산합니다. 신호는 LRBig 플래그의 설정에 따라 모든 채널 또는 프런트-왼쪽 및 오른쪽 채널로 전달됩니다. 이 프로세스는 서브우퍼 신호를 다른 채널에 혼합할 때 상당한 게인 감소를 사용합니다. 사용되는 베이스 관리 모드는 서브우퍼의 가용성과 기본 스피커의 베이스 처리 기능에 따라 달라집니다. Windows에서 사용자는 제어판 사운드 애플릿을 통해 이 정보를 제공합니다.
환경 효과 환경 효과는 실제 오디오 환경을 보다 정확하게 시뮬레이션하여 오디오 재생의 현실을 높이는 데 작동합니다. 선택할 수 있는 다양한 환경이 있습니다. 예를 들어 "경기장"은 스포츠 경기장의 음향을 시뮬레이션합니다.
Speaker Protection 스피커 보호의 목적은 스피커가 PC의 시스템 구성 요소에 신체적 상해를 입히는 공진 주파수를 억제하는 것입니다. 예를 들어 일부 실제 하드 드라이브는 올바른 주파수에서 큰 소리를 재생하여 손상될 수 있습니다. 보조적으로, 스피커 보호는 특정 값을 초과할 때 신호를 감쇠시켜 스피커 손상을 최소화하기 위해 작동합니다.
화자 보상 일부 스피커는 다른 스피커보다 소리를 재현하는 데 더 좋습니다. 예를 들어 특정 스피커는 100Hz 미만의 소리를 감쇠시킬 수 있습니다. 오디오 드라이버 및 펌웨어 DSP 솔루션은 재생 중인 스피커의 특정 성능 특성에 대한 지식을 가지고 있으며 스피커 제한 사항을 보완하도록 설계된 처리를 추가할 수 있습니다. 예를 들어 100Hz 미만의 빈도에 게인을 적용하는 엔드포인트 효과(EFX)를 만들 수 있습니다. 이 효과는 실제 스피커의 감쇠와 결합하면 오디오 충실도가 향상됩니다.
동적 범위 압축 동적 범위 압축은 오디오 신호의 동적 범위를 좁히거나 "압축"하여 조용한 소리를 증폭합니다. 오디오 압축은 특정 임계값 미만인 조용한 소리를 증폭하는 반면, 시끄러운 소리는 영향을 받지 기본.

여기에 표시된 #define 문은 KSMedia.h 헤더 파일에서 사용할 수 있습니다.

DEFAULT

#define STATIC_AUDIO_SIGNALPROCESSINGMODE_DEFAULT 0xc18e2f7e, 0x933d, 0x4965, 0xb7, 0xd1, 0x1e, 0xef, 0x22, 0x8d, 0x2a, 0xf3
DEFINE_GUIDSTRUCT("C18E2F7E-933D-4965-B7D1-1EEF228D2AF3", AUDIO_SIGNALPROCESSINGMODE_DEFAULT);
#define AUDIO_SIGNALPROCESSINGMODE_DEFAULT DEFINE_GUIDNAMED(AUDIO_SIGNALPROCESSINGMODE_DEFAULT)

RAW

#define STATIC_AUDIO_SIGNALPROCESSINGMODE_RAW 0x9e90ea20, 0xb493, 0x4fd1, 0xa1, 0xa8, 0x7e, 0x13, 0x61, 0xa9, 0x56, 0xcf
DEFINE_GUIDSTRUCT("9E90EA20-B493-4FD1-A1A8-7E1361A956CF", AUDIO_SIGNALPROCESSINGMODE_RAW);
#define AUDIO_SIGNALPROCESSINGMODE_RAW DEFINE_GUIDNAMED(AUDIO_SIGNALPROCESSINGMODE_RAW)

음향 에코 취소

#define STATIC_AUDIO_EFFECT_TYPE_ACOUSTIC_ECHO_CANCELLATION 0x6f64adbe, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adbe-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_ACOUSTIC_ECHO_CANCELLATION);
#define AUDIO_EFFECT_TYPE_ACOUSTIC_ECHO_CANCELLATION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_ACOUSTIC_ECHO_CANCELLATION)

노이즈 억제

#define STATIC_AUDIO_EFFECT_TYPE_NOISE_SUPPRESSION          0x6f64adbf, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adbf-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_NOISE_SUPPRESSION);
#define AUDIO_EFFECT_TYPE_NOISE_SUPPRESSION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_NOISE_SUPPRESSION)

자동 게인 제어

#define STATIC_AUDIO_EFFECT_TYPE_AUTOMATIC_GAIN_CONTROL     0x6f64adc0, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc0-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_AUTOMATIC_GAIN_CONTROL);
#define AUDIO_EFFECT_TYPE_AUTOMATIC_GAIN_CONTROL DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_AUTOMATIC_GAIN_CONTROL)

빔 형성

#define STATIC_AUDIO_EFFECT_TYPE_BEAMFORMING                0x6f64adc1, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc1-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_BEAMFORMING);
#define AUDIO_EFFECT_TYPE_BEAMFORMING DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_BEAMFORMING)

일정한 톤 제거

#define STATIC_AUDIO_EFFECT_TYPE_CONSTANT_TONE_REMOVAL      0x6f64adc2, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc2-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_CONSTANT_TONE_REMOVAL);
#define AUDIO_EFFECT_TYPE_CONSTANT_TONE_REMOVAL DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_CONSTANT_TONE_REMOVAL)

이퀄라이저

#define STATIC_AUDIO_EFFECT_TYPE_EQUALIZER                  0x6f64adc3, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc3-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_EQUALIZER);
#define AUDIO_EFFECT_TYPE_EQUALIZER DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_EQUALIZER)

음음 이퀄라이저

#define STATIC_AUDIO_EFFECT_TYPE_LOUDNESS_EQUALIZER         0x6f64adc4, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc4-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_LOUDNESS_EQUALIZER);
#define AUDIO_EFFECT_TYPE_LOUDNESS_EQUALIZER DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_LOUDNESS_EQUALIZER)

베이스 부스트

#define STATIC_AUDIO_EFFECT_TYPE_BASS_BOOST                 0x6f64adc5, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc5-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_BASS_BOOST);
#define AUDIO_EFFECT_TYPE_BASS_BOOST DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_BASS_BOOST)

가상 서라운드

#define STATIC_AUDIO_EFFECT_TYPE_VIRTUAL_SURROUND           0x6f64adc6, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc6-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_VIRTUAL_SURROUND);
#define AUDIO_EFFECT_TYPE_VIRTUAL_SURROUND DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_VIRTUAL_SURROUND)

가상 헤드폰

#define STATIC_AUDIO_EFFECT_TYPE_VIRTUAL_HEADPHONES         0x6f64adc7, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc7-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_VIRTUAL_HEADPHONES);
#define AUDIO_EFFECT_TYPE_VIRTUAL_HEADPHONES DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_VIRTUAL_HEADPHONES)

방 수정

#define STATIC_AUDIO_EFFECT_TYPE_ROOM_CORRECTION            0x6f64adc9, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adc9-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_ROOM_CORRECTION);
#define AUDIO_EFFECT_TYPE_ROOM_CORRECTION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_ROOM_CORRECTION)

BASS MANAGEMENT

#define STATIC_AUDIO_EFFECT_TYPE_BASS_MANAGEMENT            0x6f64adca, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adca-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_BASS_MANAGEMENT);
#define AUDIO_EFFECT_TYPE_BASS_MANAGEMENT DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_BASS_MANAGEMENT)

환경 효과

#define STATIC_AUDIO_EFFECT_TYPE_ENVIRONMENTAL_EFFECTS      0x6f64adcb, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adcb-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_ENVIRONMENTAL_EFFECTS);
#define AUDIO_EFFECT_TYPE_ENVIRONMENTAL_EFFECTS DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_ENVIRONMENTAL_EFFECTS)

스피커 보호

#define STATIC_AUDIO_EFFECT_TYPE_SPEAKER_PROTECTION         0x6f64adcc, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adcc-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_SPEAKER_PROTECTION);
#define AUDIO_EFFECT_TYPE_SPEAKER_PROTECTION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_SPEAKER_PROTECTION)

화자 보정

#define STATIC_AUDIO_EFFECT_TYPE_SPEAKER_COMPENSATION       0x6f64adcd, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adcd-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_SPEAKER_COMPENSATION);
#define AUDIO_EFFECT_TYPE_SPEAKER_COMPENSATION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_SPEAKER_COMPENSATION)

동적 범위 압축

#define STATIC_AUDIO_EFFECT_TYPE_DYNAMIC_RANGE_COMPRESSION  0x6f64adce, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa
DEFINE_GUIDSTRUCT("6f64adce-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_DYNAMIC_RANGE_COMPRESSION);
#define AUDIO_EFFECT_TYPE_DYNAMIC_RANGE_COMPRESSION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_DYNAMIC_RANGE_COMPRESSION)

딥 노이즈 억제

Windows 11 버전 24H2부터 새로운 GUID를 사용하여 심층 노이즈 억제를 사용할 수 있습니다.

노이즈 억제 효과에 대한 두 가지 식별자가 있습니다. 노이즈 억제에 대한 기존 식별자와 딥 노이즈 억제를 위해 추가된 새 식별자가 있습니다. 전자는 '낮음'(간단한) 노이즈 억제를 위한 것이지만 후자는 '높음'이며 AI/기계 학습 솔루션으로 구현됩니다. 사용 가능한 모든 오디오 효과와 마찬가지로 애플리케이션의 요구 사항 및 특정 시나리오에 따라 사용할 오디오 효과를 선택할 수 있습니다.

#define STATIC_AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION 0x6f64add0, 0x8211, 0x11e2, 0x8c, 0x70, 0x2c, 0x27, 0xd7, 0xf0, 0x01, 0xfa

DEFINE_GUIDSTRUCT("6f64add0-8211-11e2-8c70-2c27d7f001fa", AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION);

#define AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION DEFINE_GUIDNAMED(AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION)

딥 노이즈 억제와 같은 오디오 효과는 오디오 처리 개체인 APO로 구현됩니다. 자세한 내용은 Windows 오디오 처리 개체를 참조 하세요.

APO는 상태를 동적으로 켜거나 끌 수 있는 효과를 노출하려는 경우 인터페이스를 구현 IAudioSystemEffects3 해야 합니다. 자세한 내용은 IAudioSystemEffects3 인터페이스(audioengineextensionapo.h)를 참조하세요.