Movatterモバイル変換


[0]ホーム

URL:


RU2844891C1 - Deep learning based speech enhancement - Google Patents

Deep learning based speech enhancement

Info

Publication number
RU2844891C1
RU2844891C1RU2023113685ARU2023113685ARU2844891C1RU 2844891 C1RU2844891 C1RU 2844891C1RU 2023113685 ARU2023113685 ARU 2023113685ARU 2023113685 ARU2023113685 ARU 2023113685ARU 2844891 C1RU2844891 C1RU 2844891C1
Authority
RU
Russia
Prior art keywords
sequence
block
speech
data
audio data
Prior art date
Application number
RU2023113685A
Other languages
Russian (ru)
Inventor
Сяоюй Лю
Майкл Гетти ХОРГАН
Рой М. ФЕЙГИН
Пол ХОЛМБЕРГ
Original Assignee
Долби Лэборетериз Лайсенсинг Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Долби Лэборетериз Лайсенсинг КорпорейшнfiledCriticalДолби Лэборетериз Лайсенсинг Корпорейшн
Application grantedgrantedCritical
Publication of RU2844891C1publicationCriticalpatent/RU2844891C1/en

Links

Abstract

FIELD: physics.
SUBSTANCE: invention relates to computer engineering for processing audio data. Technical result is achieved by the steps of: receiving, by a processor, audio input data covering a plurality of frequency bands along a frequency dimension in a plurality of frames along a temporal dimension; by means of the processor training the neural network model using the input audio data; receiving new audio data comprising one or more frames; performing a neural network model on said new audio data to generate new speech values for each frequency band from the plurality of frequency bands in each frame from one or more frames; generating new output data which suppress noise in new audio data based on said new speech values; and transmitting said new output data.
EFFECT: high accuracy of removing noise from a composite speech signal.
19 cl, 10 dwg

Description

Translated fromRussian

Перекрестные ссылки на родственные заявкиCross-references to related applications

[0001] Данная заявка притязает на приоритет предварительной заявки на патент (США) номер 63/115213, поданной 18 ноября 2020 года, предварительной заявки на патент (США) номер 63/221629, поданной 14 июля 2021 года, и международной заявки на патент номер PCT/CN2020/124635, поданной 29 октября 2020 года, все из которых полностью содержатся в данном документе по ссылке.[0001] This application claims priority to U.S. Provisional Patent Application No. 63/115,213, filed November 18, 2020, U.S. Provisional Patent Application No. 63/221,629, filed July 14, 2021, and International Patent Application No. PCT/CN2020/124635, filed October 29, 2020, all of which are incorporated herein by reference in their entirety.

Область техники, к которой относится изобретениеField of technology to which the invention relates

[0002] Настоящая заявка относится к уменьшению уровня шума из речи. Более конкретно, примерный вариант(ы) осуществления, описанный ниже, относится к применению моделей глубокого обучения для того, чтобы формировать логический вывод на основе кадров из большого речевого контекста.[0002] The present application relates to reducing noise levels from speech. More particularly, the example embodiment(s) described below relate to using deep learning models to generate inference based on frames from a large speech context.

Уровень техникиState of the art

[0003] Подходы, описанные в этом разделе, представляют собой подходы, которые могут рассматриваться как, но не обязательно представляют собой подходы, которые заранее задуманы или рассмотрены. Следовательно, если не указано иное, не следует предполагать, что какой-либо из описанных в этом разделе подходов относится к предшествующему уровню техники просто в силу своего включения в этот раздел.[0003] The approaches described in this section represent approaches that may be considered, but do not necessarily represent approaches that were previously conceived or considered. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section are prior art simply by virtue of their inclusion in this section.

[0004] В общем, трудно точно удалять шум из смешанного сигнала речи и шума, с учетом различных форм речи и различных типов шума, которые являются возможными. Может быть особенно сложным подавлять шум в реальном времени.[0004] In general, it is difficult to accurately remove noise from a mixed speech and noise signal, given the different forms of speech and the different types of noise that are possible. It can be especially difficult to suppress noise in real time.

Сущность изобретенияThe essence of the invention

[0005] Раскрываются система для подавления шума и улучшения речи и соответствующий способ. Способ содержит прием, посредством процессора, входных аудиоданных, покрывающих множество полос частот вдоль частотного измерения (размерности) во множестве кадров вдоль временного измерения; обучение, посредством процессора, модели нейронной сети, причем модель нейронной сети содержит: блок извлечения признаков, который реализует упреждающий просмотр конкретного числа кадров при извлечении признаков из входных аудиоданных; кодер, который включает в себя первую последовательность блоков, формирующих первые карты признаков, соответствующие все большим рецептивным полям во входных аудиоданных вдоль частотного измерения; декодер, который включает в себя вторую последовательность блоков, принимающих карты выходных признаков, сформированные посредством кодера, в качестве карт входных признаков, и формирующих вторые карты признаков; и блок классификации, который принимает вторые карты признаков и формирует речевое значение, указывающее объем речи, присутствующей для каждой полосы частот из множества полос частот в каждом кадре из множества кадров; прием новых аудиоданных, содержащих один или более кадров; выполнение модели нейронной сети в отношении новых аудиоданных, чтобы сформировать новые речевые значения для каждой полосы частот из множества полос частот в каждом кадре из одного или более кадров; формирование новых выходных данных, подавляющих шум в новых аудиоданных на основе новых речевых значений; передачу новых выходных данных.[0005] A system for suppressing noise and enhancing speech and a corresponding method are disclosed. The method comprises receiving, by a processor, input audio data covering a plurality of frequency bands along a frequency dimension in a plurality of frames along a time dimension; training, by the processor, a neural network model, wherein the neural network model comprises: a feature extraction unit that implements look-ahead of a specific number of frames when extracting features from the input audio data; an encoder that includes a first sequence of units that generate first feature maps corresponding to increasingly larger receptive fields in the input audio data along the frequency dimension; a decoder that includes a second sequence of units that receive output feature maps generated by the encoder as input feature maps and generate second feature maps; and a classification unit that receives the second feature maps and generates a speech value indicating the amount of speech present for each frequency band of the plurality of frequency bands in each frame of the plurality of frames; receiving new audio data comprising one or more frames; executing a neural network model on the new audio data to generate new speech values for each frequency band of a plurality of frequency bands in each frame of the one or more frames; generating new output data that suppresses noise in the new audio data based on the new speech values; transmitting the new output data.

Краткое описание чертежейBrief description of the drawings

[0006] Примерный вариант(ы) осуществления настоящего изобретения проиллюстрированы в качестве примера, а не в качестве ограничения, на прилагаемых чертежах, на которых идентичные ссылочные номера означают аналогичные элементы и на которых:[0006] Exemplary embodiment(s) of the present invention are illustrated by way of example, and not by way of limitation, in the accompanying drawings, in which like reference numerals designate like elements and in which:

[0007] Фиг. 1 иллюстрирует примерную сетевую компьютерную систему, в которой могут осуществляться на практике различные варианты осуществления.[0007] Fig. 1 illustrates an exemplary networked computer system in which various embodiments may be practiced.

[0008] Фиг. 2 иллюстрирует примерные компоненты серверного компьютера управления аудио в соответствии с раскрытыми вариантами осуществления.[0008] Fig. 2 illustrates exemplary components of an audio control server computer in accordance with the disclosed embodiments.

[0009] Фиг. 3 иллюстрирует примерную модель нейронной сети для уменьшения уровня шума.[0009] Fig. 3 illustrates an exemplary neural network model for noise reduction.

[00010] Фиг. 4А иллюстрирует примерный блок извлечения признаков.[00010] Fig. 4A illustrates an exemplary feature extraction block.

[0010] Фиг. 4В иллюстрирует другой примерный блок извлечения признаков.[0010] Fig. 4B illustrates another exemplary feature extraction block.

[0011] Фиг. 5 иллюстрирует примерную модель нейронной сети в качестве компонента нейронной модели, проиллюстрированной на фиг. 3.[0011] Fig. 5 illustrates an exemplary neural network model as a component of the neural model illustrated in Fig. 3.

[0012] Фиг. 6 иллюстрирует примерную модель нейронной сети в качестве компонента модели нейронной сети, проиллюстрированной на фиг. 5.[0012] Fig. 6 illustrates an exemplary neural network model as a component of the neural network model illustrated in Fig. 5.

[0013] Фиг. 7 иллюстрирует примерную модель нейронной сети в качестве компонента нейронной модели, проиллюстрированной на фиг. 3.[0013] Fig. 7 illustrates an exemplary neural network model as a component of the neural model illustrated in Fig. 3.

[0014] Фиг. 8 иллюстрирует примерный процесс, выполняемый с серверным компьютером управления аудио в соответствии с некоторыми вариантами осуществления, описанными в данном документе.[0014] Fig. 8 illustrates an example process performed with an audio management server computer in accordance with some embodiments described herein.

[0015] Фиг. 9 является блок-схемой, которая иллюстрирует компьютерную систему, в которой может реализовываться вариант осуществления изобретения.[0015] Fig. 9 is a block diagram that illustrates a computer system in which an embodiment of the invention may be implemented.

Описание примерных вариантов осуществленияDescription of exemplary embodiments

[0016] В нижеприведенном описании, для целей пояснения, множество конкретных подробностей излагаются для того, чтобы обеспечивать полное понимание примерного варианта(ов) осуществления настоящего изобретения. Тем не менее, должно быть очевидным то, что примерный вариант(ы) осуществления может осуществляться на практике без этих конкретных подробностей. В других случаях, известные структуры и устройства показаны в форме блок-схемы, чтобы не допускать излишнего затруднения понимания примерного варианта(ов) осуществления.[0016] In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the exemplary embodiment(s) of the present invention. However, it should be apparent that the exemplary embodiment(s) may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the exemplary embodiment(s).

[0017] Варианты осуществления описываются в нижеприведенных разделах согласно следующему краткому обзору:[0017] Embodiments are described in the following sections according to the following overview:

1. Общее представление1. General presentation

2. Примерные вычислительные окружения2. Sample computing environments

3. Примерные компьютерные компоненты3. Sample computer components

4. Функциональные описания4. Functional descriptions

4.1. Модель нейронной сети4.1. Neural network model

4.1.1. Блок извлечения признаков4.1.1. Feature Extraction Block

4.1.2. Сетевой U-блок4.1.2. Network U-block

4.1.2.1. Плотный блок4.1.2.1. Dense Block

4.1.2.1.1. Разделимая свертка по глубине со стробированием4.1.2.1.1 Depthwise Separable Convolution with Gating

4.1.2.2. Остаточный блок и рекуррентный слой4.1.2.2. Residual Block and Recurrent Layer

4.2. Обучение модели4.2. Model training

4.3. Выполнение модели4.3. Model execution

5. Примерные процессы5. Sample processes

6. Аппаратная реализация.6. Hardware implementation.

[0018] 1. Общее представление[0018] 1. General presentation

[0019] Раскрываются система для подавления шума и улучшения речи и соответствующий способ. В некоторых вариантах осуществления, система обучает модель нейронной сети, которая принимает полосные энергии, соответствующие исходной форме зашумленного сигнала, и формирует речевое значение, указывающее объем речи, присутствующей в каждой полосе частот в каждом кадре. Эти речевые значения могут использоваться для того, чтобы подавлять шум посредством уменьшения частотных абсолютных величин в тех полосах частот, в которых речь с меньшей вероятностью должна присутствовать. Модель нейронной сети имеет низкое время задержки и может использоваться для подавления шума в реальном времени. Нейронная модель содержит блок извлечения признаков, который реализует некоторый упреждающий просмотр. После блока извлечения признаков следует кодер с установившейся понижающей дискретизацией вдоль частотной области, формируя сужающийся тракт. Свертка вдоль сужающегося тракта выполняется со все большими коэффициентами растяжения вдоль временного измерения. После кодера следует соответствующий декодер с установившейся повышающей дискретизацией вдоль частотной области, формируя расширяющийся тракт. Декодер принимает масштабируемые карты выходных признаков из кодера на соответствующем уровне, так что признаки, извлеченные из различных рецептивных полей вдоль частотного измерения, могут учитываться при определении того, сколько речи присутствует в каждой полосе частот в каждом кадре.[0019] A system for suppressing noise and enhancing speech and a corresponding method are disclosed. In some embodiments, the system trains a neural network model that receives band energies corresponding to the original shape of a noisy signal and generates a speech value indicating the amount of speech present in each frequency band in each frame. These speech values can be used to suppress noise by reducing frequency absolute values in those frequency bands in which speech is less likely to be present. The neural network model has a low latency and can be used for real-time noise suppression. The neural model comprises a feature extractor that implements some look-ahead. The feature extractor is followed by an encoder with steady-state downsampling along the frequency domain, forming a narrowing path. Convolution along the narrowing path is performed with increasingly larger stretching factors along the time dimension. The encoder is followed by a corresponding decoder with steady-state upsampling along the frequency domain, forming an expanding path. The decoder receives scalable output feature maps from the encoder at the appropriate level, so that features extracted from different receptive fields along the frequency dimension can be taken into account when determining how much speech is present in each frequency band in each frame.

[0020] В некоторых вариантах осуществления, во время выполнения, система принимает форму зашумленного сигнала, преобразует ее в частотную область, покрывающую множество перцепционно обусловленных полос частот в каждом кадре. Система затем выполняет модель для того, чтобы получать речевое значение для каждой полосы частот в каждом кадре. Затем, система применяет речевые значения к исходным данным в частотной области и преобразует их обратно в улучшенную форму сигнала после подавления шума.[0020] In some embodiments, during execution, the system receives a noisy signal form, transforms it into a frequency domain covering a plurality of perceptually conditioned frequency bands in each frame. The system then executes a model to obtain a speech value for each frequency band in each frame. Then, the system applies the speech values to the original data in the frequency domain and transforms them back into an improved signal form after noise suppression.

[0021] Система имеет различные технические преимущества. Система проектируется с возможностью быть точной при низком времени задержки для подавления шума в реальном времени. Низкое время задержки достигается через относительно небольшое число относительно небольших сверточных ядер, к примеру, через восемь двумерных ядер размера 1 на 1 или 3 на 3, в модели неполной сверточной нейронной сети (CNN). Консолидация начальных данных частотной области в перцепционно обусловленные полосы частот дополнительно уменьшает объем вычислений. Разделимая по глубине свертка, для которой характерно уменьшение времени выполнения, также применяется по возможности.[0021] The system has various technical advantages. The system is designed to be accurate at low latency for real-time noise suppression. Low latency is achieved through a relatively small number of relatively small convolutional kernels, for example, eight two-dimensional 1-by-1 or 3-by-3 kernels in an incomplete convolutional neural network (CNN) model. Consolidation of the initial frequency domain data into perceptually conditioned frequency bands further reduces the amount of computation. Depthwise separable convolution, which is characterized by reduced execution time, is also used where possible.

[0022] Точность достигается через извлечение признаков в различных рецептивных полях во входных данных вдоль частотного измерения, которые используются в комбинации, чтобы достигать плотной классификации. Конкретный блок извлечения признаков, который включает упреждающий просмотр небольшого числа кадров, к примеру, одного или двух кадров, дополнительно способствует полноте признаков. Плотные блоки, в которых карты выходных признаков сверточного слоя распространяются в весь последующий сверточный слой, также применяются по возможности. Помимо этого, нейронная модель может обучаться для того, чтобы прогнозировать не только объем речи, присутствующей для каждой полосы частот в каждом кадре, но и распределение таких объемов. Дополнительные параметры распределения могут использоваться, чтобы подстраивать прогнозирования.[0022] Accuracy is achieved through feature extraction in different receptive fields in the input data along the frequency dimension, which are used in combination to achieve dense classification. A specific feature extraction block that involves looking ahead at a small number of frames, such as one or two frames, further contributes to feature richness. Dense blocks, in which the output feature maps of a convolutional layer are propagated throughout the subsequent convolutional layer, are also used where possible. In addition, a neural model can be trained to predict not only the amount of speech present for each frequency band in each frame, but also the distribution of such amounts. Additional distribution parameters can be used to fine-tune the predictions.

[0023] 2. Примерные вычислительные окружения[0023] 2. Sample Computing Environments

[0024] Фиг. 1 иллюстрирует примерную сетевую компьютерную систему, в которой могут осуществляться на практике различные варианты осуществления. Фиг. 1 показывается в упрощенном схематичном формате для целей иллюстрации наглядного примера, и другие варианты осуществления могут включать в себя большее число элементов, меньшее число элементов или другие элементы.[0024] Fig. 1 illustrates an exemplary network computer system in which various embodiments may be practiced. Fig. 1 is shown in a simplified schematic format for purposes of illustrating an illustrative example, and other embodiments may include more elements, fewer elements, or different elements.

[0025] В некоторых вариантах осуществления, сетевая компьютерная система содержит серверный компьютер 102 управления аудио ("сервер"), один или более датчиков 104 или устройств ввода и одно или более устройств 110 вывода, которые функционально соединяются через прямые физические соединения или через одну или более сетей 118.[0025] In some embodiments, the network computer system comprises an audio control server computer 102 (“server”), one or more sensors 104 or input devices, and one or more output devices 110 that are operatively connected via direct physical connections or via one or more networks 118.

[0026] В некоторых вариантах осуществления, сервер 102 широко представляет один или более компьютеров, экземпляров виртуальных вычислений и/или экземпляров приложения, которые программируются или конфигурируются со структурами данных и/или записями в базе данных, которые выполнены с возможностью размещать или выполнять функции, связанные с улучшением речи с низким временем задержки посредством уменьшения уровня шума. Сервер 102 может содержать ферму серверов, облачную вычислительную платформу, параллельный компьютер или любой другой вычислительный центр с достаточной вычислительной мощностью в обработке данных, хранении данных и сетевой связи для вышеописанных функций.[0026] In some embodiments, the server 102 broadly represents one or more computers, virtual computing instances and/or application instances that are programmed or configured with data structures and/or database records that are configured to host or perform functions related to improving low-latency speech by reducing noise levels. The server 102 may comprise a server farm, a cloud computing platform, a parallel computer or any other computing center with sufficient computing power in data processing, data storage and network communication for the above-described functions.

