Compartilhar via


Vozes XAudio2

Há três tipos de objetos de voz XAudio2: origem, submix e vozes de domínio . As vozes de origem operam em dados de áudio fornecidos pelo cliente. As vozes de origem e submixagem enviam sua saída para uma ou mais vozes de submixagem ou masterização. As vozes de submixagem e masterização combinam o áudio de todas as vozes que as alimentam e operam no resultado. As vozes de masterização gravam dados de áudio em um dispositivo de áudio.

Ações executadas por Todas as Vozes

Todas as vozes executam as seguintes ações em ordem no áudio que viaja por elas.

  1. Ajuste geral do volume, afetando todos os canais de áudio. Consulte IXAudio2Voice::SetVolume.
  2. Uma cadeia opcional especificada pelo cliente de um ou mais efeitos DSP, como o reverb interno ou um efeito de usuário definido pela interface IXAPO . Consulte efeitos de áudio XAudio2.
  3. Ajuste de volume de saída por canal. Consulte IXAudio2Voice::SetChannelVolumes.
  4. Separar a combinação de matriz para cada uma das vozes de destino ou para o dispositivo de saída de áudio para dominar vozes. Essa combinação altera o número de canais no áudio, se necessário.

Vozes de origem

Use vozes de origem para enviar dados de áudio para o pipeline de processamento XAudio2. Eles são os pontos de entrada na Graph de Áudio XAudio2. Você deve enviar dados de voz para uma voz de domínio a ser ouvida, diretamente ou por meio de vozes de submix intermediário.

Além das ações executadas por todas as vozes, as vozes de origem executam as ações a seguir.

  • Se necessário, um decodificador é executado primeiro para converter dados de origem codificados em PCM (Pulse Code Modulation).
  • Uma conversão de taxa de exemplo de taxa variável (SRC) converte os dados de áudio de origem da voz na taxa de exemplo esperada por suas vozes de destino, se necessário, e também dá suporte a alterações dinâmicas de tom.
  • Um filtro de variável de estado opcional pode ser usado para colorir o som de várias maneiras. Consulte IXAudio2Voice::SetFilterParameters.
  • Um filtro opcional pode ser aplicado às saídas da voz. Consulte IXAudio2Voice::SetOutputFilterParameters.

Submix Voices

Uma voz submix é usada principalmente para melhorias de desempenho e processamento de efeitos. Você não pode enviar buffers de dados diretamente para vozes submix. Ele não será audível, a menos que você o envie para uma voz de domínio. Você pode usar uma voz submix para garantir que um determinado conjunto de dados de voz seja convertido no mesmo formato e para ter uma cadeia de efeitos específica processada no resultado coletivo.

Além das ações executadas por todas as vozes, as vozes de submixagem executam as seguintes ações.

  • Um SRC de taxa fixa é executado na saída da voz, se necessário, para converter o áudio na taxa de exemplo esperada por suas vozes de destino.
  • Um filtro de variável de estado opcional pode ser usado para colorir o som de várias maneiras. Consulte IXAudio2Voice::SetFilterParameters.
  • Um filtro opcional pode ser aplicado às saídas da voz. Consulte IXAudio2Voice::SetOutputFilterParameters.

Mastering Voices

Use uma voz de domínio para representar o dispositivo de saída de áudio. Você não pode enviar buffers de dados diretamente para o domínio de vozes, mas os dados enviados para outros tipos de vozes devem ir para uma voz de domínio para serem ouvidos.

Além das ações executadas por todas as vozes, as vozes de domínio executam as ações a seguir.

  • Se você criar a voz de domínio com um valor de InputSampleRate explícito que não tem suporte no dispositivo de áudio, um SRC de taxa fixa será usado para converter para a taxa de exemplo mais próxima com suporte do dispositivo.
  • Recortar o áudio de saída final, se ele for exigido pelo dispositivo de saída.

Vozes

Guia de Programação em XAudio2

IXAudio2SourceVoice

IXAudio2SubmixVoice

IXAudio2MasteringVoice