Преобразования частоты выборки XAudio2

Голоса XAudio2 могут выполнять автоматические преобразования частоты выборки, если частота входной выборки отличается от частоты входной выборки их выходных голосов.

Преобразования частоты выборки следуют следующим правилам:

  • Частота выборки голосового ввода фиксирована.

    Голоса могут обрабатывать только частоту выборки входных данных, указанную при создании. Для управления голосами и голосами субмикширования частота входной выборки указывается с помощью аргумента InputSampleRate для функций IXAudio2::CreateMasteringVoice и IXAudio2::CreateSubmixVoice . Для исходных голосов частота выборки входных данных голоса задается аргументом pSourceFormat для функции IXAudio2::CreateSourceVoice .

  • Все голосовые голоса должны иметь одинаковую частоту выборки входных данных.

    Голоса могут преобразовывать входную частоту выборки в любую выходную частоту выборки, но все голосовые голоса должны иметь одинаковую частоту выборки. Например, голос может выводиться на любое количество голосов с частотой входной выборки 22 кГц. Однако если бы один и тот же голос имел несколько выходных голосов, каждый из которых имел разную частоту выборки входных данных, звуковой граф был бы недопустимым.

  • Обработка преобразования частоты выборки происходит только при необходимости.

    Преобразование звуковых данных в другую частоту выборки приводит к дополнительным издержкам на обработку, которых рекомендуется избегать. Если частота выборки входных данных голоса совпадает с частотой входной выборки его выходных голосов, это преобразование не выполняется и время обработки сокращается.

  • Частота выборки выходных данных может меняться в течение всего времени существования голоса.

    Частота выборки выходных данных голоса не фиксирована. Если все выходные голоса имеют одинаковую частоту выборки входных данных, звуковой граф будет допустимым. Если голос изменяется для вывода на новые голоса с другой частотой выборки ввода, голос преобразуется в частоту выборки новых голосов.

Существует несколько сценариев, в которых для преобразования частоты выборки между голосами необходимо добавить голос субмикса. Если голос должен выводиться на голоса с различными частотами выборки ввода, только один из голосов может быть прямым выходом исходного голоса. Так как все выходные голоса голоса должны иметь одинаковую частоту выборки входных данных, другие голоса получают выходные данные косвенно. Должен быть подмикксный голос с правильной частотой выборки входных данных, которая поступает между исходным и предполагаемым голосом вывода.

Например, рассмотрим исходный голос с частотой входной выборки 22 кГц, который должен выводиться в субмикшный голос с частотой входной выборки 11 кГц и голосом для управления с частотой входной выборки 44,1 кГц. Так как два выходных голоса имеют разную частоту выборки входных данных, необходимо вставить больше тембров субмиксов между исходным голосом и его предполагаемыми выходными голосами. Чтобы сохранить точность исходного голоса и избежать ненужных дорогостоящих преобразований с более высокой частотой выборки, необходимо вставить в граф два голоса субмикшмента с частотой ввода выборки 22 кГц. Один голос субмикширования будет выводить с частотой 11 кГц в голос субмикса с эффектом реверберации, а другой голос субмикширования будет выводиться в мастеринг с частотой 44,1 кГц.

Примеры преобразования частоты выборки в звуковых графах

Все голоса имеют одинаковую частоту ввода выборки; В звуковом графе не выполняется преобразование частоты выборки. В звуковом графе не выполняется преобразование частоты выборки.

Все голоса имеют одинаковую частоту ввода выборки, за исключением голоса mastering; Преобразование частоты выборки выполняется только для данных, передаваемых в мастеринг. Преобразование частоты выборки выполняется только для данных, передаваемых в мастеринг.

Голоса имеют разные частоты ввода выборки и требуют большего числа тембров для преобразования частоты выборки; Преобразование частоты выборки выполняется в нескольких местах звукового графа. Преобразование частоты выборки выполняется в нескольких местах звукового графа.

Голоса

Руководство по программированию для XAudio2