[0027] В некоторых вариантах осуществления, каждый из одного или более датчиков 104 может включать в себя микрофон или другое цифровое записывающее устройство, которое преобразует звуки в электрические сигналы. Каждый датчик выполнен с возможностью передавать обнаруженные аудиоданные на сервер 102. Каждый датчик может включать в себя процессор или может интегрироваться в типичное клиентское устройство, такое как настольный компьютер, переносной компьютер, планшетный компьютер, смартфон или носимое устройство.[0027] In some embodiments, each of the one or more sensors 104 may include a microphone or other digital recording device that converts sounds into electrical signals. Each sensor is configured to transmit detected audio data to the server 102. Each sensor may include a processor or may be integrated into a typical client device, such as a desktop computer, a laptop computer, a tablet computer, a smartphone, or a wearable device.

[0028] В некоторых вариантах осуществления, каждое из одного или более устройств 110 вывода может включать в себя динамик или другое цифровое устройство воспроизведения, которое преобразует электрические сигналы обратно в звуки. Каждое устройство вывода программируется с возможностью воспроизводить аудиоданные, принимаемые из сервера 102. Аналогично датчику, устройство вывода может включать в себя процессор или может интегрироваться в типичное клиентское устройство, такое как настольный компьютер, переносной компьютер, планшетный компьютер, смартфон или носимое устройство.[0028] In some embodiments, each of the one or more output devices 110 may include a speaker or other digital playback device that converts electrical signals back into sounds. Each output device is programmed to reproduce audio data received from the server 102. Similar to a sensor, an output device may include a processor or may be integrated into a typical client device, such as a desktop computer, a laptop computer, a tablet computer, a smartphone, or a wearable device.

[0029] Одна или более сетей 118 могут реализовываться посредством любого носителя/среды или механизма, который предоставляет обмен данными между различными элементами по фиг. 1. Примеры сетей 118 включают в себя, без ограничения, одно или более из сотовой сети, функционально соединенной с соединением для передачи данных с вычислительными устройствами по сотовой антенне, сети связи ближнего радиуса действия (NFC), локальной вычислительной сети (LAN), глобальной вычислительной сети (WAN), Интернета, линии наземной или спутниковой связи и т.д.[0029] One or more networks 118 may be implemented via any carrier/medium or mechanism that provides data exchange between the various elements of Fig. 1. Examples of networks 118 include, without limitation, one or more of a cellular network operatively coupled with a data connection to computing devices via a cellular antenna, a near field communication (NFC) network, a local area network (LAN), a wide area network (WAN), the Internet, a terrestrial or satellite communication link, etc.

[0030] В некоторых вариантах осуществления, сервер 102 программируется с возможностью принимать входные аудиоданные, соответствующие звукам в данном окружении, из одного или более датчиков 104. Разъединение 102 программируется с возможностью затем обрабатывать входные аудиоданные, которые типично соответствуют смешению речи и шума, чтобы оценивать то, сколько речи присутствует в каждом кадре входных данных. Сервер 102 также программируется с возможностью обновлять входные аудиоданные на основе оценок, чтобы формировать очищенные выходные аудиоданные, предположительно содержащие меньше шума, чем входные аудиоданные. Кроме того, сервер 102 программируется с возможностью отправлять выходные аудиоданные в одно или более устройств вывода.[0030] In some embodiments, the server 102 is programmed to receive input audio data corresponding to sounds in a given environment from one or more sensors 104. The disconnection 102 is programmed to then process the input audio data, which typically corresponds to a mixture of speech and noise, to estimate how much speech is present in each frame of the input data. The server 102 is also programmed to update the input audio data based on the estimates to generate cleaned output audio data that is expected to contain less noise than the input audio data. In addition, the server 102 is programmed to send the output audio data to one or more output devices.

[0031] 3. Примерные компьютерные компоненты[0031] 3. Sample Computer Components

[0032] Фиг. 2 иллюстрирует примерные компоненты серверного компьютера управления аудио в соответствии с раскрытыми вариантами осуществления. Чертеж служит только для целей иллюстрации, и сервер 102 может содержать меньшее или большее число функциональных компонентов или компонентов хранения данных. Каждый из функциональных компонентов может реализовываться как программные компоненты, общие или специализированные аппаратные компоненты, микропрограммные компоненты либо как любая комбинация вышеозначенного. Каждый из функциональных компонентов также может соединяться с одним или более компонентов хранения данных (не показаны). Компонент хранения данных может реализовываться с использованием любой из реляционных баз данных, объектных баз данных, плоских файловых систем или JSON-хранилищ. Компонент хранения данных может соединяться с функциональными компонентами локально или через сети с использованием программных вызовов, средств удаленного вызова процедур (RPC) или шины обмена сообщениями. Компонент может быть автономным или не быть автономным. В зависимости от конкретных для реализации или других факторов, компоненты могут быть централизованными или распределенными функционально или физически.[0032] Fig. 2 illustrates exemplary components of an audio management server computer in accordance with the disclosed embodiments. The drawing is for illustrative purposes only, and the server 102 may include a smaller or larger number of functional components or data storage components. Each of the functional components may be implemented as software components, general or specialized hardware components, firmware components, or any combination of the above. Each of the functional components may also be connected to one or more data storage components (not shown). The data storage component may be implemented using any of relational databases, object databases, flat file systems, or JSON stores. The data storage component may be connected to the functional components locally or over networks using software calls, remote procedure calls (RPC) or a message bus. The component may or may not be autonomous. Depending on implementation-specific or other factors, the components may be centralized or distributed functionally or physically.

[0033] В некоторых вариантах осуществления, сервер 102 содержит блок 204 спектрального преобразования и формирования полос частот, блок 208 моделирования, блок 212 обращения формирования полос частот, блок 218 умножения входного спектра и блок 222 обратного спектрального преобразования.[0033] In some embodiments, server 102 comprises a spectral transform and frequency band shaping unit 204, a modeling unit 208, a frequency band shaping inversion unit 212, an input spectrum multiplication unit 218, and an inverse spectral transform unit 222.

[0034] В некоторых вариантах осуществления, сервер 102 принимает форму зашумленного сигнала. В блоке 204, сервер 102 сегментирует форму сигнала на последовательность кадров через спектральное преобразование, к примеру, на последовательность, которая имеет длину в шесть секунд с 20-миллисекундными кадрами (что приводит к 300 кадрам) с или без перекрытия. Спектральное преобразование может представлять собой любые из множества преобразований, к примеру, кратковременное преобразование Фурье или преобразование на основе гребенки комплексных квадратурных зеркальных фильтров (CQMF), при этом для второго из них характерно давать в результате минимальные артефакты наложения спектров. Чтобы обеспечивать относительно высокое частотное разрешение, число ядер преобразования/фильтров в расчете на 20-миллисекундный кадр может выбираться таким образом, что ширина частотных интервальных элементов разрешения (бинов, bins) составляет приблизительно 25 Гц.[0034] In some embodiments, server 102 receives a noisy signal form. In block 204, server 102 segments the signal form into a sequence of frames via a spectral transform, such as a sequence that is six seconds long with 20-ms frames (resulting in 300 frames) with or without overlap. The spectral transform may be any of a variety of transforms, such as a short-time Fourier transform or a complex quadrature mirror filter comb (CQMF) transform, the latter of which is characterized by resulting in minimal aliasing artifacts. To provide a relatively high frequency resolution, the number of transform kernels/filters per 20-ms frame may be selected such that the width of the frequency interval resolution elements (bins) is approximately 25 Hz.

[0035] В некоторых вариантах осуществления, например, сервер 102 затем преобразует последовательность кадров в вектор полосных энергий, для 56 перцепционно обусловленных полос частот. Каждая перцепционно обусловленная полоса частот типично находится в частотной области, к примеру, от 120 Гц до 2000 Гц, которая совпадает с тем, как человеческое ухо обрабатывает речь, так что захват данных в этой перцепционно обусловленной полосе частот означает непотерю качества речи для человеческого уха. Более конкретно, возведенные в квадрат абсолютные величины бинов по выходной частоте спектрального преобразования группируются на перцепционно обусловленные полосы частот, при этом число частотных бинов в расчете на полосу частот увеличивается на верхних частотах. Стратегия группирования может быть "мягкой" с некоторой спектральной энергией, утекающей через соседние полосы частот, или "жесткой" без утечки по полосам частот.[0035] In some embodiments, for example, the server 102 then transforms the frame sequence into a vector of band energies for 56 perceptually conditioned frequency bands. Each perceptually conditioned frequency band is typically in a frequency region, for example, from 120 Hz to 2000 Hz, which coincides with how the human ear processes speech, so that capturing data in this perceptually conditioned frequency band means no loss of speech quality for the human ear. More specifically, the squared absolute values of the bins by frequency output of the spectral transform are grouped into perceptually conditioned frequency bands, with the number of frequency bins per frequency band increasing at higher frequencies. The grouping strategy may be "soft" with some spectral energy leaking through adjacent frequency bands, or "hard" with no leakage through frequency bands.

[0036] В некоторых вариантах осуществления, когда энергии бинов зашумленного кадра представляются посредством х, представляющего собой вектор-столбец размера р на 1, где р обозначает число бинов, преобразование в вектор полосных энергий может выполняться посредством вычисления y=W*x, где у является вектором-столбцом размера q на 1, представляющим энергии полосы частот для этого зашумленного кадра, W является матрицей формирования полос частот размера q на р, и q обозначает число перцепционно обусловленных полос частот.[0036] In some embodiments, when the bin energies of a noisy frame are represented by x, which is a p-by-1 column vector, where p is the number of bins, the transformation into a vector of band energies may be performed by computing y=W*x, where y is a q-by-1 column vector representing the band energies for that noisy frame, W is a q-by-p bandpass generation matrix, and q is the number of perceptually conditioned bands.

[0037] В некоторых вариантах осуществления, в блоке 208, сервер 102 прогнозирует значение маски для каждой полосы частот в каждом кадре, которое указывает объем присутствующей речи. В блоке 212, сервер 102 преобразует значения масок полос частот обратно в маски спектральных бинов.[0037] In some embodiments, in block 208, the server 102 predicts a mask value for each frequency band in each frame that indicates the amount of speech present. In block 212, the server 102 converts the frequency band mask values back to spectral bin masks.

[0038] В некоторых вариантах осуществления, когда маски полос частот для у представляются посредством вектора-столбца m_band размера q на 1, преобразование в маски бинов может выполняться посредством вычисления m_bin=W transpose*m_band, где m_bin является вектором-столбцом размера р на 1, и W_transpose размера р на q является транспонированием W. В блоке 218, сервер 102 умножает маски спектральных абсолютных величин на абсолютные величины спектра, чтобы осуществлять маскирование или уменьшение шума и получать оцененный чистый спектр. В завершение, в блоке 222, сервер преобразует оцененный чистый спектральный спектр обратно в форму сигнала в качестве улучшенной формы сигнала (по сравнению с шумовой формой сигнала), которая может передаваться через устройство вывода, с использованием любого способа, известного для специалистов в данной области техники, такого как обратное преобразование (к примеру, обратная CQMF).[0038] In some embodiments, when the frequency band masks for y are represented by a q-by-1 column vector m_band, the transformation into bin masks may be performed by computing m_bin=W transpose*m_band, where m_bin is a p-by-1 column vector, and W_transpose of size p by q is the transpose of W. In block 218, the server 102 multiplies the spectral magnitude masks by the spectrum magnitudes to mask or reduce noise and obtain an estimated clean spectrum. Finally, in block 222, the server transforms the estimated clean spectral spectrum back into a waveform as an improved waveform (compared to the noisy waveform), which may be transmitted through the output device, using any method known to those skilled in the art, such as an inverse transform (e.g., an inverse CQMF).

[0039] 4. Функциональные описания[0039] 4. Functional descriptions

[0040] 4.1. Модель нейронной сети[0040] 4.1. Neural Network Model

[0041] Фиг. 3 иллюстрирует примерную модель 300 нейронной сети для уменьшения уровня шума, которая представляет вариант осуществления блока 208. В некоторых вариантах осуществления, модель 300 содержит блок 308 для извлечения признаков и блок 340, который основан на сетевой U-структуре, к примеру, на структуре, описанной в работе arXiv:1505.04597v1 [cs.CV], 18 мая 2015 года, но имеет несколько варьирований, как описано в данном документе. Сетевая U-структура показана для того, чтобы обеспечивать точность локализации распознавания и классификации признаков.[0041] Fig. 3 illustrates an example model 300 of a neural network for noise reduction, which represents an embodiment of block 208. In some embodiments, the model 300 comprises a block 308 for extracting features and a block 340 that is based on a U-network structure, such as the structure described in arXiv:1505.04597v1 [cs.CV], May 18, 2015, but has several variations as described herein. The U-network structure is shown to ensure the accuracy of feature recognition and classification localization.

[0042] 4.1.1. Блок извлечения признаков[0042] 4.1.1. Feature Extraction Block

[0043] В некоторых вариантах осуществления, в блоке 308 на фиг. 3, сервер 102 извлекает высокоуровневые признаки, оптимизированные для задачи подавления шума, из необработанных энергий полосы частот.Фиг.4А иллюстрирует примерный блок извлечения признаков, который представляет вариант осуществления блока 308. Фиг. 4В иллюстрирует другой примерный блок извлечения признаков. Как проиллюстрировано в структуре 400А на фиг. 4А, например, сервер 102 может нормализовать среднее и дисперсию энергий полосы частот (например, 56 из них) в последовательности из Т кадров посредством обучаемого слоя 408 пакетной нормализации, известного для специалистов в данной области техники. Альтернативно, глобальная нормализация также может предварительно вычисляться из обучающего набора с использованием технологии, известной для специалистов в данной области техники.[0043] In some embodiments, in block 308 of Fig. 3, server 102 extracts high-level features optimized for the noise suppression task from the raw baseband energies. Fig. 4A illustrates an example feature extractor block that represents an embodiment of block 308. Fig. 4B illustrates another example feature extractor block. As illustrated in structure 400A of Fig. 4A, for example, server 102 may normalize the mean and variance of the baseband energies (e.g., 56 of them) in a sequence of T frames using a trainable batch normalization layer 408 known to those skilled in the art. Alternatively, global normalization may also be pre-computed from the training set using technology known to those skilled in the art.

[0044] В некоторых вариантах осуществления, сервер 102 может учитывать будущую информацию при извлечении вышеуказанных высокоуровневых признаков. Как проиллюстрировано в 400А на фиг. 4А, например, такой упреждающий просмотр может реализовываться с двумерным одноканальным сверточным (conv2d) слоем 406 с одним или более ядрами. Высота ядра в conv2d-слое 406, соответствующая числу полос частот, чтобы оценивать каждый раз, может задаваться равной небольшому значению, к примеру, трем. Размер ядра вдоль временной оси зависит от того, сколько упреждающего просмотра требуется или разрешается. Например, без упреждающего просмотра, ядро может покрывать текущий кадр и предыдущие L кадров, к примеру, два кадра, и когда L будущих кадров разрешаются, размер ядра может составлять 2L+1 с центрированием в текущем кадре, что согласуется с 2L+1 кадров во входных данных каждый раз, к примеру, 422, причем L равно двум в 406. Как проиллюстрировано в 400 В на фиг. 4В, упреждающий просмотр также может реализовываться с последовательностью соnv2d-слоев 410, 412 или больше. В таком случае, каждое ядро имеет небольшой размер ядра вдоль временной оси. Например, L может задаваться равным единице для 410, 412 и каждого другого аналогичного слоя. Как результат, слой 410 может согласовываться с исходными входными данными с упреждающим просмотром на 2L+1, к примеру, 422 причем L равно единице, что приводит к трем ядрам 428, и слой 412 может согласовываться с выводом слоя 412. Сервер может использовать последовательность conv2d-слоев, проиллюстрированных на фиг. 4В, для того, чтобы постепенно увеличивать рецептивное поле во входных данных.[0044] In some embodiments, the server 102 may take into account future information when extracting the above-mentioned high-level features. As illustrated in 400A in Fig. 4A, for example, such a look-ahead may be implemented with a two-dimensional single-channel convolutional (conv2d) layer 406 with one or more kernels. The height of the kernel in the conv2d layer 406, corresponding to the number of frequency bands to evaluate each time, may be set to a small value, such as three. The size of the kernel along the time axis depends on how much look-ahead is required or allowed. For example, without lookahead, the kernel may cover the current frame and the previous L frames, e.g., two frames, and when L future frames are resolved, the kernel size may be 2L+1 centered on the current frame, which corresponds to 2L+1 frames in the input data each time, e.g., 422, with L equal to two in 406. As illustrated at 400B in Fig. 4B, lookahead may also be implemented with a sequence of conv2d layers 410, 412, or more. In such a case, each kernel has a small kernel size along the time axis. For example, L may be set to one for 410, 412, and each other similar layer. As a result, layer 410 may be matched to the original input data with a 2L+1 lookahead, for example, 422 where L is equal to one, which results in three kernels 428, and layer 412 may be matched to the output of layer 412. The server may use a sequence of conv2d layers, illustrated in Fig. 4B, to gradually increase the receptive field in the input data.

[0045] В некоторых вариантах осуществления, число ядер в каждом conv2d-слое может определяться на основе характера входного аудиопотока, объема требуемых высокоуровневых признаков, объема требований по вычислительным ресурсам или другого фактора. Например, число может быть равным 8, 16 или 32. Помимо этого, после каждого из conv2d-слоев в блоке 308 может следовать нелинейная активирующая функция, такая как параметрическая единица линейной ректификации (PReLU), после которой затем может следовать отдельный слой пакетной нормализации, чтобы подстраивать вывод блока 308.[0045] In some embodiments, the number of cores in each conv2d layer may be determined based on the nature of the input audio stream, the amount of high-level features required, the amount of computational resource requirements, or another factor. For example, the number may be 8, 16, or 32. In addition, each of the conv2d layers in block 308 may be followed by a nonlinear activation function, such as a parametric linear rectification unit (PReLU), which may then be followed by a separate batch normalization layer to adjust the output of block 308.

