Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Конвейер на основе DSP по умолчанию (AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT) в Microsoft Audio Stack использует традиционные алгоритмы цифровой обработки сигналов для улучшения входного звука. Общие сведения о сравнении доступных конвейеров см. в обзоре обработки звука . Сведения о моделировании подавления эха см. в разделе Модельное подавление эха с использованием аудиостека Microsoft.
Усовершенствования DSP
Конвейер на основе DSP обеспечивает следующие улучшения входного звукового сигнала:
- Формирование луча — локализует источник звука и оптимизирует аудиосигнал с помощью нескольких микрофонов.
- Подавление реверберации — уменьшает отражения звука от поверхностей в окружении.
- Подавление эха — подавляет воспроизведение звука устройством во время передачи данных с микрофона.
- Автоматическая регулировка усиления — динамически настраивает уровень голоса человека для учета тихих говорящих, больших расстояний или некалиброванных микрофонов.
- Подавление шума — уменьшает уровень фонового шума. Требуются массивы микрофонов для оптимальной производительности. Эффект минимален с одним микрофоном или при низком соотношении сигнал/шум (SNR).
В различных сценариях и вариантах использования требуются разные варианты оптимизации, влияющие на поведение стека обработки звука. Например, в сценариях телекоммуникаций, таких как телефонные звонки, можно иметь незначительные искажения в звуковом сигнале после применения обработки. Это связано с тем, что люди по-прежнему будут понимать речь с высокой степенью точности. Тем не менее, для человека неприемлемо и разрушительно, когда он слышит свой собственный голос в режиме эха. Это контрастирует с сценариями обработки речи, где искаженный звук может негативно повлиять на точность модели распознавания речи машинного обучения, но это приемлемо для незначительных уровней остаточного эха.
Ключевые особенности
Конвейер, основанный на DSP, поддерживает следующие функции через Speech SDK.
- Выбор усовершенствований. Чтобы разрешить полный контроль над сценарием, пакет SDK позволяет отключить отдельные улучшения, такие как автоматический контроль усиления и подавление реверберации, шума или эха. Например, если ваш сценарий не включает необходимость обработки выходного звука, который должен быть исключен из входного, у вас есть возможность отключить акустическую эхокомпенсацию.
- Пользовательские схемы размещения микрофонов. Пакет SDK позволяет предоставлять собственные сведения о схеме размещения микрофонов, а также поддерживать готовые схемы размещения, такие как два или четыре микрофона, выстроенных в линию, или семь микрофонов, размещенных по кругу. Дополнительные сведения о поддерживаемых готовых схемах размещения см. в статье Рекомендации по использованию массива микрофонов.
- Углы формирования луча — можно указать определенные углы формирования луча по отношению к микрофонам, чтобы оптимизировать ввод аудиоданных из предопределенного расположения.
Входные параметры
Для конвейера на основе DSP требуются следующие входные параметры:
- Raw audio - Microsoft Audio Stack требует необработанного (необработанного) звука в качестве входных данных для получения наилучших результатов.
- Геометрии микрофона — данные геометрии каждого микрофона на устройстве необходимы для правильного выполнения всех улучшений. К ним относится количество микрофонов, их физическое расположение и координаты. Поддерживается до 16 входных каналов микрофона.
- Циклический или эталонный звук — аудиоканал, представляющий звук, который воспроизводится на устройстве, необходим для подавления эха.
- Формат входных данных — поддерживает понижение дискретизации для частот дискретизации, которые являются целыми кратными 16 кГц. Требуется минимальная частота дискретизации, равная 16 кГц.
Примеры кода
В следующих примерах показано, как использовать конвейер на основе DSP с различными конфигурациями.
Параметры по умолчанию
В этом примере показано, как использовать MAS со всеми параметрами расширения по умолчанию для входных данных с микрофона устройства, используемого по умолчанию.
var speechConfig = SpeechConfig.FromEndpoint(new Uri("YourSpeechEndpoint"), "YourSpeechKey");
var audioProcessingOptions = AudioProcessingOptions.Create(AudioProcessingConstants.AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT);
var audioInput = AudioConfig.FromDefaultMicrophoneInput(audioProcessingOptions);
var recognizer = new SpeechRecognizer(speechConfig, audioInput);
Предустановка геометрии микрофонов
В этом примере показано, как использовать MAS с предопределенной геометрией микрофонов на заданном входном аудиоустройстве. В этом примере:
- Параметры расширения. К входному аудиопотоку применяются расширения по умолчанию.
- Предустановленная геометрия. Предустановленная геометрия представляет собой линейный набор из двух микрофонов.
-
Входное аудиоустройство ввода. Идентификатором входного аудиоустройства является
hw:0,1. Дополнительные сведения о том, как выбрать входное аудиоустройство, приведены в разделе Как выбрать входное аудиоустройство с помощью пакета SDK службы "Речь".
var speechConfig = SpeechConfig.FromEndpoint(new Uri("YourSpeechEndpoint"), "YourSpeechKey");
var audioProcessingOptions = AudioProcessingOptions.Create(AudioProcessingConstants.AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT, PresetMicrophoneArrayGeometry.Linear2);
var audioInput = AudioConfig.FromMicrophoneInput("hw:0,1", audioProcessingOptions);
var recognizer = new SpeechRecognizer(speechConfig, audioInput);
Пользовательская геометрия микрофона
В этом примере показано, как использовать MAS с пользовательской геометрией микрофонов на заданном входном аудиоустройстве. В этом примере:
- Параметры расширения. К входному аудиопотоку применяются расширения по умолчанию.
- Пользовательская геометрия - Пользовательская конфигурация микрофонов для массива из 7 микрофонов предоставляется через их координаты. Единицы координат — миллиметры.
- Входные аудиоданные. Входные аудиоданные поступают из файла, где получение аудио в рамках файла ожидается с входного аудиоустройства, соответствующего указанной пользовательской геометрии.
var speechConfig = SpeechConfig.FromEndpoint(new Uri("YourSpeechEndpoint"), "YourSpeechKey");
MicrophoneCoordinates[] microphoneCoordinates = new MicrophoneCoordinates[7]
{
new MicrophoneCoordinates(0, 0, 0),
new MicrophoneCoordinates(40, 0, 0),
new MicrophoneCoordinates(20, -35, 0),
new MicrophoneCoordinates(-20, -35, 0),
new MicrophoneCoordinates(-40, 0, 0),
new MicrophoneCoordinates(-20, 35, 0),
new MicrophoneCoordinates(20, 35, 0)
};
var microphoneArrayGeometry = new MicrophoneArrayGeometry(MicrophoneArrayType.Planar, microphoneCoordinates);
var audioProcessingOptions = AudioProcessingOptions.Create(AudioProcessingConstants.AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT, microphoneArrayGeometry, SpeakerReferenceChannel.LastChannel);
var audioInput = AudioConfig.FromWavFileInput("katiesteve.wav", audioProcessingOptions);
var recognizer = new SpeechRecognizer(speechConfig, audioInput);
Выбор расширений
В этом примере показано, как использовать MAS с пользовательским набором улучшений на входном аудио. По умолчанию все расширения включены, но существуют параметры для отключения подавления реверберации, подавления шума, автоматического контроля усиления и компенсации эхо-сигналов по отдельности с помощью AudioProcessingOptions.
В этом примере:
- Варианты улучшения: отмена эха и подавление шума отключены, а все остальные улучшения остаются включенными.
- Входное аудиоустройство. Входным аудиоустройством является используемый по умолчанию микрофон устройства.
var speechConfig = SpeechConfig.FromEndpoint(new Uri("YourSpeechEndpoint"), "YourSpeechKey");
var audioProcessingOptions = AudioProcessingOptions.Create(AudioProcessingConstants.AUDIO_INPUT_PROCESSING_DISABLE_ECHO_CANCELLATION | AudioProcessingConstants.AUDIO_INPUT_PROCESSING_DISABLE_NOISE_SUPPRESSION | AudioProcessingConstants.AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT);
var audioInput = AudioConfig.FromDefaultMicrophoneInput(audioProcessingOptions);
var recognizer = new SpeechRecognizer(speechConfig, audioInput);
Укажите углы формирования луча
В этом примере показано, как использовать MAS с пользовательской геометрией микрофонов и углами формирования луча на заданном входном аудиоустройстве. В этом примере:
- Параметры расширения. К входному аудиопотоку применяются расширения по умолчанию.
- Пользовательская геометрия. Пользовательская геометрия микрофонов для набора из 4 микрофонов предоставляется путем указания координат микрофона. Единицы координат — миллиметры.
- Углы формирования луча. Углы формирования луча указаны для оптимизации звука, возникающего в этом диапазоне. Единицы измерения углов — градусы.
- Входные аудиоданные. Входные аудиоданные поступают из потока отправки, где получение аудио в рамках потока ожидается с входного аудиоустройства, соответствующего указанной пользовательской геометрии.
В следующем примере кода для угла начала задано значение 70 градусов, а конечный угол имеет значение 110 градусов.
var speechConfig = SpeechConfig.FromEndpoint(new Uri("YourSpeechEndpoint"), "YourSpeechKey");
MicrophoneCoordinates[] microphoneCoordinates = new MicrophoneCoordinates[4]
{
new MicrophoneCoordinates(-60, 0, 0),
new MicrophoneCoordinates(-20, 0, 0),
new MicrophoneCoordinates(20, 0, 0),
new MicrophoneCoordinates(60, 0, 0)
};
var microphoneArrayGeometry = new MicrophoneArrayGeometry(MicrophoneArrayType.Linear, 70, 110, microphoneCoordinates);
var audioProcessingOptions = AudioProcessingOptions.Create(AudioProcessingConstants.AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT, microphoneArrayGeometry, SpeakerReferenceChannel.LastChannel);
var pushStream = AudioInputStream.CreatePushStream();
var audioInput = AudioConfig.FromStreamInput(pushStream, audioProcessingOptions);
var recognizer = new SpeechRecognizer(speechConfig, audioInput);
Опорный канал для подавления эха
Microsoft Звуковой стек требует, чтобы эталонный канал (также известный как канал обратного цикла) выполнял отмену эха. Источник опорного канала зависит от платформы:
-
Windows — эталонный канал автоматически собирается Speech SDK, если параметр
SpeakerReferenceChannel::LastChannelпредоставляется при созданииAudioProcessingOptions. -
Linux. Должна быть настроена расширенная звуковая архитектура Linux (ALSA) для предоставления опорного звукового потока в качестве последнего канала для используемого входного аудиоустройства. ALSA настраивается дополнительно к предоставлению
SpeakerReferenceChannel::LastChannelпараметра при созданииAudioProcessingOptions.
Поддержка языков и платформ.
| Язык | Платформа | Справочная документация |
|---|---|---|
| C++ | Windows, Linux | Документация C++ |
| C# | Windows, Linux | Документация C# |
| Java | Windows, Linux | Java документация |