XAudio2 음성

XAudio2 음성 개체에는 소스, 서브믹스마스터링 음성의 세 가지 유형이 있습니다. 원본 음성은 클라이언트에서 제공한 오디오 데이터에서 작동합니다. 원본 및 서브믹스 음성은 해당 출력을 하나 이상의 서브믹스 또는 마스터링 음성으로 보냅니다. 서브믹스 및 마스터링 음성은 해당 음성을 공급하는 모든 음성으로부터 오디오를 믹싱하고 그 결과에서 작동합니다. 마스터링 음성은 오디오 데이터를 오디오 디바이스에 기록합니다.

모든 음성에서 수행하는 작업

모든 음성은 이동하는 오디오에서 순서대로 다음 작업을 수행합니다.

  1. 전체 볼륨 조정으로 모든 오디오 채널에 영향을 줍니다. IXAudio2Voice::SetVolume을 참조하세요.
  2. 기본 제공 반향 또는 IXAPO 인터페이스에서 정의한 사용자 효과와 같은 하나 이상의 DSP 효과에 대한 선택적 클라이언트 지정 체인입니다. XAudio2 오디오 효과를 참조하세요.
  3. 채널별 출력 볼륨 조정. IXAudio2Voice::SetChannelVolumes를 참조하세요.
  4. 각 대상 음성 또는 음성 마스터를 위한 오디오 출력 디바이스에 행렬 혼합을 구분합니다. 이 혼합은 필요한 경우 오디오의 채널 수를 변경합니다.

원본 음성

원본 음성을 사용하여 오디오 데이터를 XAudio2 처리 파이프라인에 제출합니다. XAudio2 오디오 그래프의 진입점입니다. 직접 또는 중간 서브믹스 음성을 통해 들을 수 있도록 음성 데이터를 마스터링 음성으로 보내야 합니다.

모든 음성에서 수행하는 작업 외에도 원본 음성은 다음 작업을 수행합니다.

  • 필요한 경우 디코더가 먼저 실행되어 인코딩된 원본 데이터를 PCM(Pulse Code Modulation)으로 변환합니다.
  • SRC(가변 속도 샘플 속도 변환)는 음성의 원본 오디오 데이터를 필요한 경우 대상 음성에서 예상하는 샘플 속도로 변환하고 동적 피치 변경도 지원합니다.
  • 선택적 상태 변수 필터를 사용하여 다양한 방법으로 소리를 색칠할 수 있습니다. IXAudio2Voice::SetFilterParameters를 참조하세요.
  • 선택적 필터는 음성의 출력에 적용할 수 있습니다. IXAudio2Voice::SetOutputFilterParameters를 참조하세요.

서브믹스 음성

서브믹스 음성은 주로 성능 향상 및 효과 처리에 사용됩니다. 서브믹스 음성에 직접 데이터 버퍼를 제출할 수 없습니다. 마스터링 음성에 제출하지 않으면 들을 수 없습니다. 서브믹스 음성을 사용하여 특정 음성 데이터 집합이 동일한 형식으로 변환되도록 하고 집합적 결과에 대해 특정 효과 체인을 처리할 수 있습니다.

모든 음성에서 수행하는 작업 외에도 서브믹스 음성은 다음 작업을 수행합니다.

음성 마스터

마스터 음성을 사용하여 오디오 출력 디바이스를 나타냅니다. 마스터링 음성에 직접 데이터 버퍼를 제출할 수는 없지만 다른 유형의 음성에 제출된 데이터는 들을 수 있는 마스터링 음성으로 이동해야 합니다.

모든 음성에서 수행하는 작업 외에도 음성 마스터는 다음 작업을 수행합니다.

  • 오디오 디바이스에서 지원하지 않는 명시적 InputSampleRate 값으로 마스터링 음성을 만드는 경우 고정 속도 SRC를 사용하여 디바이스에서 지원하는 가장 가까운 샘플 속도로 변환합니다.
  • 출력 디바이스에 필요한 경우 최종 출력 오디오를 클리핑합니다.

음성

XAudio2 프로그래밍 지침

IXAudio2SourceVoice

IXAudio2SubmixVoice

IXAudio2MasteringVoice