[0046] В некоторых вариантах осуществления, блок 308 может реализовываться с использованием других технологий обработки сигналов, не связанных с искусственными нейронными сетями, к примеру, с использованием технологии, описанной в работе авторов С.Kim и R. М. Stern "Power-Normalized Cepstral Coefficients (PNCC) for Robust Speech Recognition", in IEEE/ACM Transactions on Audio, Speech and Language Processing, издание 24, номер 7, стр. 1315-1329, июль 2016 года, doi: 10.1109/TASLP.2016.2545928.[0046] In some embodiments, block 308 may be implemented using other signal processing technologies not related to artificial neural networks, for example, using the technology described in the work of authors C. Kim and R. M. Stern "Power-Normalized Cepstral Coefficients (PNCC) for Robust Speech Recognition", in IEEE/ACM Transactions on Audio, Speech and Language Processing, vol. 24, number 7, pp. 1315-1329, July 2016, doi: 10.1109/TASLP.2016.2545928.

[0047] 4.1.2. Сетевой U-блок[0047] 4.1.2. Network U-block

В некоторых вариантах осуществления, в блоке 340 на фиг. 3, сервер 102 выполняет кодирование данных признаков (чтобы находить большее число, лучшие признаки), после которого выполняется декодирование, чтобы восстанавливать улучшенные аудиоданные, перед конечным выполнением классификации, чтобы определять то, сколько речи присутствует. Блок 340 в силу этого содержит сторону кодера слева и декодер справа, соединенные посредством блока 350. Кодер содержит один или более блоков вычисления признаков, таких как 310, 312 и 314, после каждого из которых следует модуль понижающей частотной дискретизации, такой как 316, 318 и 320, чтобы формировать сужающийся тракт. Плотный блок (DB) представляет собой одну реализацию для такого блока вычисления признаков, как подробнее пояснено ниже. Каждая из троек, указываемых на схеме, к примеру, (8, Т, 64), включает в себя размер входных или выходных данных блока вычисления признаков, причем первый компонент обозначает число каналов или карты признаков, второй компонент обозначает фиксированное число кадров вдоль временного измерения, и третий компонент обозначает размер вдоль частотного измерения. Эти блоки вычисления признаков, как подробнее пояснено ниже, захватывают все более высокоуровневые признаки во все больших частотных контекстах. Блок 350 содержит блок вычисления признаков для того, чтобы выполнять моделирование, которое покрывает все перцепционно обусловленные полосы частот, первоначально доступные. Декодер также содержит один или более блоков вычисления признаков, таких как 320, 322 и 324, после каждого из которых следует модуль повышающей частотной дискретизации, такой как 326, 328 и 330, чтобы формировать расширяющийся тракт. Эти блоки вычисления признаков в расширяющемся тракте, которые базируются на картах признаков, сформированных во время сужающегося тракта, комбинируются для того, чтобы проецировать различающие признаки на различных уровнях на пространство высокого разрешения, а именно, на уровне в расчете на полосу частот в каждом кадре, с тем чтобы получать плотную классификацию, а именно, значения маски. Вследствие комбинирования, число входных каналов (или карт признаков) для каждого блока вычисления признаков в расширяющемся тракте может в два раза превышать это число для каждого блока вычисления признаков в сужающемся тракте. Тем не менее, выбор числа ядер в каждом блоке вычисления позволяет определять число выходных каналов, которое становится числом входных каналов для следующего блока вычисления признаков в расширяющемся тракте.In some embodiments, in block 340 of Fig. 3, server 102 performs encoding of feature data (to find more, better features), followed by decoding to reconstruct improved audio data, before finally performing classification to determine how much speech is present. Block 340 thus comprises an encoder side on the left and a decoder on the right, connected via block 350. The encoder comprises one or more feature computing units, such as 310, 312 and 314, each of which is followed by a downsampling module, such as 316, 318 and 320, to form a narrowing path. A dense block (DB) is one implementation for such a feature computing unit, as explained in more detail below. Each of the triples indicated in the diagram, for example (8, T, 64), includes a size of the input or output data of the feature computing unit, where the first component denotes the number of channels or feature maps, the second component denotes a fixed number of frames along the time dimension, and the third component denotes a size along the frequency dimension. These feature computing units, as explained in more detail below, capture increasingly higher-level features in increasingly larger frequency contexts. Block 350 comprises a feature computing unit for performing a simulation that covers all perceptually conditioned frequency bands initially available. The decoder also comprises one or more feature computing units, such as 320, 322 and 324, each of which is followed by an upsampling module, such as 326, 328 and 330, to form an expanding path. These feature computation units in the expanding path, which are based on the feature maps generated during the contracting path, are combined to project discriminative features at different levels onto a high-resolution space, namely, at a per-bandwidth level in each frame, in order to obtain a dense classification, namely, mask values. Due to the combination, the number of input channels (or feature maps) for each feature computation unit in the expanding path can be twice that of each feature computation unit in the contracting path. However, the choice of the number of cores in each computation unit allows determining the number of output channels, which becomes the number of input channels for the next feature computation unit in the expanding path.

[0048] Сервер 102 формирует конечные значения маски для каждой полосы частот в кадре через блок классификации, такой как блок 360, содержащий двумерное ядро 1×1, после которого следует сигмоидальная нелинейная активирующая функция.[0048] Server 102 generates final mask values for each frequency band in the frame via a classification block, such as block 360, comprising a two-dimensional 1×1 kernel followed by a sigmoidal nonlinear activation function.

[0049] В некоторых вариантах осуществления, в каждом модуле понижающей частотной дискретизации, сервер 102 объединяет каждые две смежных энергии полосы частот посредством conv2d-слоя с размерами ядра и шага в 2 вдоль частотной оси через регулярную свертку или свертку по глубине. Альтернативно, conv2d-слой может заменяться посредством слоя объединения в пул по максимуму. В любом случае, ширина карт выходных признаков сокращается наполовину после каждого модуля понижающей частотной дискретизации, за счет этого устойчиво увеличивая рецептивное поле во входных данных. Чтобы обеспечивать такое последовательное, экспоненциальное уменьшение ширины карт выходных признаков, сервер 102 дополняет вывод блока 308 в ширину, которая представляет собой степень 2, которая затем становится входными данными в блок 340. Дополнение может выполняться, например, посредством добавления нулей для обоих размеров карт выходных признаков блока 308.[0049] In some embodiments, in each downsampling module, the server 102 combines every two adjacent frequency band energies by means of a conv2d layer with kernel sizes and a stride of 2 along the frequency axis via a regular convolution or a depthwise convolution. Alternatively, the conv2d layer may be replaced by a max-pooling layer. In any case, the width of the output feature maps is reduced by half after each downsampling module, thereby steadily increasing the receptive field in the input data. To provide such a consistent, exponential reduction in the width of the output feature maps, the server 102 pads the output of block 308 to a width that is a power of 2, which then becomes the input to block 340. The padding may be performed, for example, by adding zeros for both sizes of the output feature maps of block 308.

[0050] В некоторых вариантах осуществления, в каждом модуле повышающей частотной дискретизации, сервер 102 использует транспонированный conv2d-слой, соответствующий conv2d-слою, на идентичном уровне в кодере, чтобы восстанавливать исходное число энергий полосы частот. Глубина блока 340 или число комбинаций блока вычисления признаков и модуля понижающей частотной дискретизации (и эквивалентно, число комбинаций блока вычисления признаков и модуля повышающей частотной дискретизации) может зависеть от требуемого максимального рецептивного поля, объема вычислительных ресурсов или других факторов.[0050] In some embodiments, in each upsampling unit, the server 102 uses a transposed conv2d layer corresponding to the conv2d layer at the same level in the encoder to restore the original number of frequency band energies. The depth of the block 340 or the number of combinations of the feature computing unit and the downsampling unit (and equivalently, the number of combinations of the feature computing unit and the upsampling unit) may depend on the required maximum receptive field, the amount of computing resources, or other factors.

[0051] В некоторых вариантах осуществления, сервер 102 использует прыжковые соединения, к примеру, 342, 344 и 346, для того чтобы конкатенировать вывод блока вычисления признаков в кодере с вводом блока вычисления признаков в декодере на идентичном уровне, в качестве способа для декодера принимать различающие признаки входных данных на различных уровнях в конечном счете для плотной классификации, как отмечено выше. Например, карты признаков, сформированные посредством блока 310, используются вместе в качестве входных данных с картами признаков, подаваемыми в блок 324 из модуля 330 повышающей частотной дискретизации через прыжковое соединение 346. Как результат, число каналов во входных данных каждого блока вычисления признаков в декодере должно быть в два раза больше числа каналов во входных данных каждого плотного блока в кодере.[0051] In some embodiments, the server 102 uses hop connections, such as 342, 344 and 346, to concatenate the output of the feature calculation unit in the encoder with the input of the feature calculation unit in the decoder at the same level, as a way for the decoder to receive discriminative features of the input data at different levels ultimately for dense classification, as noted above. For example, the feature maps generated by the block 310 are used together as input data with the feature maps fed to the block 324 from the upsampling module 330 via the hop connection 346. As a result, the number of channels in the input data of each feature calculation unit in the decoder should be twice the number of channels in the input data of each dense block in the encoder.

[0052] В некоторых вариантах осуществления, вместо простой конкатенации, сервер 102 обучает масштабный множитель для каждого прыжкового соединения, к примеру, α1, α2 и α3, как показано на фиг. 3. Каждый αiсодержит N (например, 8) обучаемых параметров, которые могут инициализироваться равными 1 в начале обучения. Каждый из обучаемых параметров используется для умножения карты признаков, сформированной соответствующим блоком вычисления признаков в кодере, для того, чтобы формировать масштабированную карту признаков, которая затем конкатенируется с картой признаков, которая должна подаваться в соответствующий блок вычисления признаков в декодере.[0052] In some embodiments, instead of simple concatenation, the server 102 trains a scale factor for each hop, such as α1 , α2 , and α3 , as shown in Fig. 3 . Each αi contains N (e.g., 8) trainable parameters, which may be initialized to 1 at the beginning of training. Each of the trainable parameters is used to multiply a feature map generated by a corresponding feature computation unit in the encoder in order to generate a scaled feature map, which is then concatenated with the feature map to be fed to a corresponding feature computation unit in the decoder.

[0053] В некоторых вариантах осуществления, сервер 102 может заменять конкатенацию суммированием. Например, восемь карт признаков, сформированных посредством блока 310, могут суммироваться, соответственно, в 8 карт признаков, которые должны подаваться в плотный блок 324, причем каждое из восьми суммирований выполняется на основе компонентов. Такое суммирование вместо конкатенации уменьшает число карт признаков, используемых в качестве входных данных в каждый блок вычисления признаков в декодере, и в целом сокращает объем вычислений за счет определенного ухудшения производительности.[0053] In some embodiments, the server 102 may replace concatenation with summation. For example, the eight feature maps generated by block 310 may be summed into 8 feature maps, respectively, to be fed to the dense block 324, where each of the eight summations is performed on a component basis. Such summation instead of concatenation reduces the number of feature maps used as input to each feature calculation block in the decoder, and generally reduces the amount of computation at the expense of some performance degradation.

[0054] 4.1.2.1. Плотный блок[0054] 4.1.2.1. Dense Block

[0055] Фиг. 5 иллюстрирует примерную модель нейронной сети, которая соответствует варианту осуществления блока 310 и каждого другого аналогичного блока в блоке 340 на фиг. 3. Модель нейронной сети основана на DenseNet-структуре, к примеру, на структуре, описанной в работе arXiv:1608.Об 993v5 [cs.CV], 28 января 2018, но имеет несколько варьирований, как описано в данном документе. DenseNet-структура показана для того, чтобы облегчать проблему исчезающего градиента, усиливать распространение признаков, стимулировать многократное использование признаков и сокращать число параметров.[0055] Fig. 5 illustrates an example neural network model that corresponds to an embodiment of block 310 and each other similar block in block 340 of Fig. 3. The neural network model is based on a DenseNet structure, such as the structure described in arXiv:1608.Release 993v5 [cs.CV], January 28, 2018, but has several variations as described herein. The DenseNet structure is shown to alleviate the vanishing gradient problem, enhance feature propagation, encourage feature reuse, and reduce the number of parameters.

[0056] В некоторых вариантах осуществления, сервер 102 использует блок 500 в качестве блока вычисления признаков для того, чтобы дополнительно усиливать распространение признаков и плотную классификацию. Блок 500 выводит N (например, 8) каналов карт признаков, идентичных числу входных данных карт признаков. Каждый канал также имеет идентичную частотно-временную форму с картой признаков во входных данных. Блок 500 содержит последовательность сверточных слоев, к примеру, 520 и 530. Входные данные в каждый сверточный слой содержат конкатенацию всех выходных данных предыдущих сверточных слоев, за счет этого формируя плотную соединяемость. Например, входные данные в слой 530 включают в себя данные 512, которые могут представлять собой начальные входные данные или выходные данные из предшествующего сверточного слоя, и данные 522, которые представляют собой входные данные из слоя 520.[0056] In some embodiments, the server 102 uses block 500 as a feature calculation block in order to further enhance feature propagation and dense classification. Block 500 outputs N (e.g., 8) channels of feature maps that are identical to the number of input feature maps. Each channel also has an identical time-frequency shape with a feature map in the input data. Block 500 comprises a sequence of convolutional layers, for example, 520 and 530. The input data to each convolutional layer comprises a concatenation of all output data of the previous convolutional layers, thereby forming a dense connectivity. For example, the input data to layer 530 includes data 512, which may be the initial input data or the output data from a previous convolutional layer, and data 522, which is the input data from layer 520.

[0057] В некоторых вариантах осуществления, каждый сверточный слой содержит слой-"узкое место", имеющий одно или более двумерных ядер 1×1, такой как слой 504, чтобы консолидировать входные данные, содержащие К карт признаков вследствие плотной соединяемости, в меньшее число карт признаков. Например, каждое двумерное ядро 1×1 может применяться, соответственно, к каждой группе из K/2N карт признаков для того, чтобы эффективно суммировать K/2N карт признаков в одну карту признаков и в конечном счете получать 2N карт признаков. Альтернативно, в сумме 2N двумерных ядер 1×1 могут применяться ко всем картам признаков для того, чтобы формировать двумерные карты признаков. После каждого двумерного ядра 1×1 может следовать нелинейная активирующая функция, такая как PReLU и/или слой пакетной нормализации.[0057] In some embodiments, each convolutional layer comprises a bottleneck layer having one or more 2-D 1×1 kernels, such as layer 504, to consolidate input data comprising K feature maps due to dense connectivity into a smaller number of feature maps. For example, each 2-D 1×1 kernel may be applied, respectively, to each group of K/2N feature maps in order to efficiently sum the K/2N feature maps into one feature map and ultimately obtain 2N feature maps. Alternatively, a total of 2N 2-D 1×1 kernels may be applied to all feature maps in order to form 2-D feature maps. Each 2-D 1×1 kernel may be followed by a nonlinear activation function, such as PReLU and/or a batch normalization layer.

[0058] В некотором варианте осуществления, каждый сверточный слой содержит небольшой conv2d-слой с N ядер, к примеру, блок 506, имеющий convd2d слой 3×3, после слоя-"узкого места", с тем чтобы формировать N карт признаков. Эти небольшие conv2d-слои в последовательных сверточных слоях блока 500 используют экспоненциально увеличивающиеся растяжения вдоль временной оси, чтобы моделировать все больший объем контекстной информации. Например, коэффициент растяжения, используемый в блоке 506, равен 1, что означает отсутствие растяжения в каждом ядре, тогда как коэффициент растяжения, используемый в блоке 508, равен 2, что означает то, что ядро растягивается во временной оси на коэффициент два, и рецептивное поле также увеличивается в размере на коэффициент два в каждом измерении.[0058] In some embodiment, each convolutional layer comprises a small conv2d layer with N kernels, for example, block 506 having a 3x3 convd2d layer after the bottleneck layer, in order to form N feature maps. These small conv2d layers in successive convolutional layers of block 500 use exponentially increasing stretches along the time axis in order to model an increasing amount of contextual information. For example, the stretch factor used in block 506 is 1, which means no stretch in each kernel, while the stretch factor used in block 508 is 2, which means that the kernel is stretched in the time axis by a factor of two, and the receptive field also increases in size by a factor of two in each dimension.

[0059] В некоторых вариантах осуществления, между сверточными слоями блока 500, сервер 102 линейно проецирует энергии полосы частот на обученное пространство в слое частотного преобразования для более унифицированных выводов, к примеру, для выводов, описанных в работе arXiv:1904.11148v1 [cs.SD], 25 апреля 2019 года. Поскольку идентичное ядро может создавать различные эффекты для идентичных аудиоданных в зависимости от того, в какой полосе частот расположены аудиоданные, некоторая унификация таких эффектов по различным полосам частот должна быть полезной. Например, слой 580 частотного преобразования расположен в середине глубины блока 500.[0059] In some embodiments, between the convolutional layers of block 500, server 102 linearly projects the frequency band energies onto the trained space in a frequency transform layer for more unified outputs, such as the outputs described in arXiv:1904.11148v1 [cs.SD], April 25, 2019. Since the same kernel can produce different effects for the same audio data depending on which frequency band the audio data is located in, some unification of such effects across different frequency bands should be useful. For example, frequency transform layer 580 is located in the middle of the depth of block 500.

[0060] В некоторых вариантах осуществления, в конце блока 500, слой 590, аналогичный слою-"узкому месту", имеющему на одно более двумерных ядер 1×1, может использоваться для того, чтобы формировать вывод тензора с N картами признаков.[0060] In some embodiments, at the end of block 500, a layer 590 similar to a bottleneck layer having one more 2D 1×1 kernels may be used to generate a tensor output with N feature maps.

[0061] 4.1.1.1.1. Разделимая свертка по глубине со стробированием[0061] 4.1.1.1.1 Depthwise Separable Convolution with Gating

