XAudio2 음성
XAudio2 음성 개체에는 소스, 서브믹스, 마스터링 음성의 세 가지 유형이 있습니다. 원본 음성은 클라이언트에서 제공하는 오디오 데이터에서 작동합니다. 원본 및 서브믹스 음성은 하나 이상의 서브믹스 또는 마스터링 음성으로 출력을 보냅니다. 서브믹스 및 마스터링 음성은 모든 음성의 오디오를 공급하고 결과에 따라 작동합니다. 음성 마스터는 오디오 디바이스에 오디오 데이터를 씁니다.
모든 음성에서 수행하는 작업
모든 음성은 이동하는 오디오에서 다음 작업을 순서대로 수행합니다.
- 전체 볼륨 조정으로 모든 오디오 채널에 영향을 줍니다. IXAudio2Voice::SetVolume참조하세요.
- 기본 제공 반향 또는 IXAPO 인터페이스에서 정의한 사용자 효과와 같은 하나 이상의 DSP 효과에 대한 선택적 클라이언트 지정 체인입니다. XAudio2 오디오 효과 참조하세요.
- 채널별 출력 볼륨 조정. IXAudio2Voice::SetChannelVolumes참조하세요.
- 각 대상 음성 또는 음성 마스터를 위한 오디오 출력 디바이스에 행렬 혼합을 구분합니다. 이 조합은 필요한 경우 오디오의 채널 수를 변경합니다.
원본 음성
원본 음성을 사용하여 오디오 데이터를 XAudio2 처리 파이프라인에 제출합니다. XAudio2 오디오 그래프 진입점입니다. 직접 또는 중간 서브믹스 음성을 통해 음성 데이터를 마스터 음성으로 보내야 합니다.
모든 음성에서 수행하는 작업 외에도 원본 음성은 다음 작업을 수행합니다.
- 필요한 경우 디코더가 먼저 실행되어 인코딩된 원본 데이터를 펄스 코드 변조(PCM)로 변환합니다.
- SRC(가변 속도 샘플 속도 변환)는 음성의 원본 오디오 데이터를 필요한 경우 대상 음성에서 예상하는 샘플 속도로 변환하고 동적 피치 변경도 지원합니다.
- 선택적 상태 변수 필터를 사용하여 다양한 방법으로 소리를 색칠할 수 있습니다. IXAudio2Voice::SetFilterParameters참조하세요.
- 선택적 필터는 음성의 출력에 적용할 수 있습니다. IXAudio2Voice::SetOutputFilterParameters참조하세요.
서브믹스 음성
서브믹스 음성은 주로 성능 향상 및 효과 처리에 사용됩니다. 데이터 버퍼를 서브믹스 음성에 직접 제출할 수 없습니다. 마스터링 음성에 제출하지 않으면 들을 수 없습니다. 서브믹스 음성을 사용하여 특정 음성 데이터 집합이 동일한 형식으로 변환되도록 하고 집단 결과에 대해 특정 효과 체인을 처리할 수 있습니다.
서브믹스 음성은 모든 음성에서 수행하는 작업 외에도 다음 작업을 수행합니다.
- 고정 속도 SRC는 필요한 경우 음성의 출력에서 실행되어 오디오를 대상 음성에서 예상하는 샘플 속도로 변환합니다.
- 선택적 상태 변수 필터를 사용하여 다양한 방법으로 소리를 색칠할 수 있습니다. IXAudio2Voice::SetFilterParameters참조하세요.
- 선택적 필터는 음성의 출력에 적용할 수 있습니다. IXAudio2Voice::SetOutputFilterParameters참조하세요.
음성 마스터
마스터 음성을 사용하여 오디오 출력 디바이스를 나타냅니다. 마스터링 음성에 직접 데이터 버퍼를 제출할 수는 없지만 다른 유형의 음성에 제출된 데이터는 마스터링 음성으로 이동하여 들을 수 있어야 합니다.
모든 음성에서 수행하는 작업 외에도 마스터 음성은 다음 작업을 수행합니다.
- 오디오 디바이스에서 지원하지 않는 명시적 InputSampleRate 값을 사용하여 마스터링 음성을 만드는 경우 고정 속도 SRC를 사용하여 디바이스에서 지원하는 가장 가까운 샘플 속도로 변환합니다.
- 출력 디바이스에 필요한 경우 최종 출력 오디오를 클리핑합니다.
관련 항목