XAudio2-Stimmen

Es gibt drei Arten von XAudio2-Sprachobjekten: Quell-, Submix- und Masterstimme . Quellstimmen verarbeiten die vom Client bereitgestellten Audiodaten. Quell- und Submixstimmen senden ihre Ausgabe an mindestens eine Submix- oder Masterstimme. Submix- und Masterstimmen mischen die Audiodaten aller Stimmen, von denen sie Daten erhalten, und verarbeiten das Ergebnis. Masterstimmen schreiben Audiodaten auf ein Audiogerät.

Von allen Stimmen ausgeführte Aktionen

Alle Stimmen führen die folgenden Aktionen in der Reihenfolge für die Audiodaten aus, die durch sie übertragen werden.

  1. Anpassung der Gesamtlautstärke, die sich auf alle Audiokanäle auswirkt. Siehe IXAudio2Voice::SetVolume.
  2. Eine optionale vom Client angegebene Kette aus einem oder mehreren DSP-Effekten, z. B. dem integrierten Hall oder einem Benutzereffekt, der von der IXAPO-Schnittstelle definiert wird. Siehe XAudio2-Audioeffekte.
  3. Anpassung des Ausgabevolumens pro Kanal. Siehe IXAudio2Voice::SetChannelVolumes.
  4. Separate Matrixmischung für jede der Zielstimmungen oder zum Audioausgabegerät zum Mastering von Stimmen. Diese Mischung ändert bei Bedarf die Anzahl der Kanäle im Audio.

Quellstimmdaten

Verwenden Sie Quellstimden, um Audiodaten an die XAudio2-Verarbeitungspipeline zu übermitteln. Sie sind die Einstiegspunkte in XAudio2 Audio Graph. Sie müssen Sprachdaten an eine Masterstimme senden, um gehört zu werden, entweder direkt oder über zwischengeschaltete Submixstimmen.

Zusätzlich zu den Aktionen, die von allen Stimmen ausgeführt werden, führen Quellstimmungen die folgenden Aktionen aus.

  • Bei Bedarf wird zuerst ein Decoder ausgeführt, um codierte Quelldaten in Pulse Code Modulation (PCM) zu konvertieren.
  • Eine Variable Rate Sample Rate Conversion (SRC) konvertiert die Quellaudiodaten der Stimme bei Bedarf in die von den Zielstimmstimden erwartete Abtastrate und unterstützt auch dynamische Tonhöhenänderungen.
  • Ein optionaler Zustandsvariablenfilter kann verwendet werden, um den Sound auf verschiedene Weise zu färben. Siehe IXAudio2Voice::SetFilterParameters.
  • Ein optionaler Filter kann auf die Ausgaben der Stimme angewendet werden. Siehe IXAudio2Voice::SetOutputFilterParameters.

Submix-Stimmen

Eine Submixstimme wird in erster Linie für Leistungsverbesserungen und die Verarbeitung von Effekten verwendet. Datenpuffer können nicht direkt an Submix-Stimmen übermittelt werden. Es ist nur hörbar, wenn Sie es an eine Masterstimme übermitteln. Sie können eine Submixstimme verwenden, um sicherzustellen, dass ein bestimmter Satz von Sprachdaten in dasselbe Format konvertiert wird und dass eine bestimmte Effektkette für das kollektive Ergebnis verarbeitet wird.

Zusätzlich zu den Aktionen, die von allen Stimmen ausgeführt werden, führen Submixstimmstimden die folgenden Aktionen aus.

  • Ein SRC mit fester Rate wird bei Bedarf auf der Ausgabe der Stimme ausgeführt, um die Audiodaten in die von den Zielstimmstimden erwartete Abtastrate zu konvertieren.
  • Ein optionaler Zustandsvariablenfilter kann verwendet werden, um den Sound auf verschiedene Weise zu färben. Siehe IXAudio2Voice::SetFilterParameters.
  • Ein optionaler Filter kann auf die Ausgaben der Stimme angewendet werden. Siehe IXAudio2Voice::SetOutputFilterParameters.

Mastering Voices

Verwenden Sie eine Masterstimme, um das Audioausgabegerät darzustellen. Sie können Datenpuffer nicht direkt an Masterstimmen übermitteln, aber Daten, die an andere Arten von Stimmen übermittelt werden, müssen an eine Masterstimme gesendet werden, um gehört zu werden.

Zusätzlich zu den Aktionen, die von allen Stimmen ausgeführt werden, führen Mastering-Stimmen die folgenden Aktionen aus.

  • Wenn Sie die Masterstimme mit einem expliziten InputSampleRate-Wert erstellen, der vom Audiogerät nicht unterstützt wird, wird ein SRC mit fester Rate verwendet, um in die nächste vom Gerät unterstützte Abtastrate zu konvertieren.
  • Clip the final output audio, if it is required by the output device.

Stimmen

XAudio2-Programmieranleitung

IXAudio2SourceVoice

IXAudio2SubmixVoice

IXAudio2MasteringVoice