[0062] Фиг. 6 иллюстрирует примерную модель нейронной сети, которая соответствует варианту осуществления блока 506 и каждого другого аналогичного блока, проиллюстрированного на фиг. 5. В некоторых вариантах осуществления, блок 600 содержит разделимую по глубине свертку с нелинейной активирующей функцией, такой как стробированная единица линейных измерений (GLU). Как проиллюстрировано на фиг. 6, первая трасса в GLU содержит небольшой conv2d -слой по глубине, к примеру, conv2d -слой 602 3×3, после которого следует слой 604 пакетной нормализации. Вторая трасса в GLU аналогично содержит conv2d-слой 606 3×3, после которого следует слой 608 пакетной нормализации, после которого затем следует обучаемая стробирующая функция, такая как сигмоидальная нелинейная активирующая функция. Так же, как в плотном блоке, проиллюстрированном на фиг. 5, небольшие conv2d-слои в последовательных сверточных слоях блока 500 могут использовать экспоненциально увеличивающиеся растяжения вдоль временной оси, чтобы моделировать все больший объем контекстной информация. Например, блоки 602 и 606 в сверточном слое, который соответствует блоку 506, могут быть ассоциированы с коэффициентом растяжения в 1, и аналогичные блоки в следующем сверточном слое, который может соответствовать варианту осуществления блока 508, могут быть ассоциированы с коэффициентом растяжения в 2. Стробирующая функция идентифицирует важные области входных данных для интересующей задачи. Две трассы объединяются посредством оператора 618 произведения Адамара; conv2d-слой 612 1×1 распознает взаимные соединения между картами выходных признаков, сформированными посредством комбинации двух трасс, в качестве части разделимой свертки по глубине. После слоя 612 может следовать слой 614 пакетной нормализации и нелинейная активирующая функция 616, такая как PReLU.[0062] Fig. 6 illustrates an example model of a neural network that corresponds to an embodiment of block 506 and each other similar block illustrated in Fig. 5. In some embodiments, block 600 comprises a depthwise separable convolution with a nonlinear activation function, such as a gated linear measurement unit (GLU). As illustrated in Fig. 6, the first trace in the GLU comprises a small conv2d layer in depth, such as a 3x3 conv2d layer 602, followed by a batch normalization layer 604. The second trace in the GLU similarly comprises a 3x3 conv2d layer 606, followed by a batch normalization layer 608, which is then followed by a learnable gating function, such as a sigmoid nonlinear activation function. Just as in the dense block illustrated in Fig. 5, small conv2d layers in successive convolutional layers of block 500 may use exponentially increasing stretches along the time axis to model increasingly larger amounts of contextual information. For example, blocks 602 and 606 in the convolutional layer that corresponds to block 506 may be associated with a stretch factor of 1, and similar blocks in the next convolutional layer, which may correspond to an embodiment of block 508, may be associated with a stretch factor of 2. The gating function identifies important regions of the input data for the task of interest. The two traces are combined via a Hadamard product operator 618; a 1×1 conv2d layer 612 recognizes mutual connections between the output feature maps formed by the combination of the two traces, as part of a separable depthwise convolution. The layer 612 may be followed by a batch normalization layer 614 and a nonlinear activation function 616, such as PReLU.

[0063] 4.1.2.2. Остаточный блок и рекуррентный слой[0063] 4.1.2.2 Residual Block and Recurrent Layer

[0064] Фиг. 7 иллюстрирует примерную модель нейронной сети, которая соответствует варианту осуществления блока 310 и каждого другого аналогичного блока, проиллюстрированного на фиг. 3. В некоторых вариантах осуществления, блок 500, проиллюстрированный на фиг. 5, который также соответствует варианту осуществления блока 310, может заменяться посредством остаточного блока 700 для сокращенного числа соединений. Блок 700 содержит несколько сверточных слоев, к примеру, слои 720 и 730.[0064] Fig. 7 illustrates an example model of a neural network that corresponds to an embodiment of block 310 and each other similar block illustrated in Fig. 3. In some embodiments, block 500 illustrated in Fig. 5, which also corresponds to an embodiment of block 310, can be replaced by a residual block 700 for a reduced number of connections. Block 700 comprises several convolutional layers, such as layers 720 and 730.

[0065] В некоторых вариантах осуществления, каждый сверточный слой содержит слой-"узкое место", аналогичный блоку 504, проиллюстрированному на фиг. 5, такой как слой 704. После слоя-"узкого места" также может следовать нелинейная активация, такая как PReLU и/или слой пакетной нормализации.[0065] In some embodiments, each convolutional layer comprises a bottleneck layer similar to block 504 illustrated in Fig. 5, such as layer 704. The bottleneck layer may also be followed by a nonlinear activation, such as a PReLU and/or a batch normalization layer.

[0066] В некоторых вариантах осуществления, сверточный слой также содержит небольшой conv2d-слой, аналогичный блоку 506, проиллюстрированному на фиг. 5, такой как conv2d-слой 706 3x3. Небольшой conv2d-блок может выполняться с растяжением, с экспоненциально увеличивающимися коэффициентами растяжения по последовательным сверточным слоям. Небольшой conv2d-слой может заменяться посредством разделимой свертки по глубине со стробированием, как проиллюстрировано на фиг. 6.[0066] In some embodiments, the convolutional layer also comprises a small conv2d layer similar to block 506 illustrated in Fig. 5, such as a 3x3 conv2d layer 706. The small conv2d block may be performed with stretching, with exponentially increasing stretching factors over successive convolutional layers. The small conv2d layer may be replaced by a separable depthwise convolution with gating, as illustrated in Fig. 6.

[0067] В некоторых вариантах осуществления, сверточный слой содержит другой conv2d-слой 1×1, к примеру, слой 708, который совпадает с выводом блока 706 обратно во ввод блока 704, с точки зрения размера и, в частности, числа каналов или карт признаков. Вывод затем суммируется с входными данными через оператор 710 произведения Адамара, чтобы уменьшать проблему исчезновения градиента при использовании обратного распространения для того, чтобы обучать сеть, поскольку градиент должен иметь прямой тракт из выходной во входную сторону вообще без промежуточного умножения. После conv1×1-слоя также может следовать нелинейная активация, такая как PReLU и/или слой пакетной нормализации.[0067] In some embodiments, the convolutional layer comprises another 1x1 conv2d layer, such as layer 708, which is the same as the output of block 706 back to the input of block 704, in terms of size and, in particular, the number of channels or feature maps. The output is then summed with the input data via a Hadamard product operator 710 to reduce the gradient vanishing problem when using backpropagation to train the network, since the gradient should have a direct path from the output to the input side without any intermediate multiplication at all. The conv1x1 layer may also be followed by a nonlinear activation, such as a PReLU and/or a batch normalization layer.

[0068] В некоторых вариантах осуществления, блок 500, проиллюстрированный на фиг. 5, который также соответствует варианту осуществления блока 310, может заменяться посредством рекуррентного слоя, содержащего по меньшей мере одну рекуррентную нейронную сеть (RNN). Использование RNN для моделирования длинных временных последовательностей может представлять собой эффективный подход. "Эффективный" означает то, что RNN может моделировать очень длинные временные последовательности посредством хранения внутреннего вектора скрытых состояний в качестве сводки всей предыстории, которую она наблюдает, и формирования выводов для каждого нового кадра на основе этого вектора. По сравнению с использованием растяжения в CNN-слоях, размер буфера для сохранения предыдущей информации для RNN гораздо меньше (только 1 вектор, по сравнению с 2d+1 векторов для CNN, где d является коэффициентом растяжения).[0068] In some embodiments, block 500 illustrated in Fig. 5, which also corresponds to the embodiment of block 310, may be replaced by a recurrent layer comprising at least one recurrent neural network (RNN). Using an RNN to model long temporal sequences may be an efficient approach. "Efficient" means that the RNN can model very long temporal sequences by storing an internal vector of hidden states as a summary of all the history it has observed and generating output for each new frame based on this vector. Compared to using stretching in CNN layers, the buffer size for storing previous information for an RNN is much smaller (only 1 vector, compared to 2d+1 vectors for a CNN, where d is the stretching factor).

[0069] 4.2. Обучение модели[0069] 4.2. Model training

[0070] В некоторых вариантах осуществления, обучение модели нейронной сети 208 может выполняться в качестве сквозного процесса. Альтернативно, блок 308 извлечения признаков и сетевой U-блок 340 могут обучаться отдельно, при этом вывод применения блока 308 извлечения признаков к фактическим данным может использоваться в качестве обучающих данных для сетевого U-блока.[0070] In some embodiments, training of the neural network model 208 may be performed as an end-to-end process. Alternatively, the feature extraction unit 308 and the network U-unit 340 may be trained separately, and the output of applying the feature extraction unit 308 to the actual data may be used as training data for the network U-unit.

[0071] Разнесенные обучающие данные используются для обучения модели 208 нейронной сети, проиллюстрированной на фиг. 2. В некоторых вариантах осуществления, разнесение включает разнесение говорящих, посредством включения в естественные речевые фрагменты обучающих данных в широком диапазоне разговорных стилей, с точки зрения скорости, эмоции и других атрибутов. Каждый обучающий речевой фрагмент может представлять собой речь от одного говорящего или диалог между несколькими говорящими.[0071] Diverse training data is used to train the neural network model 208 illustrated in Fig. 2. In some embodiments, diversity includes diversity of speakers by including in natural speech chunks of training data a wide range of conversational styles, in terms of speed, emotion, and other attributes. Each training speech chunk may represent speech from a single speaker or a dialogue between multiple speakers.

[0072] В некоторых вариантах осуществления, разнесение исходит из включения концентрированных данных шума, включающих в себя данные реверберации. База данных, такая как AudioSet, может использоваться в качестве посевной базы данных шумов. Сервер 102 может отфильтровывать каждый клип в посевной базе данных шумов с меткой класса, которая указывает вероятное присутствие речи в клипе. Например, класс "человеческого голоса" в данной онтологии может отфильтровываться. Посевная база данных шумов дополнительно может фильтроваться посредством применения любой технологии разделения речи, известной для специалистов в данной области техники, для того чтобы удалять дополнительные клипы, в которых с большой вероятностью присутствует речь. Например, любой клип, для которого речевое прогнозирование содержит по меньшей мере один кадр (например, длины 100 мс) со среднеквадратической энергией выше порогового значения (например, 1е-3), удаляется.[0072] In some embodiments, the diversity results from the inclusion of concentrated noise data, including reverberation data. A database such as AudioSet can be used as a seed noise database. Server 102 can filter each clip in the seed noise database with a class label that indicates the likely presence of speech in the clip. For example, the class of "human voice" in this ontology can be filtered. The seed noise database can be further filtered by applying any speech separation technology known to those skilled in the art in order to remove additional clips in which speech is highly likely to be present. For example, any clip for which the speech prediction contains at least one frame (e.g., 100 ms long) with an RMS energy above a threshold (e.g., 1e-3) is removed.

[0073] В некоторых вариантах осуществления, разнесение увеличивается посредством включения широкого диапазона уровней интенсивности в смешение шума с речью. При составлении зашумленного сигнала, сервер 102, соответственно, может масштабировать чистый речевой сигнал и шумовой сигнал до предварительно определенных самых громких уровней, случайно регулировать каждый из них вниз на единицу из диапазона дБ, к примеру, в 0-30 дБ, и случайно суммировать отрегулированный чистый речевой сигнал и отрегулированный шумовой сигнал согласно предварительно определенному наименьшему отношению "сигнал-шум". Обнаружено, что такой широкий диапазон уровней громкости помогает уменьшать избыточное подавление речи (или недостаточное подавление шума).[0073] In some embodiments, diversity is increased by including a wide range of intensity levels in the noise-speech mix. When composing the noisy signal, the server 102 may accordingly scale the clean speech signal and the noise signal to predetermined loudest levels, randomly adjust each of them down by one from a dB range, such as 0-30 dB, and randomly sum the adjusted clean speech signal and the adjusted noise signal according to a predetermined lowest signal-to-noise ratio. It has been found that such a wide range of loudness levels helps reduce oversuppression of speech (or undersuppression of noise).

[0074] В некоторых вариантах осуществления, разнесение заключается в присутствии данных в различных полосах частот. Сервер 102 может создавать сигналы, имеющие, по меньшей мере, определенный процент в конкретной полосе частот конкретной полосы пропускания, к примеру, по меньшей мере, 20% в полосе частот от 300 Гц до 500 Гц.[0074] In some embodiments, diversity consists of the presence of data in different frequency bands. Server 102 can create signals having at least a certain percentage in a specific frequency band of a specific bandwidth, for example, at least 20% in a frequency band from 300 Hz to 500 Hz.

[0075] В некоторых вариантах осуществления, сервер 102 обучает модель 208 нейронной сети с использованием любого процесса оптимизации, известного для специалистов в данной области техники, такого как алгоритм оптимизации на основе стохастического градиентного спуска, в котором весовые коэффициенты обновляются с использованием алгоритма на основе обратного распространения ошибки. Модель 208 нейронной сети может минимизировать потери в силу среднеквадратической ошибки (MSE) между прогнозированной маской и маской на основе экспериментально полученный проверочный данный для каждой полосы частот 6 каждом кадре. Маска на основе экспериментально полученный проверочный данный может вычисляться в качестве отношения энергии речи и суммы энергий речи и шумов.[0075] In some embodiments, the server 102 trains the neural network model 208 using any optimization process known to those skilled in the art, such as a stochastic gradient descent optimization algorithm in which the weights are updated using a backpropagation algorithm. The neural network model 208 can minimize the mean square error (MSE) loss between the predicted mask and the mask based on the experimentally obtained test data for each frequency band 6 in each frame. The mask based on the experimentally obtained test data can be calculated as a ratio of the speech energy and the sum of the speech and noise energies.

[0076] В некоторых вариантах осуществления, поскольку избыточное подавление ухудшает качество речи больше, чем недостаточное подавление речи, сервер 102 использует взвешенную MSE, которая назначает больший штраф избыточному подавлению речи. Поскольку значение маски, сформированное посредством модели 208 нейронной сети, указывает объем речи, присутствующей, когда прогнозированное значение маски меньше значения маски на основе экспериментально полученных проверочных данных, меньше речи прогнозируется, чем экспериментально полученные проверочные данные, и в силу этого больше речи подавляется, чем требуется, что приводит к избыточному подавлению речи посредством модели нейронной сети. Например, взвешенная MSE может вычисляться следующим образом:[0076] In some embodiments, since over-suppression degrades speech quality more than under-suppression of speech, the server 102 uses a weighted MSE that assigns a greater penalty to over-suppression of speech. Since the mask value generated by the neural network model 208 indicates the amount of speech present when the predicted mask value is less than the mask value based on the experimentally obtained test data, less speech is predicted than the experimentally obtained test data, and therefore more speech is suppressed than required, which results in over-suppression of speech by the neural network model. For example, the weighted MSE may be calculated as follows:

где и m(t, f) представляют прогнозированные значения и значения маски на основе экспериментально полученных проверочных данных для времени - полосы частот (t, f), соответственно, и ρ представляют константу, эмпирически определенную (обычно заданную большей 0,5) таким образом, чтобы предоставлять больший весовой коэффициент избыточному подавлению речи.Where and m(t, f) represent predicted values and mask values based on experimentally obtained test data for the time-frequency band (t, f), respectively, and ρ represents a constant empirically determined (usually set greater than 0.5) so as to give greater weight to excessive speech suppression.

[0077] В некоторых вариантах осуществления, модель 208 нейронной сети обучается с возможностью прогнозировать распределение речи (а не одно значение маски) по различным частотным бинам в каждой полосе частот. Б частности, сервер 102 может обучать модель прогнозировать значения среднего и дисперсии гауссова распределения для каждой полосы частот в каждом кадре, причем среднее представляет наилучшее прогнозирование значения маски посредством модели 208 нейронной сети. Функция потерь для гауссова распределения может задаваться следующим образом:[0077] In some embodiments, the neural network model 208 is trained to predict the distribution of speech (rather than a single mask value) across different frequency bins in each frequency band. In particular, the server 102 may train the model to predict the mean and variance values of a Gaussian distribution for each frequency band in each frame, where the mean represents the best prediction of the mask value by the neural network model 208. The loss function for the Gaussian distribution may be defined as follows:

где представляет прогнозирование среднеквадратического отклонения для (t, f).Where represents the standard deviation prediction for (t, f).

[0078] В некоторый вариантах осуществления, прогнозирование по дисперсии может интерпретироваться в качестве доверия в среднем прогнозировании, чтобы уменьшать возникновение избыточного подавления речи. Когда среднее прогнозирование является относительно низким, что указывает низкий объем присутствующей речи, и прогнозирование по дисперсии является относительно высоким, это может указывать вероятное избыточное подавление речи, и маска полосы частот затем может повышающе масштабироваться. Примерная масштабная функция для формирования отрегулированного усиления на основе среднеквадратического отклонения является следующей:[0078] In some embodiments, the variance prediction may be interpreted as a confidence in the average prediction to reduce the occurrence of excessive speech suppression. When the average prediction is relatively low, indicating a low amount of speech present, and the variance prediction is relatively high, this may indicate a likely excessive speech suppression, and the bandwidth mask may then be scaled up. An exemplary scaling function for generating an adjusted gain based on the standard deviation is as follows:

Масштабная функция увеличивает маску полосы частот (усиление) пропорционально среднеквадратическому отклонению. Когда среднеквадратическое отклонение является большим, маска масштабируется таким образом, что она больше среднего значения, но при этом меньше или равна 1, и когда среднеквадратическое отклонение равно 0, маска должна быть равна среднему значению.The scaling function increases the bandwidth mask (gain) proportionally to the standard deviation. When the standard deviation is large, the mask is scaled so that it is larger than the mean but less than or equal to 1, and when the standard deviation is 0, the mask should be equal to the mean.

[0079] В некоторых вариантах осуществления, при условии гауссова распределения для каждой маски, вероятность каждого наблюдаемого (целевого) значения маски является следующей:[0079] In some embodiments, assuming a Gaussian distribution for each mask, the probability of each observed (target) mask value is as follows:

Минимизация отрицательного логарифма этой вероятности (эквивалентная максимизации самой вероятности) приводит к вышеизложенной гауссовой функции потерь.Minimizing the negative logarithm of this probability (equivalent to maximizing the probability itself) leads to the above Gaussian loss function.

[0080] 4.3. Выполнение модели[0080] 4.3. Model execution

