Condividi tramite


Conversioni della frequenza di campionamento di XAudio2

Le voci XAudio2 possono eseguire conversioni automatiche della frequenza di campionamento se la frequenza di campionamento di input è diversa dalla frequenza di campionamento di input delle voci di output.

Le conversioni di frequenza di campionamento seguono queste regole:

  • La frequenza di campionamento dell'input vocale è fissa.

    Le voci possono gestire solo la frequenza di campionamento di input specificata al momento della creazione. Per voci mastering e voci di submix, la frequenza di campionamento di input viene specificata con l'argomento InputSampleRate alle funzioni IXAudio2::CreateMasteringVoice e IXAudio2::CreateSubmixVoice. Per le voci di origine, la frequenza di campionamento di input della voce viene specificata dall'argomento pSourceFormat per la funzione IXAudio2::CreateSourceVoice.

  • Tutte le voci di output di una voce devono avere la stessa frequenza di campionamento di input.

    Le voci possono eseguire la conversione dalla frequenza di campionamento di input a qualsiasi frequenza di campionamento di output, ma tutte le voci di output della voce devono avere la stessa frequenza di campionamento di input. Ad esempio, una voce potrebbe restituire un numero qualsiasi di voci con una frequenza di campionamento di input di 22 kHz. Tuttavia, se la stessa voce aveva più voci di output, ognuna delle quali aveva una frequenza di campionamento di input diversa, il grafico audio non sarebbe valido.

  • L'elaborazione della conversione della frequenza di campionamento si verifica solo quando necessario.

    La conversione dei dati audio in una frequenza di campionamento diversa comporta un sovraccarico di elaborazione maggiore, che è preferibile evitare. Se la frequenza di campionamento di input di una voce corrisponde alla frequenza di campionamento di input delle voci di output, questa conversione non viene eseguita e il tempo di elaborazione viene abbreviato.

  • La frequenza di campionamento di output può variare in base alla durata di una voce.

    La frequenza di campionamento di output di una voce non è fissa. Finché tutte le voci di output hanno la stessa frequenza di campionamento di input, il grafico audio sarà valido. Se una voce viene modificata in output in nuove voci con una frequenza di campionamento di input diversa, la voce verrà convertita nella frequenza di campionamento di input delle nuove voci.

Esistono alcuni scenari in cui è necessario aggiungere una voce submix per eseguire la conversione della frequenza di campionamento tra voci. Se una voce deve restituire voci con varie frequenze di campionamento di input, solo una delle voci può essere un output diretto della voce originale. Poiché tutte le voci di output di una voce devono avere la stessa frequenza di campionamento di input, le altre voci ricevono indirettamente l'output. Deve essere presente una voce di submix con la frequenza di campionamento di input corretta che si verifica tra la voce originale e la voce di output desiderata.

Si consideri, ad esempio, una voce di origine con una frequenza di campionamento di input di 22 kHz, che deve restituire una voce di submix con una frequenza di campionamento di input di 11 kHz e una voce mastering con una frequenza di campionamento di input di 44,1 kHz. Poiché le due voci di output hanno frequenze di campionamento di input diverse, è necessario inserire più voci di submix tra la voce originale e le voci di output desiderate. Per mantenere la fedeltà della voce di origine ed evitare conversioni dispendiose inutili a frequenze di campionamento più elevate, è necessario inserire due voci di submix con frequenze di input di campionamento di 22 khz nel grafico. Una voce submix restituisce una voce da 11 khz alla voce submix con l'effetto riverbero e l'altra voce submix restituisce la voce mastering a 44,1 khz.

Esempi di conversione della frequenza di campionamento in grafici audio

Tutte le voci hanno la stessa frequenza di input di esempio; nessuna conversione della frequenza di campionamento viene eseguita nel grafico audio.non viene eseguita alcuna conversione della frequenza di campionamento nel grafico audio.

Tutte le voci hanno la stessa frequenza di input di esempio ad eccezione della voce mastering; la conversione della frequenza di campionamento viene eseguita solo sui dati che passano alla voce mastering. la conversione della frequenza di campionamento viene eseguita solo sui dati che passano alla voce mastering.

Le voci hanno frequenze di input di esempio diverse e richiedono più voci di submix per eseguire conversioni di frequenza di campionamento; la conversione della frequenza di campionamento viene eseguita in più posizioni nel grafico audio. conversione della frequenza di campionamento viene eseguita in più posizioni nel grafico audio.

voci

guida alla programmazione XAudio2