Поделиться через


Речь в XAudio2

Существует три типа голосовых объектов XAudio2: исходные, субмикшируемые и мастеринговые . Исходные голосовые объекты берутся из звуковых данных, предоставленных клиентом. Данные исходных и комбинированных голосов используются для получения одного или более комбинированных или обработанных голосов. Комбинированные и обработанные голоса смешивают звуковые сигналы из всех голосов, чьи данные они получают, и работают с итоговым звуком. Обработанные голоса записываются в виде звуковых данных на аудиоустройство.

Действия, выполняемые всеми голосами

Все голоса выполняют следующие действия по порядку для звука, который проходит через них.

  1. Общая регулировка громкости, затрагивающая все звуковые каналы. См. раздел IXAudio2Voice::SetVolume.
  2. Необязательная цепочка, определяемая клиентом, из одного или нескольких эффектов DSP, например встроенной реверберации или пользовательского эффекта, определенного интерфейсом IXAPO . См. раздел Аудиоэффекты XAudio2.
  3. Настройка объема выходных данных по каналу. См. раздел IXAudio2Voice::SetChannelVolumes.
  4. Отдельные матричные сочетания с каждым из целевых голосов или с устройством вывода звука для овладения голосами. При необходимости этот микс изменяет количество каналов в аудио.

Исходные голоса

Используйте исходные голоса для отправки звуковых данных в конвейер обработки XAudio2. Они являются точками входа в аудио граф XAudio2. Вы должны отправлять голосовые данные в голос хозяина, чтобы быть услышанным напрямую или через промежуточные голоса субмикширования.

Помимо действий, выполняемых всеми голосами, исходные голоса выполняют следующие действия.

  • При необходимости сначала запускается декодер для преобразования закодированных исходных данных в пульсовую модуляцию кода (PCM).
  • Преобразование частоты выборки с переменной частотой (SRC) преобразует исходные звуковые данные голоса в частоту выборки, ожидаемую целевыми голосами, если это необходимо, а также поддерживает динамические изменения тона.
  • Необязательный фильтр с переменной состояния можно использовать для цвета звука различными способами. См. раздел IXAudio2Voice::SetFilterParameters.
  • К выходным данным голоса можно применить необязательный фильтр. См. раздел IXAudio2Voice::SetOutputFilterParameters.

Субмикшные голоса

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

В дополнение к действиям, выполняемым всеми голосами, голоса субмикширования выполняют следующие действия.

  • При необходимости на выходных данных голоса выполняется SRC с фиксированной частотой, чтобы преобразовать звук в частоту выборки, ожидаемую для голосов назначения.
  • Необязательный фильтр с переменной состояния можно использовать для цвета звука различными способами. См. раздел IXAudio2Voice::SetFilterParameters.
  • К выходным данным голоса можно применить необязательный фильтр. См. раздел IXAudio2Voice::SetOutputFilterParameters.

Мастеринг голосов

Используйте мастеринг-голос для представления устройства вывода звука. Вы не можете отправлять буферы данных напрямую в голосовые голоса, но данные, отправляемые в другие типы голосов, должны передаваться в мастеринговой голос, чтобы быть услышанным.

В дополнение к действиям, выполняемым всеми голосами, голосовые команды для овладения выполняют следующие действия.

  • Если вы создаете мастеринговый голос с явным значением InputSampleRate , которое не поддерживается звуковым устройством, для преобразования в ближайшую частоту выборки, поддерживаемую устройством, используется SRC с фиксированной частотой.
  • Закрепите окончательный выходной звук, если это требуется выходному устройству.

Голоса

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

IXAudio2SourceVoice

IXAudio2SubmixVoice

IXAudio2MasteringVoice