XAudio2-Stimmen
Es gibt drei Arten von XAudio2-Stimmobjekten: Quell-, Submix- und Masteringstimmen. 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 der Audiodaten aus, die sie durchziehen.
- Allgemeine Volumeanpassung, die sich auf alle Audiokanäle auswirkt. Siehe IXAudio2Voice::SetVolume.
- Eine optionale vom Client angegebene Kette von einem oder mehreren DSP-Effekten, z. B. dem integrierten Hall oder einem benutzerdefinierten Effekt, der von der IXAPO-Schnittstelle definiert wird. Weitere Informationen finden Sie unter XAudio2-Audioeffekte.
- Anpassung des Ausgabevolumes pro Kanal. Siehe IXAudio2Voice::SetChannelVolumes.
- Trennen Sie die Matrixmischung mit jeder der Zielstimmen oder mit dem Audioausgabegerät, um Stimmen zu mastern. Diese Mischung ändert bei Bedarf die Anzahl der Kanäle in der Audiodatei.
Quellstimmen
Verwenden Sie Quellstimmen, 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 Quellstimmen die folgenden Aktionen aus.
- Bei Bedarf wird zuerst ein Decoder ausgeführt, um codierte Quelldaten in Pulse Code Pulse (PCM) zu konvertieren.
- Eine Konvertierung der Abtastrate mit variabler Rate (Variable Rate Sample Rate Conversion, SRC) konvertiert die Quellaudiodaten der Stimme ggf. in die von den Zielstimmen erwartete Abtastrate und unterstützt auch dynamische Tonhöhenänderungen.
- Ein optionaler Zustandsvariablenfilter kann verwendet werden, um den Sound auf verschiedene Weise zu farblich zu gestalten. Siehe IXAudio2Voice::SetFilterParameters.
- Ein optionaler Filter kann auf die Ausgaben der Stimme angewendet werden. Siehe IXAudio2Voice::SetOutputFilterParameters.
Submix-Stimmen
Eine Submixstimme wird hauptsächlich für Leistungsverbesserungen und Effekte verwendet. Datenpuffer können nicht direkt an Submix-Stimmen übermittelt werden. Sie ist nur hörbar, wenn Sie sie an eine Masteringstimme übermitteln. Sie können eine Submix-Stimme verwenden, um sicherzustellen, dass ein bestimmter Satz von Stimmendaten in das gleiche Format konvertiert wird und eine bestimmte Effektkette für das gesamte Ergebnis verarbeitet wird.
Zusätzlich zu den Aktionen, die von allen Stimmen ausgeführt werden, führen Submix-Stimmen die folgenden Aktionen aus.
- Ein SRC mit festem Prozentsatz wird bei Bedarf für die Ausgabe der Stimme ausgeführt, um die Audiodaten in die von den Zielstimmen erwartete Abtastrate zu konvertieren.
- Ein optionaler Zustandsvariablenfilter kann verwendet werden, um den Sound auf verschiedene Weise zu farblich zu gestalten. Siehe IXAudio2Voice::SetFilterParameters.
- Ein optionaler Filter kann auf die Ausgaben der Stimme angewendet werden. Siehe IXAudio2Voice::SetOutputFilterParameters.
Mastering Voices
Verwenden Sie eine Masteringstimme, um das Audioausgabegerät darzustellen. Sie können Datenpuffer nicht direkt an mastering-Stimmen ü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 Masteringstimme mit einem expliziten InputSampleRate-Wert erstellen, der vom Audiogerät nicht unterstützt wird, wird ein SRC mit festem Prozentsatz verwendet, um in die nächste abtastrate zu konvertieren, die vom Gerät unterstützt wird.
- Beschneiden Sie die endgültige Ausgabeaudiodatei, wenn sie vom Ausgabegerät benötigt wird.