Compartilhar via


Conversões de taxa de exemplo XAudio2

As vozes XAudio2 poderão executar conversões automáticas de taxa de exemplo se a taxa de amostra de entrada for diferente da taxa de exemplo de entrada de suas vozes de saída.

As conversões de taxa de exemplo seguem estas regras:

  • A taxa de exemplo de entrada de voz é fixa.

    As vozes só podem lidar com a taxa de exemplo de entrada especificada quando foram criadas. Para vozes de masterização e vozes de submixagem, a taxa de exemplo de entrada é especificada com o argumento InputSampleRate para as funções IXAudio2::CreateMasteringVoice e IXAudio2::CreateSubmixVoice . Para vozes de origem, a taxa de exemplo de entrada da voz é especificada pelo argumento pSourceFormat para a função IXAudio2::CreateSourceVoice .

  • Todas as vozes de saída de uma voz devem ter a mesma taxa de exemplo de entrada.

    As vozes podem converter de sua taxa de exemplo de entrada para qualquer taxa de exemplo de saída, mas todas as vozes de saída da voz devem ter a mesma taxa de exemplo de entrada. Por exemplo, uma voz pode gerar qualquer número de vozes com uma taxa de exemplo de entrada de 22 kHz. No entanto, se essa mesma voz tivesse várias vozes de saída, cada uma com uma taxa de exemplo de entrada diferente, o grafo de áudio não seria válido.

  • O processamento de conversão de taxa de exemplo só ocorre quando necessário.

    Converter dados de áudio em uma taxa de exemplo diferente gera mais sobrecarga de processamento, o que é preferível evitar. Se a taxa de exemplo de entrada de uma voz corresponder à taxa de exemplo de entrada de suas vozes de saída, essa conversão não será feita e o tempo de processamento será reduzido.

  • A taxa de exemplo de saída pode variar ao longo da vida útil de uma voz.

    A taxa de exemplo de saída de uma voz não é fixa. Desde que todas as suas vozes de saída tenham a mesma taxa de exemplo de entrada, o grafo de áudio será válido. Se uma voz for alterada para saída para novas vozes com uma taxa de exemplo de entrada diferente, a voz será convertida para a taxa de exemplo de entrada das novas vozes.

Há alguns cenários em que é necessário adicionar uma voz de submixagem para executar a conversão de taxa de exemplo entre vozes. Se uma voz precisar gerar para vozes com várias taxas de exemplo de entrada, apenas uma das vozes poderá ser uma saída direta da voz original. Como todas as vozes de saída de uma voz devem ter a mesma taxa de exemplo de entrada, as outras vozes recebem a saída indiretamente. Deve haver uma voz de submixagem com a taxa de exemplo de entrada correta que vem entre a voz original e a voz de saída pretendida.

Por exemplo, considere uma voz de origem com uma taxa de exemplo de entrada de 22 kHz, que precisa gerar para uma voz de submixagem com uma taxa de exemplo de entrada de 11 kHz e uma voz de masterização com uma taxa de exemplo de entrada de 44,1 kHz. Como as duas vozes de saída têm taxas de exemplo de entrada diferentes, você precisa inserir mais vozes de submixe entre a voz original e suas vozes de saída pretendidas. Para manter a fidelidade da voz de origem e evitar conversões dispendiosas desnecessárias em taxas de exemplo mais altas, você precisa inserir duas vozes de submixagem com taxas de entrada de exemplo de 22 khz no grafo. Uma voz de submixagem produziria a 11 khz para a voz submix com o efeito reverb, e a outra voz de submixagem produziria para a voz mestrando a 44,1 khz.

Exemplos de conversão de taxa de exemplo em grafos de áudio

Todas as vozes têm a mesma taxa de entrada de exemplo; nenhuma conversão de taxa de exemplo é feita no grafo de áudio. nenhuma conversão de taxa de exemplo é feita no grafo de áudio.

Todas as vozes têm a mesma taxa de entrada de exemplo, exceto a voz de domínio; A conversão de taxa de amostra só é executada em dados que vão para a voz de masterização. A conversão de taxa de amostra só é executada em dados que vão para a voz de masterização.

As vozes têm taxas de entrada de exemplo diferentes e exigem mais vozes de submixagem para executar conversões de taxa de exemplo; A conversão de taxa de amostra é executada em vários locais no grafo de áudio. A conversão de taxa de amostra é executada em vários locais no grafo de áudio.

Vozes

Guia de Programação em XAudio2