[0081] В некоторых вариантах осуществления, сервер 102 может разрешать в качестве входных данных отдельный кадр или набор кадров, когда упреждающий просмотр реализуется в модели 208 нейронной сети, в частности, в блоке 308 извлечения признаков, и формировать, по меньшей мере, значение маски для каждого кадра в качестве выходных данных. Для каждого сверточного слоя с размером ядра, большим единицы вдоль временного измерения, сервер 102 хранит внутренний буфер, чтобы сохранять предысторию, которая ему требуется для того, чтобы формировать выходные данные. Буфер может поддерживаться в качестве очереди с размером, равным рецептивному полю сверточного слоя вдоль временного измерения.[0081] In some embodiments, the server 102 may accept a single frame or a set of frames as input when lookahead is implemented in the neural network model 208, in particular in the feature extraction unit 308, and generate at least a mask value for each frame as output. For each convolutional layer with a kernel size greater than one along the time dimension, the server 102 stores an internal buffer to store the history that it requires in order to generate the output. The buffer may be maintained as a queue with a size equal to the receptive field of the convolutional layer along the time dimension.

[0082] 5. Примерные процессы[0082] 5. Sample processes

[0083] Фиг. 8 иллюстрирует примерный процесс, выполняемый с серверным компьютером управления аудио в соответствии с некоторыми вариантами осуществления, описанными в данном документе. Фиг. 8 показывается в упрощенном схематичном формате для целей иллюстрации наглядного примера, и другие варианты осуществления могут включать в себя большее число элементов, меньшее число элементов или другие элементы, соединенные различными способами. Фиг. 8 имеет намерение раскрывать алгоритм, план или краткий обзор, который может использоваться для того, чтобы реализовывать одну или более компьютерных программ или других программных элементов, которые при выполнении приводят к осуществлению функциональных улучшений и технических усовершенствований, которые описываются в данном документе. Кроме того, блок-схемы последовательности операций способа в данном документе описываются на идентичном уровне детализации, который специалисты в данной области техники обычно используют для того, чтобы обмениваться данными между собой, относительно алгоритмов, планов или спецификаций, формирующих основу программно-реализованных программ, которые они планируют кодировать или реализовывать с использованием своих накопленных навыков и знаний.[0083] Fig. 8 illustrates an example process performed with an audio management server computer in accordance with some embodiments described herein. Fig. 8 is shown in a simplified schematic format for the purpose of illustrating an illustrative example, and other embodiments may include more elements, fewer elements, or other elements connected in different ways. Fig. 8 is intended to disclose an algorithm, plan, or overview that can be used to implement one or more computer programs or other software elements that, when executed, result in the implementation of the functional improvements and technical improvements that are described herein. Moreover, the flow charts of the method herein are described at the same level of detail that those skilled in the art commonly use to communicate with each other regarding the algorithms, plans, or specifications that form the basis of the software programs that they plan to code or implement using their accumulated skills and knowledge.

[0084] В некоторых вариантах осуществления, на этапе 802, сервер 102 программируется с возможностью принимать входные аудиоданные, покрывающие множество полос частот вдоль частотного измерения во множестве кадров вдоль временного измерения. В некоторых вариантах осуществления, множество полос частот представляют собой перцепционно обусловленные полосы частот, покрывающие больше частотных бинов на верхних частотах.[0084] In some embodiments, at step 802, the server 102 is programmed to receive input audio data covering a plurality of frequency bands along a frequency dimension in a plurality of frames along a time dimension. In some embodiments, the plurality of frequency bands are perceptually conditioned frequency bands covering more frequency bins at higher frequencies.

[0085] В некоторых вариантах осуществления, на этапе 804, сервер 102 программируется с возможностью обучать модель нейронной сети. Модель нейронной сети содержит блок извлечения признаков, который реализует упреждающий просмотр конкретного числа кадров при извлечении признаков из входных аудиоданных; кодер, который включает в себя первую последовательность блоков, формирующих карты признаков, соответствующие все большим рецептивным полям во входных аудиоданных вдоль частотного измерения; декодер, который включает в себя вторую последовательность блоков, принимающих карты выходных признаков, сформированные посредством кодера, в качестве карт входных признаков; и блок классификации, который формирует речевое значение, указывающее объем речи, присутствующей для каждой полосы частот из множества полос частот в каждом кадре из множества кадров.[0085] In some embodiments, at step 804, the server 102 is programmed to train a neural network model. The neural network model comprises a feature extractor that implements look-ahead of a specific number of frames when extracting features from input audio data; an encoder that includes a first sequence of blocks that generate feature maps corresponding to increasingly larger receptive fields in the input audio data along a frequency dimension; a decoder that includes a second sequence of blocks that receive output feature maps generated by the encoder as input feature maps; and a classification unit that generates a speech value indicating the amount of speech present for each frequency band of a plurality of frequency bands in each frame of the plurality of frames.

[0086] В некоторых вариантах осуществления, блок извлечения признаков имеет сверточное ядро, которое имеет конкретный размер вдоль временного измерения, и кодер и декодер не имеют сверточного ядра, которое имеет размер вдоль временного измерения, который равен или выше конкретного размера. В других вариантах осуществления, каждое из блока извлечения признаков, первой последовательности блоков и второй последовательности блоков формирует общее число карт признаков.[0086] In some embodiments, the feature extractor has a convolutional kernel that has a specific size along the time dimension, and the encoder and decoder do not have a convolutional kernel that has a size along the time dimension that is equal to or greater than the specific size. In other embodiments, each of the feature extractor, the first sequence of blocks, and the second sequence of blocks generates a common number of feature maps.

[0087] В некоторых вариантах осуществления, блок извлечения признаков содержит слой пакетной нормализации, после которого следует сверточный слой с двумерным сверточным ядром.[0087] In some embodiments, the feature extraction unit comprises a batch normalization layer followed by a convolutional layer with a two-dimensional convolutional kernel.

[0088] В некоторых вариантах осуществления, каждый блок из первой последовательности блоков в кодере содержит блок вычисления признаков и модуль понижающей частотной дискретизации. Блок вычисления признаков содержит[0088] In some embodiments, each block of the first sequence of blocks in the encoder comprises a feature computing unit and a downsampling module. The feature computing unit comprises

последовательность сверточных слоев.sequence of convolutional layers.

[0089] В некоторых вариантах осуществления, выходные данные сверточного слоя из последовательности сверточных слоев подаются во все последующие сверточные слои из последовательности сверточных слоев. Последовательность сверточных слоев реализует все большее растяжение вдоль временного измерения. В других вариантах осуществления, каждая из последовательностей сверточных слоев содержит разделимые сверточные блоки по глубине со стробирующим механизмом.[0089] In some embodiments, the output of a convolutional layer from a sequence of convolutional layers is fed to all subsequent convolutional layers from the sequence of convolutional layers. The sequence of convolutional layers implements increasing stretching along the time dimension. In other embodiments, each of the sequences of convolutional layers comprises separable convolutional blocks by depth with a gating mechanism.

[0090] В некоторых вариантах осуществления, каждая из последовательностей сверточных слоев содержит остаточный блок, имеющий последовательность сверточных блоков, включающую в себя первый сверточный блок, имеющий первое поочередное двумерное сверточное ядро, и последний сверточный блок, имеющий последнее поочередное двумерное сверточное ядро.[0090] In some embodiments, each of the sequences of convolutional layers comprises a residual block having a sequence of convolutional blocks including a first convolutional block having a first alternating two-dimensional convolutional kernel and a last convolutional block having a last alternating two-dimensional convolutional kernel.

[0091] В некоторых вариантах осуществления, выходные данные блока вычисления признаков в блоке из первой последовательности блоков масштабируются посредством обучаемого весового коэффициента, чтобы формировать масштабированные выходные данные, и масштабированные выходные данные передаются в блок из второй последовательности блоков в декодере через прыжковое соединение.[0091] In some embodiments, the output of a feature computing unit in a block of a first sequence of blocks is scaled by a learnable weight to generate scaled output, and the scaled output is transmitted to a block of a second sequence of blocks in a decoder via a hop connection.

[0092] В некоторых вариантах осуществления, модуль понижающей частотной дискретизации блока в первой последовательности блоков содержит сверточные ядра с размером шага, большим единицы, вдоль частотного измерения.[0092] In some embodiments, the block downsampling module in the first sequence of blocks comprises convolutional kernels with a stride size greater than one along the frequency dimension.

[0093] В некоторых вариантах осуществления, каждый блок из второй последовательности блоков содержит блок вычисления признаков и модуль повышающей частотной дискретизации. Блок вычисления признаков в блоке из второй последовательности блоков принимает первые выходные данные из блока вычисления признаков в блоке из первой последовательности блоков и вторые выходные данные из модуля повышающей частотной дискретизации предыдущего блока во второй последовательности блоков. Первые выходные данные и вторые выходные данные затем конкатенируются или суммируются для того, чтобы формировать конкретные входные данные для блока вычисления признаков в блоке из второй последовательности блоков.[0093] In some embodiments, each block of the second sequence of blocks comprises a feature computing unit and an upsampling module. The feature computing unit in a block of the second sequence of blocks receives first output data from the feature computing unit in a block of the first sequence of blocks and second output data from the upsampling module of the previous block in the second sequence of blocks. The first output data and the second output data are then concatenated or summed to form specific input data for the feature computing unit in a block of the second sequence of blocks.

[0094] В некоторых вариантах осуществления, блок классификации содержит поочередное двумерное сверточное ядро и нелинейную активирующую функцию.[0094] In some embodiments, the classification block comprises an alternating two-dimensional convolutional kernel and a nonlinear activation function.

[0095] В некоторых вариантах осуществления, модель нейронной сети дополнительно содержит блок вычисления признаков, выводящий данные кодера и вводящий данные декодера.[0095] In some embodiments, the neural network model further comprises a feature computing unit that outputs encoder data and inputs decoder data.

[0096] В некоторых вариантах осуществления, сервер 102 программируется с возможностью выполнять обучение с функцией потерь между прогнозированным речевым значением и речевым значением на основе экспериментально полученных проверочных данных для каждой полосы частот из множества полос частот в каждом кадре с большим весовым коэффициентом в функции потерь, когда прогнозированное речевое значение соответствует избыточному подавлению речи, и меньшим весовым коэффициентом в функции потерь, когда прогнозированное речевое значение соответствует недостаточному подавлению речи. В некоторых вариантах осуществления, блок классификации дополнительно формирует распределение объемов речи по полосе частот из множества полос частот в кадре, причем речевое значение представляет собой среднее значение распределения.[0096] In some embodiments, the server 102 is programmed to perform training with a loss function between a predicted speech value and a speech value based on experimentally obtained test data for each frequency band of the plurality of frequency bands in each frame with a larger weight in the loss function when the predicted speech value corresponds to excessive speech suppression, and a smaller weight in the loss function when the predicted speech value corresponds to insufficient speech suppression. In some embodiments, the classification unit further generates a distribution of speech volumes by frequency band of the plurality of frequency bands in the frame, wherein the speech value is an average value of the distribution.

[0097] В некоторых вариантах осуществления, входные аудиоданные содержат данные, соответствующие речи различных скоростей или эмоций, данные, содержащие различные уровни шума, или данные, соответствующие различным частотным бинам.[0097] In some embodiments, the input audio data comprises data corresponding to speech of different rates or emotions, data containing different levels of noise, or data corresponding to different frequency bins.

[0098] В некоторых вариантах осуществления, на этапе 806, сервер 102 программируется с возможностью принимать новые аудиоданные, содержащие один или более кадров.[0098] In some embodiments, at step 806, the server 102 is programmed to receive new audio data comprising one or more frames.

[0099] В некоторых вариантах осуществления, на этапе 808, сервер 102 программируется с возможностью выполнять модель нейронной сети для новых аудиоданных, чтобы формировать новые речевые значения для каждой полосы частот из множества полос частот в каждом кадре из одного или более кадров.[0099] In some embodiments, at step 808, the server 102 is programmed to execute a neural network model on new audio data to generate new speech values for each frequency band of a plurality of frequency bands in each frame of one or more frames.

[0100] В некоторых вариантах осуществления, на этапе 810, сервер 102 программируется с возможностью формировать новые выходные данные, подавляющие шум в новых аудиоданных на основе новых речевых значений.[0100] In some embodiments, at step 810, the server 102 is programmed to generate new output data that suppresses noise in the new audio data based on the new speech values.

[0101] В некоторых вариантах осуществления, на этапе 812, сервер 102 программируется с возможностью передачи новых выходных данных.[0101] In some embodiments, at step 812, the server 102 is programmed to transmit new output data.

[0102] В некоторых вариантах осуществления, сервер 102 программируется с возможностью принимать форму входного сигнала. Сервер 102 программируется с возможностью затем преобразовывать форму входного сигнала в необработанные аудиоданные, покрывающие множество частотных бинов вдоль частотного измерения, в одном или более кадрах вдоль временного измерения. Сервер 102 программируется с возможностью затем преобразовывать необработанные аудиоданные в новые аудиоданные посредством группирования множества частотных бинов во множество полос частот. Сервер 102 программируется с возможностью выполнять обратное формирование полос частот в отношении новых речевых значений, чтобы формировать обновленные речевые значения для каждого частотного бина из множества частотных бинов в каждом кадре из одного или более кадров. Помимо этого, сервер 102 программируется с возможностью затем применять обновленные речевые значения к необработанным аудиоданным, чтобы формировать новые выходные данные. В завершение, сервер 102 программируется с возможностью преобразовывать новые выходные данные в улучшенную форму сигнала.[0102] In some embodiments, the server 102 is programmed to receive an input signal waveform. The server 102 is programmed to then transform the input signal waveform into raw audio data covering a plurality of frequency bins along a frequency dimension, in one or more frames along a time dimension. The server 102 is programmed to then transform the raw audio data into new audio data by grouping the plurality of frequency bins into a plurality of frequency bands. The server 102 is programmed to perform inverse frequency band shaping on the new speech values in order to generate updated speech values for each frequency bin of the plurality of frequency bins in each frame of the one or more frames. In addition, the server 102 is programmed to then apply the updated speech values to the raw audio data in order to generate new output data. Finally, the server 102 is programmed to transform the new output data into an improved waveform.

[0103] 6. Аппаратная реализация[0103] 6. Hardware implementation

[0104] Согласно одному варианту осуществления, технологии, описанные в данном документе, реализуются, по меньшей мере, посредством одного вычислительного устройства. Технологии могут реализовываться полностью или частично с использованием комбинации, по меньшей мере, одного серверного компьютера и/или других вычислительных устройств, которые соединяются с использованием сети, к примеру, сети пакетной передачи данных. Вычислительные устройства могут быть аппаратно-реализованными с возможностью выполнять технологии либо могут включать в себя цифровые электронные устройства, к примеру, по меньшей мере, одну специализированную интегральную схему (ASIC) или программируемую пользователем вентильную матрицу (FPGA), которая постоянно программируется с возможностью выполнять технологии, или может включать в себя, по меньшей мере, один аппаратный процессор общего назначения, программируемый с возможностью выполнять технологии в соответствии с программными инструкциями в микропрограммном обеспечении, запоминающем устройстве, другом устройстве хранения данных либо в комбинации. Такие вычислительные устройства также могут комбинировать индивидуально настраиваемую аппаратно-реализованную логику, ASIC или FPGA с индивидуальным заказным программированием, чтобы осуществлять описанные технологии. Вычислительные устройства могут представлять собой серверные компьютеры, рабочие станции, персональные компьютеры, портативные компьютерные системы, карманные устройства, мобильные вычислительные устройства, носимые устройства, устанавливаемые на теле или имплантируемые устройства, смартфоны, интеллектуальные приборы, межсетевые соединительные устройства, автономные или полуавтономные устройства, такие как роботы или беспилотные наземные или летательные аппараты, любое другое электронное устройство, которое включает аппаратно-реализованную и/или программную логику для того, чтобы реализовывать описанные технологии, одну или более виртуальных вычислительных машин или экземпляров в центре обработки и хранения данных, и/или сеть серверных компьютеров и/или персональных компьютеров.[0104] According to one embodiment, the technologies described herein are implemented by at least one computing device. The technologies may be implemented in whole or in part using a combination of at least one server computer and/or other computing devices that are connected using a network, such as a packet data network. The computing devices may be hardware-implemented with the ability to perform the technologies or may include digital electronic devices, such as at least one application-specific integrated circuit (ASIC) or field-programmable gate array (FPGA), which is permanently programmed with the ability to perform the technologies, or may include at least one general-purpose hardware processor programmable with the ability to perform the technologies in accordance with software instructions in firmware, memory, other data storage device, or a combination. Such computing devices may also combine customized hardware-implemented logic, ASIC or FPGA with individual custom programming to implement the described technologies. The computing devices may be server computers, workstations, personal computers, portable computer systems, handheld devices, mobile computing devices, wearable devices, body-mounted or implantable devices, smartphones, smart devices, internetworking interconnect devices, autonomous or semi-autonomous devices such as robots or unmanned ground or aerial vehicles, any other electronic device that includes hardware and/or software logic to implement the described technologies, one or more virtual computers or instances in a data center, and/or a network of server computers and/or personal computers.

[0105] Фиг. 9 является блок-схемой, которая иллюстрирует примерную компьютерную систему, с помощью которой может реализовываться вариант осуществления. В примере по фиг. 9, компьютерная система 900 и инструкции для реализации раскрытых технологий в аппаратных средствах, программном обеспечении либо комбинации аппаратных средств и программного обеспечения представляются схематично, например, в качестве квадратов и кругов, на идентичном уровне детализации, который повсеместно используется специалистами в области техники, к которой относится это раскрытие, для обмена данными относительно компьютерной архитектуры и реализаций компьютерных систем.[0105] Fig. 9 is a block diagram that illustrates an example computer system with which an embodiment may be implemented. In the example of Fig. 9, the computer system 900 and instructions for implementing the disclosed technologies in hardware, software, or a combination of hardware and software are represented schematically, such as squares and circles, at the same level of detail that is commonly used by those skilled in the art to which this disclosure pertains to communicating data regarding computer architecture and implementations of computer systems.

[0106] Компьютерная система 900 включает в себя подсистему 902 ввода-вывода, которая может включать в себя шину и/или другой механизм(ы) связи для передачи информации и/или инструкций между компонентами компьютерной системы 900 по трактам передачи электронных сигналов. Подсистема 902 ввода-вывода может включать в себя контроллер ввода-вывода, контроллер запоминающего устройства и, по меньшей мере, один порт ввода-вывода. Тракты передачи электронных сигналов представляются схематично на чертежах, например, в качестве линий, однонаправленных стрелок или двунаправленных стрелок.[0106] The computer system 900 includes an input/output subsystem 902 that may include a bus and/or other communication mechanism(s) for transmitting information and/or instructions between components of the computer system 900 over electronic signal transmission paths. The input/output subsystem 902 may include an input/output controller, a memory controller, and at least one input/output port. The electronic signal transmission paths are represented schematically in the drawings, for example, as lines, one-way arrows, or two-way arrows.

[0107] По меньшей мере, один аппаратный процессор 904 соединяется с подсистемой 902 ввода-вывода для обработки информации и инструкций. Аппаратный процессор 904 может включать в себя, например, микропроцессор или микроконтроллер общего назначения и/или микропроцессор специального назначения, такой как встроенная система или графический процессор (GPU) или процессор цифровых сигналов, или ARM-процессор. Процессор 904 может содержать интегрированное арифметико-логическое устройство (ALU) либо может соединяться с отдельным ALU.[0107] At least one hardware processor 904 is connected to the input/output subsystem 902 for processing information and instructions. The hardware processor 904 may include, for example, a general-purpose microprocessor or microcontroller and/or a special-purpose microprocessor, such as an embedded system or a graphics processing unit (GPU) or a digital signal processor, or an ARM processor. The processor 904 may contain an integrated arithmetic logic unit (ALU) or may be connected to a separate ALU.

[0108] Компьютерная система 900 включает в себя один или более блоков запоминающего устройства 906, таких как основное запоминающее устройство, которое соединяется с подсистемой 902 ввода-вывода для электронного цифрового сохранения данных и инструкций, которые должны выполняться посредством процессора 904. Запоминающее устройство 906 может включать в себя энергозависимое запоминающее устройство, такое как различные формы оперативного запоминающего устройства (RAM) или другого устройства динамического хранения данных. Запоминающее устройство 906 также может использоваться для сохранения временных переменных или другой промежуточной информации во время выполнения инструкций, которые должны выполняться посредством процессора 904. Такие инструкции, при сохранении в энергонезависимых машиночитаемых носителях данных, доступных для процессора 904, могут превращать компьютерную систему 900 в машину специального назначения, которая индивидуально настраивается с возможностью выполнять операции, указываемые в инструкциях.[0108] The computer system 900 includes one or more memory units 906, such as a main memory that is coupled to the input/output subsystem 902 for electronic digital storage of data and instructions to be executed by the processor 904. The memory unit 906 may include volatile memory such as various forms of random access memory (RAM) or other dynamic data storage device. The memory unit 906 may also be used to store temporary variables or other intermediate information during the execution of instructions to be executed by the processor 904. Such instructions, when stored in non-volatile computer-readable storage media accessible to the processor 904, may transform the computer system 900 into a special-purpose machine that is individually configured to perform the operations specified in the instructions.

[0109] Компьютерная система 900 дополнительно включает в себя энергонезависимое запоминающее устройство, такое как постоянное запоминающее устройство 908 (ROM) или другое устройство статического хранения данных, соединенное с подсистемой 902 ввода-вывода для сохранения информации и инструкций для процессора 904. ROM 908 может включать в себя различные формы программируемого ROM (PROM), такие как стираемое PROM (EPROM) или электрически стираемое PROM (EEPROM). Блок устройства 910 постоянного хранения данных может включать в себя различные формы энергонезависимого RAM (NVRAM), такое как флэш-память или полупроводниковое устройство хранения данных, магнитный диск или оптический диск, такой как CD-ROM или DVD-ROM, и может соединяться с подсистемой 902 ввода-вывода для сохранения информации и инструкций. Устройство 910 хранения данных представляет собой пример энергонезависимого машиночитаемого носителя, который может использоваться для того, чтобы сохранять инструкции и данные, которые при выполнении посредством процессора 904 приводят к осуществлению машинореализуемых способов для того, чтобы выполнять технологии в данном документе.[0109] The computer system 900 further includes a non-volatile memory device, such as a read-only memory 908 (ROM) or other static data storage device, coupled to the input/output subsystem 902 for storing information and instructions for the processor 904. ROM 908 may include various forms of programmable ROM (PROM), such as an erasable PROM (EPROM) or an electrically erasable PROM (EEPROM). The persistent data storage device unit 910 may include various forms of non-volatile RAM (NVRAM), such as flash memory or a semiconductor data storage device, a magnetic disk or an optical disk such as a CD-ROM or DVD-ROM, and may be coupled to the input/output subsystem 902 for storing information and instructions. Data storage device 910 is an example of a non-volatile computer-readable medium that can be used to store instructions and data that, when executed by processor 904, result in computer-implementable methods for performing the techniques herein.

[0110] Инструкции в запоминающем устройстве 906, ROM 908 или устройстве 910 хранения данных могут содержать один или более наборов инструкции, которые организуются в качестве модулей, методов, объектов, функций, процедур или вызовов. Инструкции могут организовываться в качестве одной или более компьютерных программ, услуг операционной системы или прикладных программ, включающих в себя мобильные приложения. Инструкции могут содержать программное обеспечение операционной системы и/или системное программное обеспечение; одну или более библиотек для того, чтобы поддерживать мультимедиа, программирование или другие функции; инструкции или стеки протоколов передачи данных для того, чтобы реализовывать TCP/IP, HTTP или другие протоколы связи; инструкции по обработке файлов для того, чтобы интерпретировать и подготавливать посредством рендеринга файлы, кодированные с использованием HTML, XML, JPEG, MPEG или PNG; пользовательские интерфейсные инструкции для того, чтобы подготавливать посредством рендеринга или интерпретировать команды для графического пользовательского интерфейса (GUI), интерфейса командной строки или текстового пользовательского интерфейса; прикладное программное обеспечение, такое как комплект офисных программ, приложения для доступа в Интернет, приложения для проектирования и производства, графические приложения, аудиоприложения, приложения для разработки программного обеспечения, образовательные приложения, игры или приложения различного назначения. Инструкции могут реализовывать веб-сервер, сервер веб-приложений или веб-клиент. Инструкции могут организовываться в качестве уровня представления, уровня приложений и уровня хранения данных, к примеру, системы реляционных баз данных с использованием языка структурированных запросов (SQL) или NoSQL, хранилища объектов, графовой базы данных, плоской файловой системы либо другого устройства хранения данных.[0110] The instructions in the memory 906, ROM 908, or data storage device 910 may comprise one or more sets of instructions that are organized as modules, methods, objects, functions, procedures, or calls. The instructions may be organized as one or more computer programs, operating system services, or application programs, including mobile applications. The instructions may comprise operating system software and/or system software; one or more libraries for supporting multimedia, programming, or other functions; data transfer protocol instructions or stacks for implementing TCP/IP, HTTP, or other communication protocols; file processing instructions for interpreting and rendering files encoded using HTML, XML, JPEG, MPEG, or PNG; user interface instructions for rendering or interpreting commands for a graphical user interface (GUI), a command line interface, or a text user interface; application software such as an office suite, web access applications, design and manufacturing applications, graphics applications, audio applications, software development applications, educational applications, games, or miscellaneous applications. Instructions may implement a web server, a web application server, or a web client. Instructions may be organized as a presentation layer, an application layer, and a data storage layer, such as a relational database system using Structured Query Language (SQL) or NoSQL, an object store, a graph database, a flat file system, or other data storage device.

[0111] Компьютерная система 900 может соединяться через подсистему 902 ввода-вывода, по меньшей мере, с одним устройством 912 вывода. В одном варианте осуществления, устройство 912 вывода представляет собой цифровой компьютерный дисплей. Примеры дисплея, который может использоваться в различных вариантах осуществления, включают в себя сенсорный дисплей или дисплей на светоизлучающих диодах (светодиодах) или жидкокристаллический дисплей (ЖК-дисплей), или дисплей в форме электронной бумаги. Компьютерная система 900 может включать в себя другой тип(ы) устройств 912 вывода, альтернативно или в дополнение к устройству отображения. Примеры других устройств 912 вывода включают в себя принтеры, билетопечатные принтеры, плоттеры, проекторы, звуковые карты или видеокарты, динамики, зуммеры или пьезоэлектрические устройства либо другие звуковые устройства, лампы или светодиодные или жидкокристаллические индикаторы, тактильные устройства, актуаторы или сервомеханизмы.[0111] The computer system 900 may be connected via the input/output subsystem 902 to at least one output device 912. In one embodiment, the output device 912 is a digital computer display. Examples of a display that may be used in various embodiments include a touchscreen display or a light-emitting diode (LED) display or a liquid crystal display (LCD), or an electronic paper display. The computer system 900 may include other type(s) of output devices 912, alternatively or in addition to the display device. Examples of other output devices 912 include printers, ticket printers, plotters, projectors, sound cards or video cards, speakers, buzzers or piezoelectric devices or other sound devices, lamps or LED or liquid crystal indicators, tactile devices, actuators or servomechanisms.

[0112] По меньшей мере, одно устройство 914 ввода соединяется с подсистемой 902 ввода-вывода для передачи сигналов, данных, выборов команд или жестов в процессор 904. Примеры устройств 914 ввода включают в себя сенсорные экраны, микрофоны, по- цифровые фото- и видеокамеры, буквенно-цифровые и другие клавиши, клавишные панели, клавиатуры, графические планшеты, сканеры изображений, джойстики, часы, выключатели, кнопки, наборные диски, ползунки и/или различные типы датчиков, таких как датчики силы, датчики движения, тепловые датчики, акселерометры, гироскопы и датчики с блоком инерциальных измерений (IMU), и/или различные типы приемо-передающих устройств, таких как беспроводные, к примеру, сотовые или Wi-Fi, радиочастотные (RF) или инфракрасные (IR) приемо-передающие устройства и приемо-передающие устройства на основе глобальной системы позиционирования (GPS).[0112] At least one input device 914 is connected to the input/output subsystem 902 for transmitting signals, data, command selections, or gestures to the processor 904. Examples of input devices 914 include touch screens, microphones, digital still and video cameras, alphanumeric and other keys, keypads, keyboards, graphic tablets, image scanners, joysticks, watches, switches, buttons, dials, sliders, and/or various types of sensors such as force sensors, motion sensors, thermal sensors, accelerometers, gyroscopes, and inertial measurement unit (IMU) sensors, and/or various types of transceivers such as wireless, such as cellular or Wi-Fi, radio frequency (RF) or infrared (IR) transceivers, and transceivers based on a global positioning system (GPS).

[0113] Другой тип устройства ввода представляет собой устройство 916 управления, которое может выполнять управление курсором или другие автоматизированные функции управления, такие как навигация в графическом интерфейсе на экране отображения, альтернативно или в дополнение к функциям ввода. Устройство 916 управления может представлять собой сенсорную панель, мышь, шаровой манипулятор или клавиши управления курсором для передачи информации направления и выборов команд в процессор 904 и для управления перемещением курсора на дисплее 912. Устройство ввода может иметь, по меньшей мере, две степени свободы в двух осях, в первой оси (например, X) и второй оси (например, Y), что обеспечивает возможность устройству указывать позиции в плоскости. Другой тип устройства ввода представляет собой проводное, беспроводное или оптическое устройство управления, такое как джойстик, зонд, консоль, руль, педаль, механизм переключения передач или другой тип устройства управления. Устройство 914 ввода может включать в себя комбинацию нескольких различных устройств ввода, таких как видеокамера и датчик глубины.[0113] Another type of input device is a control device 916 that can perform cursor control or other automated control functions, such as navigation in a graphical interface on a display screen, alternatively or in addition to the input functions. The control device 916 can be a touch pad, a mouse, a trackball or cursor control keys for transmitting directional information and command selections to the processor 904 and for controlling the movement of the cursor on the display 912. The input device can have at least two degrees of freedom in two axes, in a first axis (for example, X) and a second axis (for example, Y), which allows the device to indicate positions in a plane. Another type of input device is a wired, wireless or optical control device, such as a joystick, a probe, a console, a steering wheel, a pedal, a gear shift mechanism or another type of control device. The input device 914 can include a combination of several different input devices, such as a video camera and a depth sensor.

[0114] В другом варианте осуществления, компьютерная система 900 может содержать устройство с поддержкой стандарта Интернета вещей (IoT), в котором одно или более из устройства 912 вывода, устройства 914 ввода и устройства 916 управления опускается. Альтернативно, в таком варианте осуществления, устройство 914 ввода может содержать одну или более камер, детекторов движения, термометров, микрофонов, сейсмометров, других датчиков или детекторов, измерительных устройств или кодеров, и устройство 912 вывода может содержать дисплей специального назначения, такой как однострочный светодиодный или жидкокристаллический дисплей, один или более индикаторов, панель отображения, измеритель, клапан, соленоид, актуатор или сервомеханизм.[0114] In another embodiment, the computer system 900 may comprise a device supporting the Internet of Things (IoT) standard, in which one or more of the output device 912, the input device 914, and the control device 916 are omitted. Alternatively, in such an embodiment, the input device 914 may comprise one or more cameras, motion detectors, thermometers, microphones, seismometers, other sensors or detectors, measuring devices or encoders, and the output device 912 may comprise a special-purpose display, such as a single-line LED or liquid crystal display, one or more indicators, a display panel, a meter, a valve, a solenoid, an actuator, or a servomechanism.

[0115] Когда компьютерная система 900 представляет собой мобильное вычислительное устройство, устройство 914 ввода может содержать приемное устройство на основе глобальной системы позиционирования (GPS), соединенное с GPS-модулем, который допускает триангулирование во множество GPS-спутников, определение и формирование данных геоместоположения или позиции, таких как значения широты и долготы для геофизического местоположения компьютерной системы 900. Устройство 912 вывода может включать в себя аппаратные средства, программное обеспечение, микропрограммное обеспечение и интерфейсы для формирования пакетов сообщений относительно позиции, уведомлений, импульсных сигналов или сигналов подтверждения работоспособности либо других повторяющихся передач данных, которые указывают позицию компьютерной системы 900, отдельно или в комбинации с другими специализированными данными, направленными к хосту 924 или серверу 930.[0115] When the computer system 900 is a mobile computing device, the input device 914 may comprise a receiver based on a global positioning system (GPS) connected to a GPS module that is capable of triangulating into a plurality of GPS satellites, determining and generating geolocation or position data, such as latitude and longitude values for a geophysical location of the computer system 900. The output device 912 may include hardware, software, firmware and interfaces for generating message packets regarding a position, notifications, pulse signals or health confirmation signals or other repetitive data transmissions that indicate the position of the computer system 900, alone or in combination with other specialized data, directed to the host 924 or the server 930.

[0116] Компьютерная система 900 может реализовывать технологии, описанные в данном документе, с использованием индивидуально настраиваемой аппаратно-реализованной логики, по меньшей мере, одной ASIC или FPGA, микропрограммного обеспечения и/или программных инструкций либо логики, которая, при загрузке и использовании или выполнении в комбинации с компьютерной системой, инструктирует или программирует компьютерную систему с возможностью работать в качестве машины специального назначения. Согласно одному варианту осуществления, технологии в данном документе выполняются посредством компьютерной системы 900 в ответ на выполнение, посредством процессора 904, по меньшей мере, одной последовательности, по меньшей мере, из одной инструкции, содержащейся в основном запоминающем устройстве 906. Такие инструкции могут считываться в основное запоминающее устройство 906 из другого носителя данных, такого как устройство 910 хранения данных. Выполнение последовательностей инструкций, содержащихся в основном запоминающем устройстве 906, инструктирует процессору 904 выполнять этапы процесса, описанные в данном документе. В альтернативных вариантах осуществления, аппаратно-реализованная схема может использоваться вместо или в комбинации с программными инструкциями.[0116] The computer system 900 may implement the technologies described herein using customized hardware-implemented logic, at least one ASIC or FPGA, firmware, and/or software instructions or logic that, when loaded and used or executed in combination with the computer system, instructs or programs the computer system to operate as a special-purpose machine. According to one embodiment, the technologies herein are executed by the computer system 900 in response to execution, by the processor 904, of at least one sequence of at least one instruction contained in the main memory 906. Such instructions may be read into the main memory 906 from another storage medium, such as the data storage device 910. Execution of the sequences of instructions contained in the main memory 906 causes the processor 904 to perform the process steps described herein. In alternative embodiments, hardware-implemented circuitry may be used in place of or in combination with software instructions.

[0117] Термин "носители данных" при использовании в данном документе означает любые энергонезависимые носители, которые сохраняют данные и/или инструкции, которые инструктируют машине работать конкретным способом. Такие носители данных могут содержать энергонезависимые носители и/или энергозависимые носители. Энергонезависимые носители включают в себя, например, оптические или магнитные диски, такие как устройство 910 хранения данных. Энергозависимые носители включают в себя динамическое запоминающее устройство, такое как запоминающее устройство 906. Общие формы носителей данных включают в себя, например, жесткий диск, полупроводниковый накопитель, флэш-накопитель, магнитный носитель данных, любой оптический или физический носитель данных, микросхему запоминающего устройства и т.п.[0117] The term "storage media" as used herein means any non-volatile media that stores data and/or instructions that instruct a machine to operate in a particular manner. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media include, for example, optical or magnetic disks, such as storage device 910. Volatile media include dynamic storage, such as storage device 906. Common forms of storage media include, for example, a hard disk, a semiconductor drive, a flash drive, a magnetic storage medium, any optical or physical storage medium, a memory chip, and the like.

[0118] Носители данных являются отличающимися от, но могут использоваться в сочетании с передающими средами. Передающие среды участвуют в передаче информации между носителями данных. Например, передающие среды включают в себя коаксиальные кабели, медный провод и оптоволокно, включающие в себя провода, которые содержат шину подсистемы 902 ввода-вывода. Передающие среды также могут принимать форму акустических или световых волн, таких как волны, сформированные во время радиоволнового и инфракрасного обмена данными.[0118] The data carriers are different from, but can be used in combination with, transmission media. Transmission media participate in the transmission of information between data carriers. For example, transmission media include coaxial cables, copper wire, and optical fiber, including wires that contain the bus of the input/output subsystem 902. Transmission media can also take the form of acoustic or light waves, such as waves formed during radio wave and infrared data exchange.

[0119] Различные формы сред/носителей могут быть предусмотрены в переносе по меньшей мере одной последовательности из по меньшей мере одной инструкции в процессор 904 для исполнения. Например, инструкции могут первоначально переноситься на магнитном диске или на полупроводниковом накопителе удаленного компьютера. Удаленный компьютер может загружать инструкции в свое динамическое запоминающее устройство и отправлять инструкции по линии связи, такой как волоконно-оптическая или коаксиальная кабельная либо телефонная линия с использованием модема. Модем или маршрутизатор, локальный для компьютерной системы 900, может принимать данные по линии связи и преобразовывать данные, которые должны считываться посредством компьютерной системы 900. Например, приемное устройство, такое как радиочастотная антенна или инфракрасный детектор, может принимать данные, переносимые в беспроводном или оптическом сигнале, и соответствующая схема может предоставлять данные в подсистему 902 ввода-вывода, к примеру, помещать данные на шину. Подсистема 902 ввода-вывода переносит данные в запоминающее устройство 906, из которого процессор 904 извлекает и выполняет инструкции. Инструкции, принимаемые посредством запоминающего устройства 906, могут в необязательном порядке сохраняться на устройстве 910 хранения данных до или после исполнения процессором 904.[0119] Various forms of media/carriers may be provided in transferring at least one sequence of at least one instruction to the processor 904 for execution. For example, the instructions may initially be transferred on a magnetic disk or on a semiconductor storage device of a remote computer. The remote computer may load the instructions into its dynamic memory and send the instructions over a communication line, such as a fiber optic or coaxial cable or telephone line using a modem. A modem or router local to the computer system 900 may receive data over the communication line and convert the data to be read by the computer system 900. For example, a receiving device, such as a radio frequency antenna or an infrared detector, may receive data carried in a wireless or optical signal, and the corresponding circuit may provide the data to the input/output subsystem 902, for example, place the data on a bus. The input/output subsystem 902 transfers data to the memory device 906, from which the processor 904 retrieves and executes instructions. The instructions received via the memory device 906 may optionally be stored on the data storage device 910 before or after execution by the processor 904.

[0120] Компьютерная система 900 также включает в себя интерфейс 918 связи, соединенный с шиной 902. Интерфейс 918 связи предоставляет двунаправленное соединение для обмена данными с сетевыми линиями 920 связи, которые прямо или косвенно соединяются с по меньшей мере одной сетью связи, такой как сеть 922 или открытое или закрытое облако в Интернете. Например, интерфейс 918 связи может представлять собой сетевой Ethernet-интерфейс, карту по стандарту цифровой сети с интегрированными услугами (ISDN), кабельный модем, спутниковый модем или модем, чтобы предоставлять соединение для передачи данных в соответствующий тип линии связи, например, Ethernet-кабель либо металлический кабель любого вида, либо волоконно-оптическую линию или телефонную линию. Сеть 922 широко представляет локальную вычислительную сеть (LAN), глобальная вычислительная сеть (WAN), университетскую сеть, объединенную сеть либо любую комбинацию вышеозначенного. Интерфейс 918 связи может содержать LAN-карту, чтобы предоставлять соединение для передачи данных в совместимую LAN или сотовый радиотелефонный интерфейс, который является проводным, с тем чтобы отправлять или принимать сотовые данные согласно стандартам сотовых радиотелефоных беспроводных сетей, либо в спутниковый радиоинтерфейс, который является проводным, с тем чтобы отправлять или принимать цифровые данные согласно стандартам спутниковых беспроводных сетей. В любой такой реализации, интерфейс 918 связи отправляет и принимает электрические, электромагнитные или оптические сигналы по трактам передачи сигналов, которые переносят потоки цифровых данных, представляющие различные типы информации.[0120] The computer system 900 also includes a communication interface 918 connected to the bus 902. The communication interface 918 provides a bidirectional connection for exchanging data with network communication lines 920 that are directly or indirectly connected to at least one communication network, such as a network 922 or an open or closed cloud on the Internet. For example, the communication interface 918 can be a network Ethernet interface, an integrated services digital network (ISDN) card, a cable modem, a satellite modem, or a modem to provide a connection for transmitting data to an appropriate type of communication line, such as an Ethernet cable or any kind of metal cable, or a fiber optic line or a telephone line. The network 922 broadly represents a local area network (LAN), a wide area network (WAN), a campus network, an internetwork, or any combination of the above. The communication interface 918 may comprise a LAN card to provide a data connection to a compatible LAN or a cellular radiotelephone interface that is wired to send or receive cellular data according to cellular radiotelephone wireless network standards, or to a satellite radio interface that is wired to send or receive digital data according to satellite wireless network standards. In any such implementation, the communication interface 918 sends and receives electrical, electromagnetic or optical signals over signal transmission paths that carry digital data streams representing various types of information.

[0121] Сетевая линия 920 связи типично предоставляет электрический, электромагнитный или оптический обмен данными непосредственно или через по меньшей мере одну сеть с другими устройствами передачи данных, с использованием, например, спутниковой, сотовой, Wi-Fi- или Bluetooth-технологии. Например, сетевая линия 920 связи может предоставлять соединение через сеть 922 с хост-компьютером 924.[0121] Network communication line 920 typically provides electrical, electromagnetic or optical data exchange directly or through at least one network with other data transmission devices, using, for example, satellite, cellular, Wi-Fi or Bluetooth technology. For example, network communication line 920 can provide a connection through network 922 to host computer 924.

[0122] Кроме того, сетевая линия 920 связи может предоставлять соединение через сеть 922 или с другими вычислительными устройствами через межсетевые соединительные устройства и/или компьютеры, которые управляются посредством поставщика 926 Интернет-услуг (ISP). ISP 926 предоставляет услуги обмена данными через всемирную сеть передачи пакетных данных, представленную в качестве Интернета 928. Серверный компьютер 930 может соединяться с Интернетом 928. Сервер 930 широко представляет любой компьютер, центр обработки и хранения данных, виртуальную машину или экземпляр виртуальных вычислений с или без гипервизора либо компьютер, выполняющий контейнеризированную программную систему, такую как DOCKER или KUBERNETES. Сервер 930 может представлять электронную цифровую услугу, которая реализуется с использованием более одного компьютера или экземпляра, и которая доступна и используется посредством передачи запросов веб-услуг, строк универсального указателя ресурса (URL-адреса) с параметрами в рабочих HTTP-данных, API-вызовах, вызовах услуг поддержки приложений или других вызовах по предоставлению услуг. Компьютерная система 900 и сервер 930 могут формировать элементы распределенной вычислительной системы, которая включает в себя другие компьютеры, кластер обработки, ферму серверов или другую организацию компьютеров, которые взаимодействуют для того, чтобы выполнять задачи либо выполнять приложения или услуги. Сервер 930 может содержать один или более наборов инструкции, которые организуются в качестве модулей, методов, объектов, функций, процедур или вызовов. Инструкции могут организовываться в качестве одной или более компьютерных программ, услуг операционной системы или прикладных программ, включающих в себя мобильные приложения. Инструкции могут содержать программное обеспечение операционной системы и/или системное программное обеспечение; одну или более библиотек для того, чтобы поддерживать мультимедиа, программирование или другие функции; инструкции или стеки протоколов передачи данных для того, чтобы реализовывать TCP/IP, HTTP или другие протоколы связи; инструкции по обработке форматов файлов для того, чтобы интерпретировать или подготавливать посредством рендеринга файлы, кодированные с использованием HTML, XML, JPEG, MPEG или PNG; пользовательские интерфейсные инструкции для того, чтобы подготавливать посредством рендеринга или интерпретировать команды для графического пользовательского интерфейса (GUI), интерфейса командной строки или текстового пользовательского интерфейса; прикладное программное обеспечение, такое как комплект офисных программ, приложения для доступа в Интернет, приложения для проектирования и производства, графические приложения, аудиоприложения, приложения для разработки программного обеспечения, образовательные приложения, игры или приложения различного назначения. Сервер 930 может содержать сервер веб-приложений, который размещает уровень представления, уровень приложений и уровень хранения данных, к примеру, систему реляционных баз данных с использованием языка структурированных запросов (SQL) или NoSQL, хранилище объектов, графовую базу данных, плоскую файловую систему либо другое устройство хранения данных.[0122] In addition, the network communication line 920 may provide a connection through the network 922 or with other computing devices through interconnecting devices and/or computers that are controlled by an Internet service provider (ISP) 926. The ISP 926 provides data exchange services through a worldwide packet data network represented as the Internet 928. The server computer 930 may be connected to the Internet 928. The server 930 broadly represents any computer, data center, virtual machine or virtual computing instance with or without a hypervisor, or a computer running a containerized software system such as DOCKER or KUBERNETES. The server 930 may represent an electronic digital service that is implemented using more than one computer or instance, and that is accessible and used by transmitting web service requests, URL strings with parameters in HTTP payloads, API calls, application support service calls, or other service provision calls. The computer system 900 and the server 930 may form elements of a distributed computing system that includes other computers, a processing cluster, a server farm, or another organization of computers that interact to perform tasks or execute applications or services. The server 930 may contain one or more sets of instructions that are organized as modules, methods, objects, functions, procedures, or calls. The instructions may be organized as one or more computer programs, operating system services, or application programs, including mobile applications. The instructions may comprise operating system software and/or system software; one or more libraries to support multimedia, programming, or other functions; instructions or data transfer protocol stacks for implementing TCP/IP, HTTP or other communication protocols; file format processing instructions for interpreting or rendering files encoded using HTML, XML, JPEG, MPEG or PNG; user interface instructions for rendering or interpreting commands for a graphical user interface (GUI), a command line interface or a text user interface; application software such as an office suite, Internet access applications, design and manufacturing applications, graphics applications, audio applications, software development applications, educational applications, games or applications for various purposes. Server 930 may comprise a web application server that hosts a presentation layer, an application layer and a data storage layer, such as a relational database system using structured query language (SQL) or NoSQL, an object store, a graph database, a flat file system or other data storage device.

[0123] Компьютерная система 900 может отправлять сообщения и принимать данные и инструкции, включающие в себя программный код, через сеть(и), сетевую линию 920 связи и интерфейс 918 связи. В Интернет-примере, сервер 930 может передавать запрашиваемый код для прикладной программы через Интернет 928, ISP 926, локальную сеть 922 и интерфейс 918 связи. Принимаемый код может выполняться посредством процессора 904 по мере того, как он принимается и/или сохраняется в устройстве 910 хранения данных или другом энергонезависимом устройстве хранения данных для последующего исполнения.[0123] The computer system 900 can send messages and receive data and instructions, including program code, via the network(s), the network communication line 920, and the communication interface 918. In the Internet example, the server 930 can transmit the requested code for the application program via the Internet 928, the ISP 926, the local network 922, and the communication interface 918. The received code can be executed by the processor 904 as it is received and/or stored in the data storage device 910 or other non-volatile data storage device for subsequent execution.

[0124] Исполнение инструкций, как описано в этом разделе, может реализовывать процесс в форме экземпляра компьютерной программы, которая выполняется и состоит из программного кода и его текущей активности. В зависимости от операционной системы (ОС), процесс может состоять из нескольких программных потоков выполнения, которые выполняют инструкции параллельно. В этом контексте, компьютерная программа представляет собой пассивную совокупность инструкций, тогда как процесс может представлять собой фактическое выполнение этих инструкций. Несколько процессов могут быть ассоциированы с идентичной программой; например, открытие нескольких экземпляров идентичной программы зачастую означает то, что выполняется более одного процесса. Многозадачность может реализовываться для того, чтобы позволять нескольким процессам совместно использовать процессор 904. Хотя каждый процессор 904 или ядро процессора выполняет одну задачу за один раз, компьютерная система 900 может программироваться с возможностью реализовывать многозадачность, чтобы позволять каждому процессору переключаться между задачами, которые выполняются, без необходимости ожидать завершения каждой задачи. В варианте осуществления, переключения могут выполняться, когда задачи выполняют операции ввода-вывода, когда задача указывает то, что она может переключаться, либо при аппаратных прерываниях. Временное разделение может реализовываться для того, чтобы обеспечивать возможность быстрого отклика для интерактивных пользовательских приложений посредством быстрого выполнения контекстных переключений, чтобы предоставлять видимость параллельного выполнения нескольких процессов одновременно. В варианте осуществления, для безопасности и надежности, операционная система может предотвращать прямую связь между независимыми процессами, предоставляя строго опосредованную и управляемую функциональность межпроцессной связи.[0124] Executing instructions as described in this section may implement a process in the form of an instance of a computer program that is executed and consists of program code and its current activity. Depending on the operating system (OS), a process may consist of multiple software threads of execution that execute instructions in parallel. In this context, a computer program represents a passive collection of instructions, while a process may represent the actual execution of these instructions. Multiple processes may be associated with an identical program; for example, opening multiple instances of an identical program often means that more than one process is running. Multitasking may be implemented to allow multiple processes to share processor 904. Although each processor 904 or processor core executes one task at a time, computer system 900 may be programmed with the ability to implement multitasking to allow each processor to switch between tasks that are being executed without having to wait for each task to complete. In an embodiment, switches may be performed when tasks perform I/O operations, when a task indicates that it can switch, or when hardware interrupts occur. Time division may be implemented to provide a fast response capability for interactive user applications by quickly performing context switches to provide the appearance of parallel execution of several processes at the same time. In an embodiment, for security and reliability, the operating system may prevent direct communication between independent processes, providing strictly mediated and controlled interprocess communication functionality.

[0125] 7. Дополнения и альтернативы[0125] 7. Additions and Alternatives

В вышеприведенном подробном описании, варианты осуществления раскрытия описаны со ссылкой на множество конкретных подробностей, которые могут варьироваться в зависимости от реализации. Следовательно, подробное описание и чертежи должны рассматриваться в иллюстративном, а не в ограничительном смысле. Единственный и исключительный индикатор объема раскрытия и то, что подразумевается заявителями под объемом раскрытия, представляет собой буквальный и эквивалентный объем, определяемый формулой изобретения, с которой по настоящей заявке может быть выдан патент, в конкретной форме, в которой по такой формуле изобретения может быть выдан патент, в том числе и любую последующую коррекцию.In the foregoing detailed description, embodiments of the disclosure are described with reference to a variety of specific details that may vary from implementation to implementation. Accordingly, the detailed description and drawings are to be considered in an illustrative and not in a limiting sense. The sole and exclusive indicator of the scope of the disclosure and what is intended by applicants by the scope of the disclosure is the literal and equivalent scope defined by the claims with which a patent may be issued under this application, in the specific form in which such claims may be issued a patent, including any subsequent amendment.

Claims (57)

Translated fromRussian
1. Компьютерно-реализуемый способ подавления шума, содержащий этапы, на которых:1. A computer-implemented method for noise suppression comprising the steps of:принимают посредством процессора входные аудиоданные, покрывающие множество полос частот вдоль частотного измерения во множестве кадров вдоль временного измерения;receiving, via a processor, input audio data covering a plurality of frequency bands along a frequency dimension in a plurality of frames along a time dimension;обучают посредством процессора модель нейронной сети с использованием входных аудиоданных, причем модель нейронной сети содержит:a neural network model is trained by means of a processor using input audio data, wherein the neural network model comprises:- блок извлечения признаков, который реализует упреждающий просмотр конкретного числа кадров при извлечении признаков из входных аудиоданных;- a feature extraction block that implements a look-ahead of a specific number of frames when extracting features from input audio data;- кодер, который включает в себя первую последовательность блоков, формирующих первые карты признаков, соответствующие всё большим рецептивным полям во входных аудиоданных вдоль частотного измерения;- an encoder that includes a first sequence of blocks that form first feature maps corresponding to increasingly larger receptive fields in the input audio data along the frequency dimension;- декодер, который включает в себя вторую последовательность блоков, принимающих карты выходных признаков, сформированные посредством кодера, в качестве карт входных признаков, и формирующих вторые карты признаков;- a decoder that includes a second sequence of blocks that receive output feature maps generated by the encoder as input feature maps and generate second feature maps;при этом каждый блок из первой последовательности блоков содержит блок вычисления признаков и модуль понижающей частотной дискретизации, причем блок вычисления признаков содержит последовательность сверточных слоев, при этом выходные данные сверточного слоя из последовательности сверточных слоев подаются во все последующие сверточные слои из последовательности сверточных слоев, причем последовательность сверточных слоев реализует все большее растяжение вдоль временного измерения; иwherein each block of the first sequence of blocks comprises a feature calculation unit and a downsampling module, wherein the feature calculation unit comprises a sequence of convolutional layers, wherein the output data of a convolutional layer of the sequence of convolutional layers is fed to all subsequent convolutional layers of the sequence of convolutional layers, wherein the sequence of convolutional layers implements an increasingly greater stretch along the time dimension; and- блок классификации, который принимает вторые карты признаков и формирует речевое значение, указывающее объем речи, присутствующей для каждой полосы частот из множества полос частот в каждом кадре из множества кадров;- a classification unit that receives the second feature maps and generates a speech value indicating the amount of speech present for each frequency band of the plurality of frequency bands in each frame of the plurality of frames;принимают новые аудиоданные, содержащие один или более кадров;receive new audio data containing one or more frames;выполняют модель нейронной сети на этих новых аудиоданных, чтобы сформировать новые речевые значения для каждой полосы частот из множества полос частот в каждом кадре из одного или более кадров;running a neural network model on the new audio data to generate new speech values for each frequency band of the plurality of frequency bands in each frame of the one or more frames;формируют новые выходные данные, подавляющие шум в новых аудиоданных на основе упомянутых новых речевых значений;generate new output data that suppresses noise in the new audio data based on said new speech values;передают эти новые выходные данные.transmit this new output data.2. Компьютерно-реализуемый способ по п.1, дополнительно содержащий этапы, на которых:2. The computer-implemented method according to paragraph 1, additionally comprising the steps of:принимают форму входного сигнала;take the form of the input signal;преобразуют форму входного сигнала в необработанные аудиоданные, покрывающие множество частотных интервальных элементов разрешения вдоль частотного измерения, в одном или более кадрах вдоль временного измерения;transforming the input signal waveform into raw audio data covering a plurality of frequency interval resolution bins along the frequency dimension, in one or more frames along the time dimension;преобразуют необработанные аудиоданные в новые аудиоданные посредством группирования множества частотных интервальных элементов разрешения во множество полос частот;transforming raw audio data into new audio data by grouping a plurality of frequency interval resolution elements into a plurality of frequency bands;выполняют обращение формирования полос частот в отношении новых речевых значений, чтобы сформировать обновленные речевые значения для каждого частотного интервального элемента разрешения из множества частотных интервальных элементов разрешения в каждом кадре из одного или более кадров;performing frequency band generation inversion on the new speech values to generate updated speech values for each frequency interval bin of the plurality of frequency interval bins in each frame of the one or more frames;применяют обновленные речевые значения к необработанным аудиоданным, чтобы сформировать новые выходные данные;apply the updated speech values to the raw audio data to generate new output;преобразуют новые выходные данные в улучшенную форму сигнала.convert the new output data into an improved signal form.3. Компьютерно-реализуемый способ по п.1 или 2, в котором множество полос частот представляют собой перцепционно обусловленные полосы частот, покрывающие больше частотных интервальных элементов разрешения на верхних частотах.3. A computer-implemented method according to claim 1 or 2, wherein the plurality of frequency bands are perceptually conditioned frequency bands covering more frequency interval resolution elements at higher frequencies.4. Компьютерно-реализуемый способ по одному из пп.1-3, в котором блок извлечения признаков имеет сверточное ядро, которое имеет конкретный размер вдоль временного измерения, причем этот конкретный размер больше размера вдоль временного измерения любого сверточного ядра в кодере или декодере.4. The computer-implemented method according to one of claims 1-3, wherein the feature extraction unit has a convolutional kernel that has a specific size along the time dimension, and this specific size is larger than the size along the time dimension of any convolutional kernel in the encoder or decoder.5. Компьютерно-реализуемый способ по одному из пп.1-4, в котором блок извлечения признаков содержит слой пакетной нормализации, после которого следует сверточный слой с двумерным сверточным ядром.5. A computer-implemented method according to one of claims 1-4, wherein the feature extraction unit comprises a batch normalization layer followed by a convolutional layer with a two-dimensional convolutional kernel.6. Компьютерно-реализуемый способ по одному из пп.1-5, в котором каждое из блока извлечения признаков, первой последовательности блоков и второй последовательности блоков формирует общее число карт признаков.6. A computer-implemented method according to one of claims 1-5, wherein each of the feature extraction block, the first sequence of blocks and the second sequence of blocks generates a total number of feature maps.7. Компьютерно-реализуемый способ по одному из пп.1-6, в котором каждая из последовательностей сверточных слоев содержит разделимые по глубине сверточные блоки со стробирующим механизмом.7. A computer-implemented method according to one of claims 1-6, wherein each of the sequences of convolutional layers contains depth-separable convolutional blocks with a gating mechanism.8. Компьютерно-реализуемый способ по одному из пп.1-7, в котором каждая из последовательностей сверточных слоев содержит остаточный блок, имеющий последовательность сверточных блоков, включающую в себя первый сверточный блок, имеющий первое поочередное двумерное сверточное ядро, и последний сверточный блок, имеющий последнее поочередное двумерное сверточное ядро.8. A computer-implemented method according to one of claims 1 to 7, wherein each of the sequences of convolutional layers comprises a residual block having a sequence of convolutional blocks including a first convolutional block having a first alternating two-dimensional convolutional kernel, and a last convolutional block having a last alternating two-dimensional convolutional kernel.9. Компьютерно-реализуемый способ по одному из пп.1-8, в котором выходные данные блока вычисления признаков в блоке из первой последовательности блоков масштабируются посредством обучаемого весового коэффициента, чтобы сформировать масштабированные выходные данные, причем масштабированные выходные данные передаются в блок из второй последовательности блоков в декодере через прыжковое соединение.9. A computer-implemented method according to one of claims 1 to 8, wherein the output data of the feature calculation unit in a block from the first sequence of blocks is scaled by means of a trainable weighting coefficient to form scaled output data, and the scaled output data is transmitted to a block from the second sequence of blocks in a decoder via a hopping connection.10. Компьютерно-реализуемый способ по одному из пп.1-9, в котором модуль понижающей частотной дискретизации блока в первой последовательности блоков содержит сверточные ядра с размером шага, большим единицы, вдоль частотного измерения.10. A computer-implemented method according to one of claims 1-9, wherein the module for downsampling a block in the first sequence of blocks comprises convolutional kernels with a step size greater than one along the frequency dimension.11. Компьютерно-реализуемый способ по одному из пп.1-10, в котором каждый блок из второй последовательности блоков содержит блок вычисления признаков и модуль повышающей частотной дискретизации.11. A computer-implemented method according to one of claims 1-10, wherein each block of the second sequence of blocks contains a feature calculation block and an upsampling module.12. Компьютерно-реализуемый способ по п.11, в котором блок вычисления признаков в блоке из второй последовательности блоков принимает первые выходные данные из блока вычисления признаков в блоке из первой последовательности блоков и вторые выходные данные из модуля повышающей частотной дискретизации предыдущего блока во второй последовательности блоков, причем первые выходные данные и вторые выходные данные конкатенируются или суммируются, чтобы сформировать конкретные входные данные для блока вычисления признаков в блоке из второй последовательности блоков.12. The computer-implemented method according to claim 11, wherein the feature computing unit in the block of the second sequence of blocks receives first output data from the feature computing unit in the block of the first sequence of blocks and second output data from the upsampling module of the previous block in the second sequence of blocks, wherein the first output data and the second output data are concatenated or summed to form specific input data for the feature computing unit in the block of the second sequence of blocks.13. Компьютерно-реализуемый способ по одному из пп.1-12, в котором блок классификации содержит поочередное двумерное сверточное ядро и нелинейную активирующую функцию.13. A computer-implemented method according to one of claims 1-12, wherein the classification block contains an alternating two-dimensional convolutional kernel and a nonlinear activation function.14. Компьютерно-реализуемый способ по одному из пп.1-13, в котором обучение выполняется с функцией потерь между прогнозированным речевым значением и речевым значением на основе экспериментально полученных проверочных данных для каждой полосы частот из множества полос частот в каждом кадре, с большим весовым коэффициентом в функции потерь, когда прогнозированное речевое значение соответствует избыточному подавлению речи, и меньшим весовым коэффициентом в функции потерь, когда прогнозированное речевое значение соответствует недостаточному подавлению речи.14. A computer-implemented method according to one of claims 1 to 13, wherein the training is performed with a loss function between the predicted speech value and the speech value based on experimentally obtained test data for each frequency band of the plurality of frequency bands in each frame, with a larger weighting factor in the loss function when the predicted speech value corresponds to excessive speech suppression, and a smaller weighting factor in the loss function when the predicted speech value corresponds to insufficient speech suppression.15. Компьютерно-реализуемый способ по одному из пп.1-14, в котором блок классификации дополнительно формирует распределение объемов речи по полосе частот из множества полос частот в кадре, причем речевое значение представляет собой среднее значение распределения.15. A computer-implemented method according to one of claims 1-14, wherein the classification unit additionally forms a distribution of speech volumes over a frequency band from a plurality of frequency bands in a frame, wherein the speech value represents the average value of the distribution.16. Компьютерно-реализуемый способ по одному из пп.1-15, в котором входные аудиоданные содержат данные, соответствующие речи различных скоростей или эмоций, данные, содержащие различные уровни шума, или данные, соответствующие различным частотным интервальным элементам разрешения.16. A computer-implemented method according to one of claims 1 to 15, wherein the input audio data comprises data corresponding to speech of different speeds or emotions, data containing different noise levels, or data corresponding to different frequency interval resolution elements.17. Компьютерно-реализуемый способ по одному из пп.1-16, в котором модель нейронной сети дополнительно содержит блок вычисления признаков, выводящий данные кодера и вводящий данные декодера.17. A computer-implemented method according to one of claims 1-16, wherein the neural network model additionally contains a feature calculation unit that outputs encoder data and inputs decoder data.18. Компьютерная система, сконфигурированная для подавления шума, при этом компьютерная система содержит:18. A computer system configured to suppress noise, wherein the computer system comprises:запоминающее устройство;memory;один или более процессоров, соединенных с запоминающим устройством и выполненных с возможностью осуществлять:one or more processors connected to the storage device and configured to perform:прием входных аудиоданных, покрывающих множество полос частот вдоль частотного измерения во множестве кадров вдоль временного измерения;receiving input audio data covering a plurality of frequency bands along a frequency dimension in a plurality of frames along a time dimension;обучение модели нейронной сети с использованием входных аудиоданных, причем модель нейронной сети содержит:training a neural network model using input audio data, where the neural network model contains:- блок извлечения признаков, который реализует упреждающий просмотр конкретного числа кадров при извлечении признаков из входных аудиоданных;- a feature extraction block that implements a look-ahead of a specific number of frames when extracting features from input audio data;- кодер, который включает в себя первую последовательность блоков, формирующих первые карты признаков, соответствующие всё большим рецептивным полям во входных аудиоданных вдоль частотного измерения;- an encoder that includes a first sequence of blocks that form first feature maps corresponding to increasingly larger receptive fields in the input audio data along the frequency dimension;- декодер, который включает в себя вторую последовательность блоков, принимающих карты выходных признаков, сформированные посредством кодера, в качестве карт входных признаков, и формирующих вторые карты признаков;- a decoder that includes a second sequence of blocks that receive output feature maps generated by the encoder as input feature maps and generate second feature maps;при этом каждый блок из первой последовательности блоков содержит блок вычисления признаков и модуль понижающей частотной дискретизации, причем блок вычисления признаков содержит последовательность сверточных слоев, при этом выходные данные сверточного слоя из последовательности сверточных слоев подаются во все последующие сверточные слои из последовательности сверточных слоев, причем последовательность сверточных слоев реализует всё большее растяжение вдоль временного измерения; иwherein each block of the first sequence of blocks comprises a feature calculation unit and a downsampling module, wherein the feature calculation unit comprises a sequence of convolutional layers, wherein the output data of a convolutional layer of the sequence of convolutional layers is fed to all subsequent convolutional layers of the sequence of convolutional layers, wherein the sequence of convolutional layers implements an increasingly greater stretch along the time dimension; and- блок классификации, который принимает вторые карты признаков и формирует речевое значение, указывающее объем речи, присутствующей для каждой полосы частот из множества полос частот в каждом кадре из множества кадров;- a classification unit that receives the second feature maps and generates a speech value indicating the amount of speech present for each frequency band of the plurality of frequency bands in each frame of the plurality of frames;сохранение модели нейронной сети.saving the neural network model.19. Компьютерно-реализуемый способ подавления шума, содержащий этапы, на которых:19. A computer-implemented method for noise suppression comprising the steps of:принимают посредством процессора новые аудиоданные, содержащие один или более кадров;receive new audio data containing one or more frames via the processor;выполняют посредством процессора обученную модель нейронной сети на этих новых аудиоданных, причем модель нейронной сети обучена формировать новые речевые значения для каждой полосы частот из множества полос частот в каждом кадре из одного или более кадров исходя из упомянутых новых аудиоданных, причем обученная модель нейронной сети содержит машиноисполняемые инструкции для:executing by means of a processor a trained neural network model on this new audio data, wherein the neural network model is trained to generate new speech values for each frequency band of a plurality of frequency bands in each frame of one or more frames based on said new audio data, wherein the trained neural network model comprises machine-executable instructions for:- блока извлечения признаков, который реализует упреждающий просмотр конкретного числа кадров при извлечении признаков из входных новых аудиоданных;- a feature extraction block that implements a look-ahead of a specific number of frames when extracting features from input new audio data;- кодера, который включает в себя первую последовательность блоков, формирующих первые карты признаков, соответствующие всё большим рецептивным полям во входных новых аудиоданных вдоль частотного измерения;- an encoder that includes a first sequence of blocks that form first feature maps corresponding to increasingly larger receptive fields in the input new audio data along the frequency dimension;- блока вычисления, который соединяет кодер и декодер;- a computing unit that connects the encoder and decoder;- декодера, который включает в себя вторую последовательность блоков, принимающих карты выходных признаков, сформированные посредством кодера, в качестве карт входных признаков, и формирующих вторые карты признаков;- a decoder that includes a second sequence of blocks that receive output feature maps generated by the encoder as input feature maps and generate second feature maps;при этом каждый блок из первой последовательности блоков содержит блок вычисления признаков и модуль понижающей частотной дискретизации, причем блок вычисления признаков содержит последовательность сверточных слоев, при этом выходные данные сверточного слоя из последовательности сверточных слоев подаются во все последующие сверточные слои из последовательности сверточных слоев, причем последовательность сверточных слоев реализует все большее растяжение вдоль временного измерения; иwherein each block of the first sequence of blocks comprises a feature calculation unit and a downsampling module, wherein the feature calculation unit comprises a sequence of convolutional layers, wherein the output data of a convolutional layer of the sequence of convolutional layers is fed to all subsequent convolutional layers of the sequence of convolutional layers, wherein the sequence of convolutional layers implements an increasingly greater stretch along the time dimension; and- блока классификации, который принимает вторые карты признаков и формирует речевое значение, указывающее объем речи, присутствующей для каждой полосы частот из множества полос частот в каждом кадре из множества кадров; и- a classification unit that receives the second feature maps and generates a speech value indicating the amount of speech present for each frequency band of the plurality of frequency bands in each frame of the plurality of frames; andпричем модель нейронной сети обучается с входными аудиоданными, покрывающими множество полос частот вдоль частотного измерения во множестве кадров вдоль временного измерения;wherein the neural network model is trained with input audio data covering a plurality of frequency bands along the frequency dimension in a plurality of frames along the time dimension;формируют новые выходные данные, подавляющие шум в упомянутых новых аудиоданных на основе упомянутых новых речевых значений;generating new output data that suppresses noise in said new audio data based on said new speech values;передают эти новые выходные данные.transmit this new output data.
RU2023113685A2020-10-292021-10-29Deep learning based speech enhancementRU2844891C1 (en)

Applications Claiming Priority (3)

Application NumberPriority DateFiling DateTitle
CNPCT/CN2020/1246352020-10-29
US63/115,2132020-11-18
US63/221,6292021-07-14

Publications (1)

Publication NumberPublication Date
RU2844891C1true RU2844891C1 (en)2025-08-08

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US9640194B1 (en)*2012-10-042017-05-02Knowles Electronics, LlcNoise suppression for speech processing based on machine-learning mask estimation
US20190115039A1 (en)*2017-10-132019-04-18Huawei Technologies Co., Ltd.Speech processing method and terminal
RU2698153C1 (en)*2016-03-232019-08-22ГУГЛ ЭлЭлСиAdaptive audio enhancement for multichannel speech recognition
US20190325887A1 (en)*2018-04-182019-10-24Nokia Technologies OyEnabling in-ear voice capture using deep learning
US20200234720A1 (en)*2017-10-242020-07-23Samsung Electronics Co., Ltd.Audio reconstruction method and device which use machine learning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US9640194B1 (en)*2012-10-042017-05-02Knowles Electronics, LlcNoise suppression for speech processing based on machine-learning mask estimation
RU2698153C1 (en)*2016-03-232019-08-22ГУГЛ ЭлЭлСиAdaptive audio enhancement for multichannel speech recognition
US20190115039A1 (en)*2017-10-132019-04-18Huawei Technologies Co., Ltd.Speech processing method and terminal
US20200234720A1 (en)*2017-10-242020-07-23Samsung Electronics Co., Ltd.Audio reconstruction method and device which use machine learning
US20190325887A1 (en)*2018-04-182019-10-24Nokia Technologies OyEnabling in-ear voice capture using deep learning

Similar Documents

PublicationPublication DateTitle
JP7711190B2 (en) Deep Learning Based Speech Enhancement
KR102107709B1 (en) Spatial transformer modules
CN112699991A (en)Method, electronic device, and computer-readable medium for accelerating information processing for neural network training
EP4049271B1 (en)Deep source separation architecture
CN113348472A (en)Convolutional neural network with soft kernel selection
EP4385013B1 (en)Reverb and noise robust voice activity detection based on modulation domain attention
RU2844891C1 (en)Deep learning based speech enhancement
US20250061612A1 (en)Neural networks for synthetic data generation with discrete and continuous variable features
CN118675143A (en)Content generation method and device in end-to-end automatic driving system and vehicle
US20250174235A1 (en)Coded speech enhancement based on deep generative model
US20230153612A1 (en)Pruning complex deep learning models based on parent pruning information
CN120188202A (en) Cross-view attention for visual perception tasks using multiple camera inputs
JP2025157327A (en) Deep Learning-Based Speech Enhancement
CN117916801A (en) Reverberation and noise robust speech activity detection via modulation domain attention
JP2025529699A (en) Deep Learning-Based Audio Artifact Reduction
CN110782017A (en)Method and device for adaptively adjusting learning rate
CN113593600B (en)Mixed voice separation method and device, storage medium and electronic equipment
US20250272933A1 (en)Model-based processing to reduce reaction times for content streaming systems and applications
US20250095664A1 (en)Systems and methods of processing audio data with a multi-rate learnable audio frontend
US20250245257A1 (en)Streamlined framework navigation with path summaries
US20250111109A1 (en)Generating motion tokens for simulating traffic using machine learning models
US20250061883A1 (en)Probabilistic generation of speaker diarization data
CN113327203A (en)Image processing network model, method, apparatus and medium
CN120056126A (en)Robot action generation method and related device based on three-view strategy diffusion field
CN115019278A (en) A lane line fitting method, device, electronic device and medium

[8]ページ先頭

©2009-2025 Movatter.jp